mirror of
https://github.com/dataarts/dat.gui.git
synced 2024-12-12 04:08:27 +00:00
1 line
198 KiB
Plaintext
1 line
198 KiB
Plaintext
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap df39951af811361a5b98","webpack:///../index.js","webpack:///./dat/index.js","webpack:///./dat/color/Color.js","webpack:///./dat/color/interpret.js","webpack:///./dat/color/toString.js","webpack:///./dat/utils/common.js","webpack:///./dat/color/math.js","webpack:///./dat/controllers/Controller.js","webpack:///./dat/controllers/BooleanController.js","webpack:///./dat/dom/dom.js","webpack:///./dat/controllers/OptionController.js","webpack:///./dat/controllers/StringController.js","webpack:///./dat/controllers/NumberController.js","webpack:///./dat/controllers/NumberControllerBox.js","webpack:///./dat/controllers/NumberControllerSlider.js","webpack:///./dat/utils/css.js","webpack:///./dat/controllers/NumberControllerSlider.scss?845f","webpack:///./dat/controllers/NumberControllerSlider.scss","webpack:///../~/css-loader/lib/css-base.js","webpack:///../~/style-loader/addStyles.js","webpack:///./dat/controllers/FunctionController.js","webpack:///./dat/controllers/ColorController.js","webpack:///./dat/gui/GUI.js","webpack:///./dat/gui/saveDialogue.html","webpack:///./dat/gui/style.scss?5a0d","webpack:///./dat/gui/style.scss","webpack:///./dat/controllers/ControllerFactory.js","webpack:///./dat/utils/requestAnimationFrame.js","webpack:///./dat/dom/CenteredDiv.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;ACVA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;;ACtCA,OAAM,CAAC,OAAO,GAAG,mBAAO,CAAC,CAAiB,CAAC,C;;;;;;;;ACA3C,OAAM,CAAC,OAAO,GAAG;AACf,QAAK,EAAE;AACL,UAAK,EAAE,mBAAO,CAAC,CAAe,CAAC;AAC/B,SAAI,EAAE,mBAAO,CAAC,CAAc,CAAC;AAC7B,cAAS,EAAE,mBAAO,CAAC,CAAmB,CAAC;IACxC;;AAED,cAAW,EAAE;AACX,eAAU,EAAE,mBAAO,CAAC,CAA0B,CAAC;AAC/C,sBAAiB,EAAE,mBAAO,CAAC,CAAiC,CAAC;AAC7D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,qBAAgB,EAAE,mBAAO,CAAC,EAAgC,CAAC;AAC3D,wBAAmB,EAAE,mBAAO,CAAC,EAAmC,CAAC;AACjE,2BAAsB,EAAE,mBAAO,CAAC,EAAsC,CAAC;AACvE,uBAAkB,EAAE,mBAAO,CAAC,EAAkC,CAAC;AAC/D,oBAAe,EAAE,mBAAO,CAAC,EAA+B,CAAC;IAC1D;;AAED,MAAG,EAAE;AACH,QAAG,EAAE,mBAAO,CAAC,CAAW,CAAC;IAC1B;;AAED,MAAG,EAAE;AACH,QAAG,EAAE,mBAAO,CAAC,EAAW,CAAC;IAC1B;;AAED,MAAG,EAAE,mBAAO,CAAC,EAAW,CAAC;EAC1B,C;;;;;;;;;;;;;;;;;;;;;;;;;;;sCCfqB,CAAa;;;;iCAClB,CAAQ;;;;qCACC,CAAY;;;;wCACnB,CAAiB;;;;KAE9B,KAAK;AACE,YADP,KAAK,GACK;2BADV,KAAK;;AAEP,SAAI,CAAC,OAAO,GAAG,uBAAU,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;;AAEhD,SAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;AAC1B,aAAM,qCAAqC,CAAC;MAC7C;;AAED,SAAI,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;IACtC;;AATG,QAAK,WAWT,QAAQ,uBAAG;AACT,YAAO,sBAAc,IAAI,CAAC,CAAC;IAC5B;;AAbG,QAAK,WAeT,UAAU,yBAAG;AACX,YAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5C;;UAjBG,KAAK;;;AAoBX,MAAK,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE,SAAS,EAAE,iBAAiB,EAAE;AACnE,OAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACjC,UAAK,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,kBAAK,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;IAC1F,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACxC,8BAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,kBAAK,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM;AACL,WAAM,uBAAuB,CAAC;IAC/B;EACF,CAAC;;AAEF,MAAK,CAAC,cAAc,GAAG,UAAS,KAAK,EAAE;AACrC,OAAI,MAAM,GAAG,kBAAK,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;;AAExD,4BAAO,MAAM,CAAC,KAAK,CAAC,OAAO,EACzB;AACE,MAAC,EAAE,MAAM,CAAC,CAAC;AACX,MAAC,EAAE,MAAM,CAAC,CAAC;IACZ,CACF,CAAC;;AAEF,OAAI,CAAC,yBAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;AAC3B,UAAK,CAAC,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC5B,MAAM,IAAI,yBAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE;AAC9C,UAAK,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IACrB;EACF,CAAC;;AAEF,MAAK,CAAC,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;;AAE9D,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;AAC5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;;AAE5C,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AACzC,mBAAkB,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;;AAEzC,OAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,EAAE;AAC1C,MAAG,EAAE,eAAY;AACf,YAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACvB;;AAED,MAAG,EAAE,aAAU,CAAC,EAAE;AAChB,SAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IACpB;EACF,CAAC,CAAC;;AAEH,OAAM,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE;AAC5C,MAAG,EAAE,eAAY;AACf,SAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AACjC,WAAI,CAAC,OAAO,CAAC,GAAG,GAAG,kBAAK,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAC5D;;AAED,YAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACzB;;AAED,MAAG,EAAE,aAAU,CAAC,EAAE;AAChB,SAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,SAAI,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC;IACtB;EACF,CAAC,CAAC;;AAEH,UAAS,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE;AAChE,SAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;AACvC,QAAG,EAAE,eAAY;AACf,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,gBAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC;;AAED,YAAK,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;;AAEzD,cAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;MAChC;;AAED,QAAG,EAAE,aAAU,CAAC,EAAE;AAChB,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,cAAK,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;AACzD,aAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B;;AAED,WAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ;;AAED,UAAS,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE;AAC7C,SAAM,CAAC,cAAc,CAAC,MAAM,EAAE,SAAS,EAAE;AACvC,QAAG,EAAE,eAAY;AACf,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,gBAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChC;;AAED,YAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;;AAE3B,cAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;MAEhC;;AAED,QAAG,EAAE,aAAU,CAAC,EAAE;AAChB,WAAI,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE;AAChC,cAAK,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3B,aAAI,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QAC5B;;AAED,WAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;MAC7B;IACF,CAAC,CAAC;EACJ;;sBAEc,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;qCCtIC,CAAY;;;;wCACd,CAAiB;;;;AAEpC,KAAM,eAAe,GAAG;;AAEtB;AACE,SAAM,EAAE,yBAAO,QAAQ;AACvB,cAAW,EAAE;AACX,mBAAc,EAAE;AACd,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,oCAAoC,CAAC,CAAC;AAClE,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ,CACX,IAAI,GACJ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GACvC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GACvC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;UAC9C,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,iBAAY,EAAE;AACZ,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;AACjD,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;UAC5C,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;AACxE,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;UACvB,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;;AAED,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;AACrF,aAAI,IAAI,KAAK,IAAI,EAAE;AACjB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtB,YAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;UACvB,CAAC;QACH;;AAED,YAAK,uBAAU;MAChB;IACF;EACF;;;AAGD;AACE,SAAM,EAAE,yBAAO,QAAQ;;AAEvB,cAAW,EAAE;;AAEX,QAAG,EAAE;AACH,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,cAAG,EAAE,QAAQ;AACb,yBAAc,EAAE,KAAK;UACtB,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,KAAK,CAAC,GAAG,CAAC;QAClB;MACF;;IAEF;;EAEF;;;AAGD;AACE,SAAM,EAAE,yBAAO,OAAO;AACtB,cAAW,EAAE;AACX,cAAS,EAAE;AACT,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AACzB,kBAAO,KAAK,CAAC;UACd;;AAED,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;UACf,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QACpC;MACF;;AAED,eAAU,EAAE;AACV,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;AACxC,gBAAO;AACL,gBAAK,EAAE,KAAK;AACZ,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACd,YAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;UACf,CAAC;QACH;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C;MACF;IACF;EACF;;;AAGD;AACE,SAAM,EAAE,yBAAO,QAAQ;AACvB,cAAW,EAAE;;AAEX,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,aAAQ,EAAE;AACR,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;;AAED,YAAO,EAAE;AACP,WAAI,EAAE,cAAS,QAAQ,EAAE;AACvB,aAAI,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC7B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAC3B,yBAAO,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC7B,kBAAO;AACL,kBAAK,EAAE,KAAK;AACZ,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;AACb,cAAC,EAAE,QAAQ,CAAC,CAAC;YACd,CAAC;UACH;AACD,gBAAO,KAAK,CAAC;QACd;;AAED,YAAK,EAAE,eAAS,KAAK,EAAE;AACrB,gBAAO;AACL,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;AACV,YAAC,EAAE,KAAK,CAAC,CAAC;UACX,CAAC;QACH;MACF;IACF;EACF,CACF,CAAC;;AAEF,KAAI,MAAM,aAAC;AACX,KAAI,QAAQ,aAAC;;AAEb,KAAM,SAAS,GAAG,SAAZ,SAAS,GAAc;AAC3B,WAAQ,GAAG,KAAK,CAAC;;AAEjB,OAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,GAAG,yBAAO,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AACjF,4BAAO,IAAI,CAAC,eAAe,EAAE,UAAS,MAAM,EAAE;AAC5C,SAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAC3B,gCAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,UAAS,UAAU,EAAE,cAAc,EAAE;AACnE,eAAM,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAEnC,aAAI,QAAQ,KAAK,KAAK,IAAI,MAAM,KAAK,KAAK,EAAE;AAC1C,mBAAQ,GAAG,MAAM,CAAC;AAClB,iBAAM,CAAC,cAAc,GAAG,cAAc,CAAC;AACvC,iBAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AAC/B,kBAAO,yBAAO,KAAK,CAAC;UACrB;QACF,CAAC,CAAC;;AAEH,cAAO,yBAAO,KAAK,CAAC;MACrB;IACF,CAAC,CAAC;;AAEH,UAAO,QAAQ,CAAC;EACjB,CAAC;;sBAEa,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;wCC9RL,CAAiB;;;;sBAErB,UAAS,KAAK,EAAE;AAC7B,OAAI,KAAK,CAAC,CAAC,KAAK,CAAC,IAAI,yBAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;AAChD,SAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC/B,YAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACnB,QAAC,GAAG,GAAG,GAAG,CAAC,CAAC;MACb;AACD,YAAO,GAAG,GAAG,CAAC,CAAC;IAChB;;AAED,UAAO,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC;EACpH;;AAAA,EAAC;;;;;;;;;;;;;;;;;;;;;;;ACZF,KAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC;AACzC,KAAM,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;;;;;;;;AAQxC,KAAM,MAAM,GAAG;AACb,QAAK,EAAE,EAAE;;AAET,SAAM,EAAE,gBAAS,MAAM,EAAE;AACvB,SAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAS,GAAG,EAAE;AACpD,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AAC/B,iBAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;UACxB;QACF;MACF,EAAE,IAAI,CAAC,CAAC;;AAET,YAAO,MAAM,CAAC;IACf;;AAED,WAAQ,EAAE,kBAAS,MAAM,EAAE;AACzB,SAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,UAAS,GAAG,EAAE;AACpD,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;AACjC,iBAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;UACxB;QACF;MACF,EAAE,IAAI,CAAC,CAAC;;AAET,YAAO,MAAM,CAAC;IACf;;AAED,UAAO,EAAE,mBAAW;AAClB,SAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACzC,YAAO,YAAW;AAChB,WAAI,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACrC,YAAK,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,aAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;QACtC;AACD,cAAO,IAAI,CAAC,CAAC,CAAC,CAAC;MAChB,CAAC;IACH;;AAED,OAAI,EAAE,cAAS,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AAC9B,SAAI,CAAC,GAAG,EAAE;AACR,cAAO;MACR;;AAED,SAAI,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE;AACvD,UAAG,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;MACzB,MAAM,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;;AACxC,WAAI,GAAG,aAAC;AACR,WAAI,CAAC,aAAC;AACN,YAAK,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE;AAC5C,aAAI,GAAG,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AAC/D,kBAAO;UACR;QACF;MACF,MAAM;AACL,YAAK,IAAM,GAAG,IAAI,GAAG,EAAE;AACrB,aAAI,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE;AACjD,kBAAO;UACR;QACF;MACF;IACF;;AAED,QAAK,EAAE,eAAS,GAAG,EAAE;AACnB,eAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpB;;AAED,UAAO,EAAE,iBAAS,GAAG,EAAE;AACrB,SAAI,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,OAAO,EAAE,CAAC;AACtC,YAAO,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B;;AAED,cAAW,EAAE,qBAAS,GAAG,EAAE;AACzB,YAAO,GAAG,KAAK,SAAS,CAAC;IAC1B;;AAED,SAAM,EAAE,gBAAS,GAAG,EAAE;AACpB,YAAO,GAAG,KAAK,IAAI,CAAC;IACrB;;AAED,QAAK;;;;;;;;;;MAAE,UAAS,GAAG,EAAE;AACnB,YAAO,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB;;AAED,UAAO,EAAE,KAAK,CAAC,OAAO,IAAI,UAAS,GAAG,EAAE;AACtC,YAAO,GAAG,CAAC,WAAW,KAAK,KAAK,CAAC;IAClC;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;IACxB;;AAED,WAAQ,EAAE,kBAAS,GAAG,EAAE;AACtB,YAAO,GAAG,KAAK,GAAG,GAAG,EAAE,CAAC;IACzB;;AAED,YAAS,EAAE,mBAAS,GAAG,EAAE;AACvB,YAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,CAAC;IACtC;;AAED,aAAU,EAAE,oBAAS,GAAG,EAAE;AACxB,YAAO,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAC;IACpE;;EAEF,CAAC;;sBAEa,MAAM;;;;;;;;;;;;;;;;;;;;;;;ACtHrB,KAAI,YAAY,CAAC;;AAEjB,KAAI,SAAS,GAAG;;AAEd,aAAU,EAAE,oBAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;;AAE7B,SAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;;AAEhC,SAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACpC,SAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC;AACtB,SAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAI,CAAC,GAAG,CAAC,CAAE,CAAC;AAC5B,SAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAE,CAAC;AACpC,SAAI,CAAC,GAAG,CACN,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CACV,CAAC,EAAE,CAAC,CAAC;;AAEN,YAAO;AACL,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACb,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;AACb,QAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG;MACd,CAAC;IAEH;;AAED,aAAU,EAAE,oBAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;;AAE7B,SAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACzB,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACvB,KAAK,GAAG,GAAG,GAAG,GAAG;SACjB,CAAC;SAAE,CAAC,CAAC;;AAEP,SAAI,GAAG,IAAI,CAAC,EAAE;AACZ,QAAC,GAAG,KAAK,GAAG,GAAG,CAAC;MACjB,MAAM;AACL,cAAO;AACL,UAAC,EAAE,GAAG;AACN,UAAC,EAAE,CAAC;AACJ,UAAC,EAAE,CAAC;QACL,CAAC;MACH;;AAED,SAAI,CAAC,IAAI,GAAG,EAAE;AACZ,QAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACrB,MAAM,IAAI,CAAC,IAAI,GAAG,EAAE;AACnB,QAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACzB,MAAM;AACL,QAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;MACzB;AACD,MAAC,IAAI,CAAC,CAAC;AACP,SAAI,CAAC,GAAG,CAAC,EAAE;AACT,QAAC,IAAI,CAAC,CAAC;MACR;;AAED,YAAO;AACL,QAAC,EAAE,CAAC,GAAG,GAAG;AACV,QAAC,EAAE,CAAC;AACJ,QAAC,EAAE,GAAG,GAAG,GAAG;MACb,CAAC;IACH;;AAED,aAAU,EAAE,oBAAU,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;AAC7B,SAAI,GAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3C,QAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,QAAG,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AACzC,YAAO,GAAG,CAAC;IACZ;;AAED,qBAAkB,EAAE,4BAAU,GAAG,EAAE,cAAc,EAAE;AACjD,YAAQ,GAAG,IAAK,cAAc,GAAG,CAAE,GAAI,IAAI,CAAC;IAC7C;;AAED,qBAAkB,EAAE,4BAAU,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE;AACxD,YAAO,KAAK,KAAK,YAAY,GAAG,cAAc,GAAG,CAAC,CAAC,GAAI,GAAG,GAAG,EAAE,IAAI,IAAI,YAAY,CAAE,CAAC;IACvF;EACF;;sBAEc,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCjFL,CAAiB;;;;;;;;;;;;;KAU9B,UAAU;AACH,YADP,UAAU,CACF,MAAM,EAAE,QAAQ,EAAE;2BAD1B,UAAU;;AAEZ,SAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;;;;;;AAMrC,SAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;;;;;AAMhD,SAAI,CAAC,MAAM,GAAG,MAAM,CAAC;;;;;;AAMrB,SAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;;;;;AAOzB,SAAI,CAAC,UAAU,GAAG,SAAS,CAAC;;;;;;;AAO5B,SAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnC;;;;;;;;;;;AAnCG,aAAU,WA6Cd,QAAQ,qBAAC,GAAG,EAAE;AACZ,SAAI,CAAC,UAAU,GAAG,GAAG,CAAC;AACtB,YAAO,IAAI,CAAC;IACb;;;;;;;;;;;;AAhDG,aAAU,WA2Dd,cAAc,2BAAC,GAAG,EAAE;AAClB,SAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;AAC5B,YAAO,IAAI,CAAC;IACb;;;;;;;;AA9DG,aAAU,WAqEd,QAAQ,qBAAC,QAAQ,EAAE;AACjB,SAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;AACtC,SAAI,IAAI,CAAC,UAAU,EAAE;AACnB,WAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;MACtC;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;AACrB,YAAO,IAAI,CAAC;IACb;;;;;;;;AA7EG,aAAU,WAoFd,QAAQ,uBAAG;AACT,YAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC;;;;;;;;AAtFG,aAAU,WA6Fd,aAAa,4BAAG;AACd,YAAO,IAAI,CAAC;IACb;;;;;;AA/FG,aAAU,WAoGd,UAAU,yBAAG;AACX,YAAO,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,QAAQ,EAAE;IAC7C;;UAtGG,UAAU;;;sBAyGD,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCnHF,CAAc;;;;mCACrB,CAAY;;;;wCACT,CAAiB;;;;;;;;;;;;;;KAW9B,iBAAiB;aAAjB,iBAAiB;;AACV,YADP,iBAAiB,CACT,MAAM,EAAE,QAAQ,EAAE;2BAD1B,iBAAiB;;AAEnB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAI,KAAK,GAAG,IAAI,CAAC;AACjB,SAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;AAE9B,SAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAClD,SAAI,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;;AAEjD,cAAS,QAAQ,GAAG;AAClB,YAAK,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;MAC/B;;AAED,yBAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;;AAErD,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;AAG7C,SAAI,CAAC,aAAa,EAAE,CAAC;IACtB;;AApBG,oBAAiB,WAsBrB,QAAQ,qBAAC,CAAC,EAAE;AACV,SAAI,QAAQ,GAAG,sBAAM,QAAQ,YAAC,CAAC,CAAC,CAAC;AACjC,SAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,WAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACnD;AACD,SAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,YAAO,QAAQ,CAAC;IACjB;;AA7BG,oBAAiB,WA+BrB,aAAa,4BAAG;AACd,SAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;AAC5B,WAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;AACnD,WAAI,CAAC,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;MAChC,MAAM;AACL,WAAI,CAAC,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC;MACjC;;AAED,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UAxCG,iBAAiB;;;sBA2CR,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;wCCxDb,CAAiB;;;;AAEpC,KAAI,SAAS,GAAG;AACd,eAAY,EAAE,CAAC,QAAQ,CAAC;AACxB,gBAAa,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC;AAC1E,mBAAgB,EAAE,CAAC,SAAS,CAAC;EAC9B,CAAC;;AAEF,KAAI,aAAa,GAAG,EAAE,CAAC;AACvB,0BAAO,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE;AACrC,4BAAO,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE;AAC1B,kBAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACtB,CAAC,CAAC;EACJ,CAAC,CAAC;;AAEH,KAAI,gBAAgB,GAAG,iBAAiB,CAAC;;AAEzC,UAAS,gBAAgB,CAAC,GAAG,EAAE;;AAE7B,OAAI,GAAG,KAAK,GAAG,IAAI,yBAAO,WAAW,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;;AAErD,OAAI,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;;AAExC,OAAI,CAAC,yBAAO,MAAM,CAAC,KAAK,CAAC,EAAE;AACzB,YAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7B;;;;AAID,UAAO,CAAC,CAAC;EAEV;;;;;;AAMD,KAAI,GAAG,GAAG;;;;;;;AAOR,iBAAc,EAAE,wBAAU,IAAI,EAAE,UAAU,EAAE;;AAE1C,SAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,OAAO;;AAE3D,SAAI,CAAC,aAAa,GAAG,UAAU,GAAG,YAAY;AAC5C,cAAO,KAAK,CAAC;MACd,GAAG,YAAY,EACf,CAAC;;AAEF,SAAI,CAAC,KAAK,CAAC,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AACxD,SAAI,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAC1D,SAAI,CAAC,YAAY,GAAG,UAAU,GAAG,IAAI,GAAG,KAAK,CAAC;IAE/C;;;;;;;;AAQD,iBAAc,EAAE,wBAAU,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE;;AAEpD,SAAI,yBAAO,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;AACtD,SAAI,yBAAO,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;;AAElD,SAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;;AAEjC,SAAI,UAAU,EAAE;AACd,WAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACpB,WAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC;MACtB;AACD,SAAI,QAAQ,EAAE;AACZ,WAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;AACnB,WAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;MACvB;IAEF;;;;;;;;AAQD,YAAS,EAAE,mBAAU,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE;AACjD,WAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AACtB,SAAI,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;AACzC,SAAI,CAAC,SAAS,EAAE;AACd,aAAM,IAAI,KAAK,CAAC,aAAa,GAAG,SAAS,GAAG,iBAAiB,CAAC,CAAC;MAChE;AACD,SAAI,GAAG,GAAG,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;AAC1C,aAAQ,SAAS;AACf,YAAK,aAAa;AAChB,aAAI,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAC9C,aAAI,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;AAC9C,YAAG,CAAC,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EACnD,MAAM,CAAC,UAAU,IAAI,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,IAAI,CAAC,EACzD,CAAC;AACD,UAAC;AACD,gBAAO;AACP,gBAAO;AACP,cAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AACvC,eAAM;AACR,YAAK,gBAAgB;AACnB,aAAI,IAAI,GAAG,GAAG,CAAC,iBAAiB,IAAI,GAAG,CAAC,YAAY,CAAC;AACrD,kCAAO,QAAQ,CAAC,MAAM,EAAE;AACtB,qBAAU,EAAE,IAAI;AAChB,kBAAO,EAAE,KAAK;AACd,iBAAM,EAAE,KAAK;AACb,mBAAQ,EAAE,KAAK;AACf,kBAAO,EAAE,KAAK;AACd,kBAAO,EAAE,SAAS;AAClB,mBAAQ,EAAE,SAAS;UACpB,CAAC,CAAC;AACH,aAAI,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EACrC,MAAM,CAAC,UAAU,EAAE,MAAM,EACzB,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAC7B,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAC/B,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;AACnC,eAAM;AACR;AACE,YAAG,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK,EAC9C,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;AAC7B,eAAM;AAAA,MACT;AACD,8BAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAC1B,SAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACzB;;;;;;;;;AASD,OAAI,EAAE,cAAU,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AACvC,SAAI,GAAG,IAAI,IAAI,KAAK,CAAC;AACrB,SAAI,IAAI,CAAC,gBAAgB,EACvB,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KACtC,IAAI,IAAI,CAAC,WAAW,EACvB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,YAAO,GAAG,CAAC;IACZ;;;;;;;;;AASD,SAAM,EAAE,gBAAU,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE;AACzC,SAAI,GAAG,IAAI,IAAI,KAAK,CAAC;AACrB,SAAI,IAAI,CAAC,mBAAmB,EAC1B,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KACzC,IAAI,IAAI,CAAC,WAAW,EACvB,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC;AACvC,YAAO,GAAG,CAAC;IACZ;;;;;;;AAOD,WAAQ,EAAE,kBAAU,IAAI,EAAE,SAAS,EAAE;AACnC,SAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AAChC,WAAI,CAAC,SAAS,GAAG,SAAS,CAAC;MAC5B,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACvC,WAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,WAAI,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE;AACpC,gBAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxB,aAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC5E;MACF;AACD,YAAO,GAAG,CAAC;IACZ;;;;;;;AAOD,cAAW,EAAE,qBAAU,IAAI,EAAE,SAAS,EAAE;AACtC,SAAI,SAAS,EAAE;AACb,WAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;;QAEjC,MAAM,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;AACvC,eAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;UAC/B,MAAM;AACL,eAAI,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACzC,eAAI,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACvC,eAAI,KAAK,IAAI,CAAC,CAAC,EAAE;AACf,oBAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzB,iBAAI,CAAC,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC;UACF;MACF,MAAM;AACL,WAAI,CAAC,SAAS,GAAG,SAAS,CAAC;MAC5B;AACD,YAAO,GAAG,CAAC;IACZ;;AAED,WAAQ,EAAE,kBAAU,IAAI,EAAE,SAAS,EAAE;AACnC,YAAO,IAAI,MAAM,CAAC,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;IAC1F;;;;;;AAMD,WAAQ,EAAE,kBAAU,IAAI,EAAE;;AAExB,SAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAEnC,YAAO,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,GACjD,gBAAgB,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,GAC7C,gBAAgB,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GACvC,gBAAgB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GACxC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACpC;;;;;;AAMD,YAAS,EAAE,mBAAU,IAAI,EAAE;;AAEzB,SAAI,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAEnC,YAAO,gBAAgB,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAChD,gBAAgB,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAC9C,gBAAgB,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GACtC,gBAAgB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GACzC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrC;;;;;;AAMD,YAAS,EAAE,mBAAU,IAAI,EAAE;AACzB,SAAI,MAAM,GAAG,EAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC;AAC/B,SAAI,IAAI,CAAC,YAAY,EAAE;AACrB,UAAG;AACD,eAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC;AAC/B,eAAM,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC;QAC9B,QAAQ,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE;MACpC;AACD,YAAO,MAAM,CAAC;IACf;;;;;;;AAOD,WAAQ,EAAE,kBAAU,IAAI,EAAE;AACxB,YAAO,IAAI,KAAK,QAAQ,CAAC,aAAa,KAAM,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAE,CAAC;IACtE;;EAEF,CAAC;;sBAEa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCC7QK,CAAc;;;;mCACrB,CAAY;;;;wCACT,CAAiB;;;;;;;;;;;;;;;;;;KAe9B,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE;2BADnC,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAI,KAAK,GAAG,IAAI,CAAC;;;;;;AAMjB,SAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAEjD,SAAI,yBAAO,OAAO,CAAC,OAAO,CAAC,EAAE;AAC3B,WAAI,GAAG,GAAG,EAAE,CAAC;AACb,gCAAO,IAAI,CAAC,OAAO,EAAE,UAAU,OAAO,EAAE;AACtC,YAAG,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACxB,CAAC,CAAC;AACH,cAAO,GAAG,GAAG,CAAC;MACf;;AAED,8BAAO,IAAI,CAAC,OAAO,EAAE,UAAU,KAAK,EAAE,GAAG,EAAE;;AAEzC,WAAI,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC3C,UAAG,CAAC,SAAS,GAAG,GAAG,CAAC;AACpB,UAAG,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACjC,YAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;MAEjC,CAAC,CAAC;;;AAGH,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,yBAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY;AAC5C,WAAI,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC;AAC1D,YAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;MAC9B,CAAC,CAAC;;AAEH,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5C;;AAtCG,mBAAgB,WAwCpB,QAAQ,GAAC,kBAAC,CAAC,EAAE;AACX,SAAI,QAAQ,GAAG,sBAAM,QAAQ,YAAC,CAAC,CAAC,CAAC;;AAEjC,SAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,WAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACnD;AACD,YAAO,QAAQ,CAAC;IACjB;;AA/CG,mBAAgB,WAiDpB,aAAa,4BAAG;AACd,SAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACtC,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UApDG,gBAAgB;;;sBAuDP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCCxER,CAAc;;;;mCACrB,CAAY;;;;wCACT,CAAiB;;;;;;;;;;;;;;;KAY9B,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE;2BAD1B,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,SAAI,KAAK,GAAG,IAAI,CAAC;;AAEjB,SAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;AAE1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;AAC7C,WAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACpB,aAAI,CAAC,IAAI,EAAE,CAAC;QACb;MACF,CAAC,CAAC;;AAGH,cAAS,QAAQ,GAAG;AAClB,YAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;MACrC;;AAED,cAAS,MAAM,GAAG;AAChB,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C;;AAhCG,mBAAgB,WAkCpB,aAAa,4BAAG;;;AAGd,SAAI,CAAC,oBAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC/B,WAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;MACtC;AACD,YAAO,sBAAM,aAAa,WAAE,CAAC;IAC9B;;UAzCG,gBAAgB;;;sBA4CP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCC1DR,CAAc;;;;wCAClB,CAAiB;;;;AAEpC,UAAS,WAAW,CAAC,CAAC,EAAE;AACtB,IAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC;AACjB,OAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;AACvB,YAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM;AACL,YAAO,CAAC,CAAC;IACV;EACF;;;;;;;;;;;;;;;;;KAgBK,gBAAgB;aAAhB,gBAAgB;;AACT,YADP,gBAAgB,CACR,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;2BADlC,gBAAgB;;AAElB,4BAAM,MAAM,EAAE,QAAQ,CAAC,CAAC;;AAExB,WAAM,GAAG,MAAM,IAAI,EAAE,CAAC;;AAEtB,SAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACxB,SAAI,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC;AACxB,SAAI,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC;;AAE1B,SAAI,yBAAO,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;;AAEnC,WAAI,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE;AAC1B,aAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACxB,MAAM;;AAEL,eAAI,CAAC,aAAa,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;UACvG;MAEF,MAAM;;AAEL,WAAI,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;MAClC;;AAED,SAAI,CAAC,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpD;;AAzBG,mBAAgB,WA2BpB,QAAQ,qBAAC,CAAC,EAAE;AACV,SAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AAC9C,QAAC,GAAG,IAAI,CAAC,KAAK,CAAC;MAChB,MAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE;AACrD,QAAC,GAAG,IAAI,CAAC,KAAK,CAAC;MAChB;;AAED,SAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACrD,QAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;MAC/C;;AAED,YAAO,sBAAM,QAAQ,YAAC,CAAC,CAAC,CAAC;IAE1B;;;;;;;;;;AAxCG,mBAAgB,WAiDpB,GAAG,gBAAC,CAAC,EAAE;AACL,SAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAO,IAAI,CAAC;IACb;;;;;;;;;;AApDG,mBAAgB,WA6DpB,GAAG,gBAAC,CAAC,EAAE;AACL,SAAI,CAAC,KAAK,GAAG,CAAC,CAAC;AACf,YAAO,IAAI,CAAC;IACb;;;;;;;;;;;;;AAhEG,mBAAgB,WA4EpB,IAAI,iBAAC,CAAC,EAAE;AACN,SAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAChB,SAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACvB,SAAI,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAClC,YAAO,IAAI,CAAC;IACb;;UAjFG,gBAAgB;;;sBAoFP,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CC9GF,EAAoB;;;;mCACjC,CAAY;;;;wCACT,CAAiB;;;;AAEpC,UAAS,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE;AACvC,OAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnC,UAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;EAC1C;;;;;;;;;;;;;;;;;;;KAkBK,mBAAmB;aAAnB,mBAAmB;;AACZ,YADP,mBAAmB,CACX,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;2BADlC,mBAAmB;;AAErB,kCAAM,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;;AAEhC,SAAI,CAAC,qBAAqB,GAAG,KAAK,CAAC;;AAEnC,SAAI,KAAK,GAAG,IAAI,CAAC;;;;;;AAMjB,SAAI,MAAM,CAAC;;AAEX,SAAI,CAAC,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAC/C,SAAI,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;;;;AAI1C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3C,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACvC,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AACjD,yBAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE;;;AAG7C,WAAI,CAAC,CAAC,OAAO,KAAK,EAAE,EAAE;AACpB,cAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC;AACnC,aAAI,CAAC,IAAI,EAAE,CAAC;AACZ,cAAK,CAAC,qBAAqB,GAAG,KAAK,CAAC;QACrC;MAEF,CAAC,CAAC;;AAEH,cAAS,QAAQ,GAAG;AAClB,WAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAChD,WAAI,CAAC,yBAAO,KAAK,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;MACzD;;AAED,cAAS,MAAM,GAAG;AAChB,eAAQ,EAAE,CAAC;AACX,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;AACtB,2BAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,2BAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACvC,aAAM,GAAG,CAAC,CAAC,OAAO,CAAC;MACpB;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;;AAEtB,WAAI,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC;AAC9B,YAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;;AAE9D,aAAM,GAAG,CAAC,CAAC,OAAO,CAAC;MAEpB;;AAED,cAAS,SAAS,GAAG;AACnB,2BAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7C,2BAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;MAC1C;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3C;;AApEG,sBAAmB,WAsEvB,aAAa,4BAAG;;AAEd,SAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACtH,YAAO,4BAAM,aAAa,WAAE,CAAC;IAC9B;;UA1EG,mBAAmB;;;sBA6EV,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8CCtGL,EAAoB;;;;mCACjC,CAAY;;;;qCACZ,EAAc;;;;wCACX,CAAiB;;;;mEACb,EAA+C;;;;AAEtE,UAAS,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;AAC9B,UAAO,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC;EAChD;;;;;;;;;;;;;;;;;;;;;KAoBK,sBAAsB;aAAtB,sBAAsB;;AACf,YADP,sBAAsB,CACd,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;2BAD1C,sBAAsB;;AAExB,kCAAM,MAAM,EAAE,QAAQ,EAAE,EAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;;AAE1D,SAAI,KAAK,GAAG,IAAI,CAAC;;AAEjB,SAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClD,SAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;;AAGlD,yBAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;;AAEtD,yBAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAC1C,yBAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;;AAE7C,cAAS,WAAW,CAAC,CAAC,EAAE;;AAEtB,2BAAI,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC3C,2BAAI,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;;AAEvC,kBAAW,CAAC,CAAC,CAAC,CAAC;MAChB;;AAED,cAAS,WAAW,CAAC,CAAC,EAAE;;AAEtB,QAAC,CAAC,cAAc,EAAE,CAAC;;AAEnB,WAAI,MAAM,GAAG,oBAAI,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC/C,WAAI,KAAK,GAAG,oBAAI,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;;AAE7C,YAAK,CAAC,QAAQ,CACZ,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAC3E,CAAC;;AAEF,cAAO,KAAK,CAAC;MAEd;;AAED,cAAS,SAAS,GAAG;AACnB,2BAAI,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAC7C,2BAAI,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACzC,WAAI,KAAK,CAAC,gBAAgB,EAAE;AAC1B,cAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACtD;MACF;;AAED,SAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,SAAI,CAAC,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACjD,SAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAChD;;;;;;AAlDG,yBAAsB,WAoD1B,aAAa,4BAAG;AACd,SAAI,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AACrE,SAAI,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAChD,YAAO,4BAAM,aAAa,WAAE,CAAC;IAC9B;;UAxDG,sBAAsB;;;AA8D5B,uBAAsB,CAAC,gBAAgB,GAAG,YAAY;AACpD,yBAAI,MAAM,qDAAY,CAAC;EACxB,CAAC;;sBAEa,sBAAsB;;;;;;;;;;;;;;;;;;;;;;AC9FrC,OAAM,CAAC,OAAO,GAAG;AACf,OAAI,EAAE,cAAS,GAAG,EAAE,KAAK,EAAE;AACzB,SAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAC9B,SAAM,IAAI,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,SAAI,CAAC,IAAI,GAAG,UAAU,CAAC;AACvB,SAAI,CAAC,GAAG,GAAG,YAAY,CAAC;AACxB,SAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,QAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvD;;AAED,SAAM,EAAE,gBAAS,GAAG,EAAE,KAAK,EAAE;AAC3B,SAAM,GAAG,GAAG,KAAK,IAAI,QAAQ,CAAC;AAC9B,SAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,aAAQ,CAAC,IAAI,GAAG,UAAU,CAAC;AAC3B,aAAQ,CAAC,SAAS,GAAG,GAAG,CAAC;AACzB,QAAG,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC3D;EACF,C;;;;;;AC9BD;;AAEA;AACA;AACA;AACA;AACA,iDAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,iCAAgC,UAAU,EAAE;AAC5C,E;;;;;;ACpBA;AACA;;;AAGA;AACA,kPAAiP,oLAAoL,oDAAoD,gBAAgB,uBAAuB,2BAA2B,qBAAqB,qBAAqB,EAAE,gBAAgB,yBAAyB,2BAA2B,gBAAgB,wBAAwB,yBAAyB,+BAA+B,EAAE,sBAAsB,0BAA0B,uBAAuB,2BAA2B,2BAA2B,gBAAgB,iBAAiB,uBAAuB,qBAAqB,kBAAkB,iBAAiB,EAAE;;AAE59B;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA,iCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,EAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wDAAuD;AACvD;;AAEA,8BAA6B,mBAAmB;;AAEhD;;AAEA;;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCC7MuB,CAAc;;;;mCACrB,CAAY;;;;wCACT,CAAiB;;;;;;;;;;;;;;;KAY9B,kBAAkB;aAAlB,kBAAkB;;AACX,YADP,kBAAkB,CACV,MAAM,EAAE,QAAQ,EAAE,IAAI,E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","file":"dat.gui.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"dat\"] = factory();\n\telse\n\t\troot[\"dat\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap df39951af811361a5b98\n **/","module.exports = require('./src/dat/index');\n\n\n\n/** WEBPACK FOOTER **\n ** ../index.js\n **/","module.exports = {\n color: {\n Color: require('./color/Color'),\n math: require('./color/math'),\n interpret: require('./color/interpret')\n },\n\n controllers: {\n Controller: require('./controllers/Controller'),\n BooleanController: require('./controllers/BooleanController'),\n OptionController: require('./controllers/OptionController'),\n StringController: require('./controllers/StringController'),\n NumberController: require('./controllers/NumberController'),\n NumberControllerBox: require('./controllers/NumberControllerBox'),\n NumberControllerSlider: require('./controllers/NumberControllerSlider'),\n FunctionController: require('./controllers/FunctionController'),\n ColorController: require('./controllers/ColorController')\n },\n\n dom: {\n dom: require('./dom/dom')\n },\n\n gui: {\n GUI: require('./gui/GUI')\n },\n\n GUI: require('./gui/GUI')\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/index.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport interpret from './interpret';\nimport math from './math';\nimport colorToString from './toString';\nimport common from '../utils/common';\n\nclass Color {\n constructor() {\n this.__state = interpret.apply(this, arguments);\n\n if (this.__state === false) {\n throw 'Failed to interpret color arguments';\n }\n\n this.__state.a = this.__state.a || 1;\n }\n\n toString() {\n return colorToString(this);\n }\n\n toOriginal() {\n return this.__state.conversion.write(this);\n }\n}\n\nColor.recalculateRGB = function(color, component, componentHexIndex) {\n if (color.__state.space === 'HEX') {\n color.__state[component] = math.component_from_hex(color.__state.hex, componentHexIndex);\n } else if (color.__state.space === 'HSV') {\n common.extend(color.__state, math.hsv_to_rgb(color.__state.h, color.__state.s, color.__state.v));\n } else {\n throw 'Corrupted color state';\n }\n};\n\nColor.recalculateHSV = function(color) {\n var result = math.rgb_to_hsv(color.r, color.g, color.b);\n\n common.extend(color.__state,\n {\n s: result.s,\n v: result.v\n }\n );\n\n if (!common.isNaN(result.h)) {\n color.__state.h = result.h;\n } else if (common.isUndefined(color.__state.h)) {\n color.__state.h = 0;\n }\n};\n\nColor.COMPONENTS = ['r', 'g', 'b', 'h', 's', 'v', 'hex', 'a'];\n\ndefineRGBComponent(Color.prototype, 'r', 2);\ndefineRGBComponent(Color.prototype, 'g', 1);\ndefineRGBComponent(Color.prototype, 'b', 0);\n\ndefineHSVComponent(Color.prototype, 'h');\ndefineHSVComponent(Color.prototype, 's');\ndefineHSVComponent(Color.prototype, 'v');\n\nObject.defineProperty(Color.prototype, 'a', {\n get: function () {\n return this.__state.a;\n },\n\n set: function (v) {\n this.__state.a = v;\n }\n});\n\nObject.defineProperty(Color.prototype, 'hex', {\n get: function () {\n if (!this.__state.space !== 'HEX') {\n this.__state.hex = math.rgb_to_hex(this.r, this.g, this.b);\n }\n\n return this.__state.hex;\n },\n\n set: function (v) {\n this.__state.space = 'HEX';\n this.__state.hex = v;\n }\n});\n\nfunction defineRGBComponent(target, component, componentHexIndex) {\n Object.defineProperty(target, component, {\n get: function () {\n if (this.__state.space === 'RGB') {\n return this.__state[component];\n }\n\n Color.recalculateRGB(this, component, componentHexIndex);\n\n return this.__state[component];\n },\n\n set: function (v) {\n if (this.__state.space !== 'RGB') {\n Color.recalculateRGB(this, component, componentHexIndex);\n this.__state.space = 'RGB';\n }\n\n this.__state[component] = v;\n }\n });\n}\n\nfunction defineHSVComponent(target, component) {\n Object.defineProperty(target, component, {\n get: function () {\n if (this.__state.space === 'HSV') {\n return this.__state[component];\n }\n\n Color.recalculateHSV(this);\n\n return this.__state[component];\n\n },\n\n set: function (v) {\n if (this.__state.space !== 'HSV') {\n Color.recalculateHSV(this);\n this.__state.space = 'HSV';\n }\n\n this.__state[component] = v;\n }\n });\n}\n\nexport default Color;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/Color.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport toString from './toString';\nimport common from '../utils/common';\n\nconst INTERPRETATIONS = [\n // Strings\n {\n litmus: common.isString,\n conversions: {\n THREE_CHAR_HEX: {\n read: function(original) {\n const test = original.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'HEX',\n hex: parseInt(\n '0x' +\n test[1].toString() + test[1].toString() +\n test[2].toString() + test[2].toString() +\n test[3].toString() + test[3].toString(), 0)\n };\n },\n\n write: toString\n },\n\n SIX_CHAR_HEX: {\n read: function(original) {\n const test = original.match(/^#([A-F0-9]{6})$/i);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'HEX',\n hex: parseInt('0x' + test[1].toString(), 0)\n };\n },\n\n write: toString\n },\n\n CSS_RGB: {\n read: function(original) {\n const test = original.match(/^rgb\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)/);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: parseFloat(test[1]),\n g: parseFloat(test[2]),\n b: parseFloat(test[3])\n };\n },\n\n write: toString\n },\n\n CSS_RGBA: {\n read: function(original) {\n const test = original.match(/^rgba\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\,\\s*(.+)\\s*\\)/);\n if (test === null) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: parseFloat(test[1]),\n g: parseFloat(test[2]),\n b: parseFloat(test[3]),\n a: parseFloat(test[4])\n };\n },\n\n write: toString\n }\n }\n },\n\n // Numbers\n {\n litmus: common.isNumber,\n\n conversions: {\n\n HEX: {\n read: function(original) {\n return {\n space: 'HEX',\n hex: original,\n conversionName: 'HEX'\n };\n },\n\n write: function(color) {\n return color.hex;\n }\n }\n\n }\n\n },\n\n // Arrays\n {\n litmus: common.isArray,\n conversions: {\n RGB_ARRAY: {\n read: function(original) {\n if (original.length !== 3) {\n return false;\n }\n\n return {\n space: 'RGB',\n r: original[0],\n g: original[1],\n b: original[2]\n };\n },\n\n write: function(color) {\n return [color.r, color.g, color.b];\n }\n },\n\n RGBA_ARRAY: {\n read: function(original) {\n if (original.length !== 4) return false;\n return {\n space: 'RGB',\n r: original[0],\n g: original[1],\n b: original[2],\n a: original[3]\n };\n },\n\n write: function(color) {\n return [color.r, color.g, color.b, color.a];\n }\n }\n }\n },\n\n // Objects\n {\n litmus: common.isObject,\n conversions: {\n\n RGBA_OBJ: {\n read: function(original) {\n if (common.isNumber(original.r) &&\n common.isNumber(original.g) &&\n common.isNumber(original.b) &&\n common.isNumber(original.a)) {\n return {\n space: 'RGB',\n r: original.r,\n g: original.g,\n b: original.b,\n a: original.a\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n r: color.r,\n g: color.g,\n b: color.b,\n a: color.a\n };\n }\n },\n\n RGB_OBJ: {\n read: function(original) {\n if (common.isNumber(original.r) &&\n common.isNumber(original.g) &&\n common.isNumber(original.b)) {\n return {\n space: 'RGB',\n r: original.r,\n g: original.g,\n b: original.b\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n r: color.r,\n g: color.g,\n b: color.b\n };\n }\n },\n\n HSVA_OBJ: {\n read: function(original) {\n if (common.isNumber(original.h) &&\n common.isNumber(original.s) &&\n common.isNumber(original.v) &&\n common.isNumber(original.a)) {\n return {\n space: 'HSV',\n h: original.h,\n s: original.s,\n v: original.v,\n a: original.a\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n h: color.h,\n s: color.s,\n v: color.v,\n a: color.a\n };\n }\n },\n\n HSV_OBJ: {\n read: function(original) {\n if (common.isNumber(original.h) &&\n common.isNumber(original.s) &&\n common.isNumber(original.v)) {\n return {\n space: 'HSV',\n h: original.h,\n s: original.s,\n v: original.v\n };\n }\n return false;\n },\n\n write: function(color) {\n return {\n h: color.h,\n s: color.s,\n v: color.v\n };\n }\n }\n }\n }\n];\n\nlet result;\nlet toReturn;\n\nconst interpret = function() {\n toReturn = false;\n\n const original = arguments.length > 1 ? common.toArray(arguments) : arguments[0];\n common.each(INTERPRETATIONS, function(family) {\n if (family.litmus(original)) {\n common.each(family.conversions, function(conversion, conversionName) {\n result = conversion.read(original);\n\n if (toReturn === false && result !== false) {\n toReturn = result;\n result.conversionName = conversionName;\n result.conversion = conversion;\n return common.BREAK;\n }\n });\n\n return common.BREAK;\n }\n });\n\n return toReturn;\n};\n\nexport default interpret;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/interpret.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\nexport default function(color) {\n if (color.a === 1 || common.isUndefined(color.a)) {\n let s = color.hex.toString(16);\n while (s.length < 6) {\n s = '0' + s;\n }\n return '#' + s;\n }\n\n return 'rgba(' + Math.round(color.r) + ',' + Math.round(color.g) + ',' + Math.round(color.b) + ',' + color.a + ')';\n};\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/toString.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nconst ARR_EACH = Array.prototype.forEach;\nconst ARR_SLICE = Array.prototype.slice;\n\n/**\n * Band-aid methods for things that should be a lot easier in JavaScript.\n * Implementation and structure inspired by underscore.js\n * http://documentcloud.github.com/underscore/\n */\n\nconst Common = {\n BREAK: {},\n\n extend: function(target) {\n this.each(ARR_SLICE.call(arguments, 1), function(obj) {\n for (const key in obj) {\n if (!this.isUndefined(obj[key])) {\n target[key] = obj[key];\n }\n }\n }, this);\n\n return target;\n },\n\n defaults: function(target) {\n this.each(ARR_SLICE.call(arguments, 1), function(obj) {\n for (const key in obj) {\n if (this.isUndefined(target[key])) {\n target[key] = obj[key];\n }\n }\n }, this);\n\n return target;\n },\n\n compose: function() {\n const toCall = ARR_SLICE.call(arguments);\n return function() {\n let args = ARR_SLICE.call(arguments);\n for (let i = toCall.length - 1; i >= 0; i--) {\n args = [toCall[i].apply(this, args)];\n }\n return args[0];\n };\n },\n\n each: function(obj, itr, scope) {\n if (!obj) {\n return;\n }\n\n if (ARR_EACH && obj.forEach && obj.forEach === ARR_EACH) {\n obj.forEach(itr, scope);\n } else if (obj.length === obj.length + 0) { // Is number but not NaN\n let key;\n let l;\n for (key = 0, l = obj.length; key < l; key++) {\n if (key in obj && itr.call(scope, obj[key], key) === this.BREAK) {\n return;\n }\n }\n } else {\n for (const key in obj) {\n if (itr.call(scope, obj[key], key) === this.BREAK) {\n return;\n }\n }\n }\n },\n\n defer: function(fnc) {\n setTimeout(fnc, 0);\n },\n\n toArray: function(obj) {\n if (obj.toArray) return obj.toArray();\n return ARR_SLICE.call(obj);\n },\n\n isUndefined: function(obj) {\n return obj === undefined;\n },\n\n isNull: function(obj) {\n return obj === null;\n },\n\n isNaN: function(obj) {\n return isNaN(obj);\n },\n\n isArray: Array.isArray || function(obj) {\n return obj.constructor === Array;\n },\n\n isObject: function(obj) {\n return obj === Object(obj);\n },\n\n isNumber: function(obj) {\n return obj === obj + 0;\n },\n\n isString: function(obj) {\n return obj === obj + '';\n },\n\n isBoolean: function(obj) {\n return obj === false || obj === true;\n },\n\n isFunction: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Function]';\n }\n\n};\n\nexport default Common;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/common.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nvar tmpComponent;\n\nvar ColorMath = {\n\n hsv_to_rgb: function (h, s, v) {\n\n var hi = Math.floor(h / 60) % 6;\n\n var f = h / 60 - Math.floor(h / 60);\n var p = v * (1.0 - s);\n var q = v * (1.0 - (f * s));\n var t = v * (1.0 - ((1.0 - f) * s));\n var c = [\n [v, t, p],\n [q, v, p],\n [p, v, t],\n [p, q, v],\n [t, p, v],\n [v, p, q]\n ][hi];\n\n return {\n r: c[0] * 255,\n g: c[1] * 255,\n b: c[2] * 255\n };\n\n },\n\n rgb_to_hsv: function (r, g, b) {\n\n var min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s;\n\n if (max != 0) {\n s = delta / max;\n } else {\n return {\n h: NaN,\n s: 0,\n v: 0\n };\n }\n\n if (r == max) {\n h = (g - b) / delta;\n } else if (g == max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n h /= 6;\n if (h < 0) {\n h += 1;\n }\n\n return {\n h: h * 360,\n s: s,\n v: max / 255\n };\n },\n\n rgb_to_hex: function (r, g, b) {\n var hex = this.hex_with_component(0, 2, r);\n hex = this.hex_with_component(hex, 1, g);\n hex = this.hex_with_component(hex, 0, b);\n return hex;\n },\n\n component_from_hex: function (hex, componentIndex) {\n return (hex >> (componentIndex * 8)) & 0xFF;\n },\n\n hex_with_component: function (hex, componentIndex, value) {\n return value << (tmpComponent = componentIndex * 8) | (hex & ~(0xFF << tmpComponent));\n }\n}\n\nexport default ColorMath;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/math.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\n/**\n * @class An \"abstract\" class that represents a given property of an object.\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass Controller {\n constructor(object, property) {\n this.initialValue = object[property];\n\n /**\n * Those who extend this class will put their DOM elements in here.\n * @type {DOMElement}\n */\n this.domElement = document.createElement('div');\n\n /**\n * The object to manipulate\n * @type {Object}\n */\n this.object = object;\n\n /**\n * The name of the property to manipulate\n * @type {String}\n */\n this.property = property;\n\n /**\n * The function to be called on change.\n * @type {Function}\n * @ignore\n */\n this.__onChange = undefined;\n\n /**\n * The function to be called on finishing change.\n * @type {Function}\n * @ignore\n */\n this.__onFinishChange = undefined;\n }\n\n /**\n * Specify that a function fire every time someone changes the value with\n * this Controller.\n *\n * @param {Function} fnc This function will be called whenever the value\n * is modified via this Controller.\n * @returns {Controller} this\n */\n onChange(fnc) {\n this.__onChange = fnc;\n return this;\n }\n\n /**\n * Specify that a function fire every time someone \"finishes\" changing\n * the value wih this Controller. Useful for values that change\n * incrementally like numbers or strings.\n *\n * @param {Function} fnc This function will be called whenever\n * someone \"finishes\" changing the value via this Controller.\n * @returns {Controller} this\n */\n onFinishChange(fnc) {\n this.__onFinishChange = fnc;\n return this;\n }\n\n /**\n * Change the value of <code>object[property]</code>\n *\n * @param {Object} newValue The new value of <code>object[property]</code>\n */\n setValue(newValue) {\n this.object[this.property] = newValue;\n if (this.__onChange) {\n this.__onChange.call(this, newValue);\n }\n\n this.updateDisplay();\n return this;\n }\n\n /**\n * Gets the value of <code>object[property]</code>\n *\n * @returns {Object} The current value of <code>object[property]</code>\n */\n getValue() {\n return this.object[this.property];\n }\n\n /**\n * Refreshes the visual display of a Controller in order to keep sync\n * with the object's current value.\n * @returns {Controller} this\n */\n updateDisplay() {\n return this;\n }\n\n /**\n * @returns {Boolean} true if the value has deviated from initialValue\n */\n isModified() {\n return this.initialValue !== this.getValue()\n }\n}\n\nexport default Controller;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/Controller.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a checkbox input to alter the boolean property of an object.\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass BooleanController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n var _this = this;\n this.__prev = this.getValue();\n\n this.__checkbox = document.createElement('input');\n this.__checkbox.setAttribute('type', 'checkbox');\n\n function onChange() {\n _this.setValue(!_this.__prev);\n }\n\n dom.bind(this.__checkbox, 'change', onChange, false);\n\n this.domElement.appendChild(this.__checkbox);\n\n // Match original value\n this.updateDisplay();\n }\n\n setValue(v) {\n var toReturn = super.setValue(v);\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n this.__prev = this.getValue();\n return toReturn;\n }\n\n updateDisplay() {\n if (this.getValue() === true) {\n this.__checkbox.setAttribute('checked', 'checked');\n this.__checkbox.checked = true;\n } else {\n this.__checkbox.checked = false;\n }\n\n return super.updateDisplay();\n }\n}\n\nexport default BooleanController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/BooleanController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\nvar EVENT_MAP = {\n 'HTMLEvents': ['change'],\n 'MouseEvents': ['click', 'mousemove', 'mousedown', 'mouseup', 'mouseover'],\n 'KeyboardEvents': ['keydown']\n};\n\nvar EVENT_MAP_INV = {};\ncommon.each(EVENT_MAP, function (v, k) {\n common.each(v, function (e) {\n EVENT_MAP_INV[e] = k;\n });\n});\n\nvar CSS_VALUE_PIXELS = /(\\d+(\\.\\d+)?)px/;\n\nfunction cssValueToPixels(val) {\n\n if (val === '0' || common.isUndefined(val)) return 0;\n\n var match = val.match(CSS_VALUE_PIXELS);\n\n if (!common.isNull(match)) {\n return parseFloat(match[1]);\n }\n\n // TODO ...ems? %?\n\n return 0;\n\n}\n\n/**\n * @namespace\n * @member dat.dom\n */\nvar dom = {\n\n /**\n *\n * @param elem\n * @param selectable\n */\n makeSelectable: function (elem, selectable) {\n\n if (elem === undefined || elem.style === undefined) return;\n\n elem.onselectstart = selectable ? function () {\n return false;\n } : function () {\n };\n\n elem.style.MozUserSelect = selectable ? 'auto' : 'none';\n elem.style.KhtmlUserSelect = selectable ? 'auto' : 'none';\n elem.unselectable = selectable ? 'on' : 'off';\n\n },\n\n /**\n *\n * @param elem\n * @param horizontal\n * @param vertical\n */\n makeFullscreen: function (elem, horizontal, vertical) {\n\n if (common.isUndefined(horizontal)) horizontal = true;\n if (common.isUndefined(vertical)) vertical = true;\n\n elem.style.position = 'absolute';\n\n if (horizontal) {\n elem.style.left = 0;\n elem.style.right = 0;\n }\n if (vertical) {\n elem.style.top = 0;\n elem.style.bottom = 0;\n }\n\n },\n\n /**\n *\n * @param elem\n * @param eventType\n * @param params\n */\n fakeEvent: function (elem, eventType, params, aux) {\n params = params || {};\n var className = EVENT_MAP_INV[eventType];\n if (!className) {\n throw new Error('Event type ' + eventType + ' not supported.');\n }\n var evt = document.createEvent(className);\n switch (className) {\n case 'MouseEvents':\n var clientX = params.x || params.clientX || 0;\n var clientY = params.y || params.clientY || 0;\n evt.initMouseEvent(eventType, params.bubbles || false,\n params.cancelable || true, window, params.clickCount || 1,\n 0, //screen X\n 0, //screen Y\n clientX, //client X\n clientY, //client Y\n false, false, false, false, 0, null);\n break;\n case 'KeyboardEvents':\n var init = evt.initKeyboardEvent || evt.initKeyEvent; // webkit || moz\n common.defaults(params, {\n cancelable: true,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n keyCode: undefined,\n charCode: undefined\n });\n init(eventType, params.bubbles || false,\n params.cancelable, window,\n params.ctrlKey, params.altKey,\n params.shiftKey, params.metaKey,\n params.keyCode, params.charCode);\n break;\n default:\n evt.initEvent(eventType, params.bubbles || false,\n params.cancelable || true);\n break;\n }\n common.defaults(evt, aux);\n elem.dispatchEvent(evt);\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n bind: function (elem, event, func, bool) {\n bool = bool || false;\n if (elem.addEventListener)\n elem.addEventListener(event, func, bool);\n else if (elem.attachEvent)\n elem.attachEvent('on' + event, func);\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n unbind: function (elem, event, func, bool) {\n bool = bool || false;\n if (elem.removeEventListener)\n elem.removeEventListener(event, func, bool);\n else if (elem.detachEvent)\n elem.detachEvent('on' + event, func);\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n addClass: function (elem, className) {\n if (elem.className === undefined) {\n elem.className = className;\n } else if (elem.className !== className) {\n var classes = elem.className.split(/ +/);\n if (classes.indexOf(className) == -1) {\n classes.push(className);\n elem.className = classes.join(' ').replace(/^\\s+/, '').replace(/\\s+$/, '');\n }\n }\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n removeClass: function (elem, className) {\n if (className) {\n if (elem.className === undefined) {\n // elem.className = className;\n } else if (elem.className === className) {\n elem.removeAttribute('class');\n } else {\n var classes = elem.className.split(/ +/);\n var index = classes.indexOf(className);\n if (index != -1) {\n classes.splice(index, 1);\n elem.className = classes.join(' ');\n }\n }\n } else {\n elem.className = undefined;\n }\n return dom;\n },\n\n hasClass: function (elem, className) {\n return new RegExp('(?:^|\\\\s+)' + className + '(?:\\\\s+|$)').test(elem.className) || false;\n },\n\n /**\n *\n * @param elem\n */\n getWidth: function (elem) {\n\n var style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-left-width']) +\n cssValueToPixels(style['border-right-width']) +\n cssValueToPixels(style['padding-left']) +\n cssValueToPixels(style['padding-right']) +\n cssValueToPixels(style['width']);\n },\n\n /**\n *\n * @param elem\n */\n getHeight: function (elem) {\n\n var style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-top-width']) +\n cssValueToPixels(style['border-bottom-width']) +\n cssValueToPixels(style['padding-top']) +\n cssValueToPixels(style['padding-bottom']) +\n cssValueToPixels(style['height']);\n },\n\n /**\n *\n * @param elem\n */\n getOffset: function (elem) {\n var offset = {left: 0, top: 0};\n if (elem.offsetParent) {\n do {\n offset.left += elem.offsetLeft;\n offset.top += elem.offsetTop;\n } while (elem = elem.offsetParent);\n }\n return offset;\n },\n\n // http://stackoverflow.com/posts/2684561/revisions\n /**\n *\n * @param elem\n */\n isActive: function (elem) {\n return elem === document.activeElement && ( elem.type || elem.href );\n }\n\n};\n\nexport default dom;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/dom/dom.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a select input to alter the property of an object, using a\n * list of accepted values.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object|string[]} options A map of labels to acceptable values, or\n * a list of acceptable string values.\n *\n * @member dat.controllers\n */\nclass OptionController extends Controller{\n constructor(object, property, options) {\n super(object, property);\n\n var _this = this;\n\n /**\n * The drop down menu\n * @ignore\n */\n this.__select = document.createElement('select');\n\n if (common.isArray(options)) {\n var map = {};\n common.each(options, function (element) {\n map[element] = element;\n });\n options = map;\n }\n\n common.each(options, function (value, key) {\n\n var opt = document.createElement('option');\n opt.innerHTML = key;\n opt.setAttribute('value', value);\n _this.__select.appendChild(opt);\n\n });\n\n // Acknowledge original value\n this.updateDisplay();\n\n dom.bind(this.__select, 'change', function () {\n var desiredValue = this.options[this.selectedIndex].value;\n _this.setValue(desiredValue);\n });\n\n this.domElement.appendChild(this.__select);\n }\n\n setValue (v) {\n var toReturn = super.setValue(v);\n\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n return toReturn;\n }\n\n updateDisplay() {\n this.__select.value = this.getValue();\n return super.updateDisplay();\n }\n}\n\nexport default OptionController;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/OptionController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a text input to alter the string property of an object.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass StringController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n var _this = this;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n dom.bind(this.__input, 'keyup', onChange);\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'keydown', function (e) {\n if (e.keyCode === 13) {\n this.blur();\n }\n });\n\n\n function onChange() {\n _this.setValue(_this.__input.value);\n }\n\n function onBlur() {\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n // Stops the caret from moving on account of:\n // keyup -> setValue -> updateDisplay\n if (!dom.isActive(this.__input)) {\n this.__input.value = this.getValue();\n }\n return super.updateDisplay();\n }\n}\n\nexport default StringController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/StringController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport common from '../utils/common';\n\nfunction numDecimals(x) {\n x = x.toString();\n if (x.indexOf('.') > -1) {\n return x.length - x.indexOf('.') - 1;\n } else {\n return 0;\n }\n}\n\n/**\n * @class Represents a given property of an object that is a number.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberController extends Controller {\n constructor(object, property, params) {\n super(object, property);\n\n params = params || {};\n\n this.__min = params.min;\n this.__max = params.max;\n this.__step = params.step;\n\n if (common.isUndefined(this.__step)) {\n\n if (this.initialValue == 0) {\n this.__impliedStep = 1; // What are we, psychics?\n } else {\n // Hey Doug, check this out.\n this.__impliedStep = Math.pow(10, Math.floor(Math.log(Math.abs(this.initialValue)) / Math.LN10)) / 10;\n }\n\n } else {\n\n this.__impliedStep = this.__step;\n }\n\n this.__precision = numDecimals(this.__impliedStep);\n }\n\n setValue(v) {\n if (this.__min !== undefined && v < this.__min) {\n v = this.__min;\n } else if (this.__max !== undefined && v > this.__max) {\n v = this.__max;\n }\n\n if (this.__step !== undefined && v % this.__step != 0) {\n v = Math.round(v / this.__step) * this.__step;\n }\n\n return super.setValue(v);\n\n }\n\n /**\n * Specify a minimum value for <code>object[property]</code>.\n *\n * @param {Number} minValue The minimum value for\n * <code>object[property]</code>\n * @returns {dat.controllers.NumberController} this\n */\n min(v) {\n this.__min = v;\n return this;\n }\n\n /**\n * Specify a maximum value for <code>object[property]</code>.\n *\n * @param {Number} maxValue The maximum value for\n * <code>object[property]</code>\n * @returns {dat.controllers.NumberController} this\n */\n max(v) {\n this.__max = v;\n return this;\n }\n\n /**\n * Specify a step value that dat.controllers.NumberController\n * increments by.\n *\n * @param {Number} stepValue The step value for\n * dat.controllers.NumberController\n * @default if minimum and maximum specified increment is 1% of the\n * difference otherwise stepValue is 1\n * @returns {dat.controllers.NumberController} this\n */\n step(v) {\n this.__step = v;\n this.__impliedStep = v;\n this.__precision = numDecimals(v);\n return this;\n }\n}\n\nexport default NumberController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\nfunction roundToDecimal(value, decimals) {\n var tenTo = Math.pow(10, decimals);\n return Math.round(value * tenTo) / tenTo;\n}\n\n/**\n * @class Represents a given property of an object that is a number and\n * provides an input element with which to manipulate it.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerBox extends NumberController {\n constructor(object, property, params) {\n super(object, property, params);\n\n this.__truncationSuspended = false;\n\n var _this = this;\n\n /**\n * {Number} Previous mouse y position\n * @ignore\n */\n var prev_y;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n // Makes it so manually specified values are not truncated.\n\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'mousedown', onMouseDown);\n dom.bind(this.__input, 'keydown', function (e) {\n\n // When pressing entire, you can be as precise as you want.\n if (e.keyCode === 13) {\n _this.__truncationSuspended = true;\n this.blur();\n _this.__truncationSuspended = false;\n }\n\n });\n\n function onChange() {\n var attempted = parseFloat(_this.__input.value);\n if (!common.isNaN(attempted)) _this.setValue(attempted);\n }\n\n function onBlur() {\n onChange();\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n function onMouseDown(e) {\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n prev_y = e.clientY;\n }\n\n function onMouseDrag(e) {\n\n var diff = prev_y - e.clientY;\n _this.setValue(_this.getValue() + diff * _this.__impliedStep);\n\n prev_y = e.clientY;\n\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n\n this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision);\n return super.updateDisplay();\n }\n}\n\nexport default NumberControllerBox;\n\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberControllerBox.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport css from '../utils/css';\nimport common from '../utils/common';\nimport styleSheet from '!style!css!sass!./NumberControllerSlider.scss';\n\nfunction map(v, i1, i2, o1, o2) {\n return o1 + (o2 - o1) * ((v - i1) / (i2 - i1));\n}\n\n/**\n * @class Represents a given property of an object that is a number, contains\n * a minimum and maximum, and provides a slider element with which to\n * manipulate it. It should be noted that the slider element is made up of\n * <code><div></code> tags, <strong>not</strong> the html5\n * <code><slider></code> element.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Number} minValue Minimum allowed value\n * @param {Number} maxValue Maximum allowed value\n * @param {Number} stepValue Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerSlider extends NumberController {\n constructor(object, property, min, max, step) {\n super(object, property, {min: min, max: max, step: step});\n\n var _this = this;\n\n this.__background = document.createElement('div');\n this.__foreground = document.createElement('div');\n\n\n dom.bind(this.__background, 'mousedown', onMouseDown);\n\n dom.addClass(this.__background, 'slider');\n dom.addClass(this.__foreground, 'slider-fg');\n\n function onMouseDown(e) {\n\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n\n onMouseDrag(e);\n }\n\n function onMouseDrag(e) {\n\n e.preventDefault();\n\n var offset = dom.getOffset(_this.__background);\n var width = dom.getWidth(_this.__background);\n\n _this.setValue(\n map(e.clientX, offset.left, offset.left + width, _this.__min, _this.__max)\n );\n\n return false;\n\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.__background.appendChild(this.__foreground);\n this.domElement.appendChild(this.__background);\n }\n\n updateDisplay() {\n var pct = (this.getValue() - this.__min) / (this.__max - this.__min);\n this.__foreground.style.width = pct * 100 + '%';\n return super.updateDisplay();\n }\n}\n\n/**\n * Injects default stylesheet for slider elements.\n */\nNumberControllerSlider.useDefaultStyles = function () {\n css.inject(styleSheet);\n};\n\nexport default NumberControllerSlider;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberControllerSlider.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nmodule.exports = {\n load: function(url, indoc) {\n const doc = indoc || document;\n const link = doc.createElement('link');\n link.type = 'text/css';\n link.rel = 'stylesheet';\n link.href = url;\n doc.getElementsByTagName('head')[0].appendChild(link);\n },\n\n inject: function(css, indoc) {\n const doc = indoc || document;\n const injected = document.createElement('style');\n injected.type = 'text/css';\n injected.innerHTML = css;\n doc.getElementsByTagName('head')[0].appendChild(injected);\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/css.js\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./NumberControllerSlider.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./NumberControllerSlider.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./NumberControllerSlider.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/style-loader!../~/css-loader!../~/sass-loader!./dat/controllers/NumberControllerSlider.scss\n ** module id = 16\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \"/**\\n * dat-gui JavaScript Controller Library\\n * http://code.google.com/p/dat-gui\\n *\\n * Copyright 2011 Data Arts Team, Google Creative Lab\\n *\\n * Licensed under the Apache License, Version 2.0 (the \\\"License\\\");\\n * you may not use this file except in compliance with the License.\\n * You may obtain a copy of the License at\\n *\\n * http://www.apache.org/licenses/LICENSE-2.0\\n */\\n.slider {\\n box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);\\n height: 1em;\\n border-radius: 1em;\\n background-color: #eee;\\n padding: 0 0.5em;\\n overflow: hidden; }\\n\\n.slider-fg {\\n padding: 1px 0 2px 0;\\n background-color: #aaa;\\n height: 1em;\\n margin-left: -0.5em;\\n padding-right: 0.5em;\\n border-radius: 1em 0 0 1em; }\\n\\n.slider-fg:after {\\n display: inline-block;\\n border-radius: 1em;\\n background-color: #fff;\\n border: 1px solid #aaa;\\n content: '';\\n float: right;\\n margin-right: -1em;\\n margin-top: -1px;\\n height: 0.9em;\\n width: 0.9em; }\\n\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/css-loader!../~/sass-loader!./dat/controllers/NumberControllerSlider.scss\n ** module id = 17\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t// when a module is imported multiple times with different media queries.\r\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/css-loader/lib/css-base.js\n ** module id = 18\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0;\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction createStyleElement() {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tvar head = getHeadElement();\r\n\tstyleElement.type = \"text/css\";\r\n\thead.appendChild(styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement() {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tvar head = getHeadElement();\r\n\tlinkElement.rel = \"stylesheet\";\r\n\thead.appendChild(linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement());\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement();\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement();\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/style-loader/addStyles.js\n ** module id = 19\n ** module chunks = 0\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a GUI interface to fire a specified method, a property of an object.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass FunctionController extends Controller{\n constructor(object, property, text) {\n super(object, property);\n\n var _this = this;\n\n this.__button = document.createElement('div');\n this.__button.innerHTML = text === undefined ? 'Fire' : text;\n\n dom.bind(this.__button, 'click', function (e) {\n e.preventDefault();\n _this.fire();\n return false;\n });\n\n dom.addClass(this.__button, 'button');\n\n this.domElement.appendChild(this.__button);\n }\n\n fire() {\n if (this.__onChange) {\n this.__onChange.call(this);\n }\n this.getValue().call(this.object);\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n }\n}\n\nexport default FunctionController;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/FunctionController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport Color from '../color/Color';\nimport interpret from '../color/interpret';\nimport common from '../utils/common';\n\nclass ColorController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n this.__color = new Color(this.getValue());\n this.__temp = new Color(0);\n\n var _this = this;\n\n this.domElement = document.createElement('div');\n\n dom.makeSelectable(this.domElement, false);\n\n this.__selector = document.createElement('div');\n this.__selector.className = 'selector';\n\n this.__saturation_field = document.createElement('div');\n this.__saturation_field.className = 'saturation-field';\n\n this.__field_knob = document.createElement('div');\n this.__field_knob.className = 'field-knob';\n this.__field_knob_border = '2px solid ';\n\n this.__hue_knob = document.createElement('div');\n this.__hue_knob.className = 'hue-knob';\n\n this.__hue_field = document.createElement('div');\n this.__hue_field.className = 'hue-field';\n\n this.__input = document.createElement('input');\n this.__input.type = 'text';\n this.__input_textShadow = '0 1px 1px ';\n\n dom.bind(this.__input, 'keydown', function (e) {\n if (e.keyCode === 13) { // on enter\n onBlur.call(this);\n }\n });\n\n dom.bind(this.__input, 'blur', onBlur);\n\n dom.bind(this.__selector, 'mousedown', function (_e) {\n\n dom\n .addClass(this, 'drag')\n .bind(window, 'mouseup', function (e) {\n dom.removeClass(_this.__selector, 'drag');\n });\n\n });\n\n var value_field = document.createElement('div');\n\n common.extend(this.__selector.style, {\n width: '122px',\n height: '102px',\n padding: '3px',\n backgroundColor: '#222',\n boxShadow: '0px 1px 3px rgba(0,0,0,0.3)'\n });\n\n common.extend(this.__field_knob.style, {\n position: 'absolute',\n width: '12px',\n height: '12px',\n border: this.__field_knob_border + (this.__color.v < .5 ? '#fff' : '#000'),\n boxShadow: '0px 1px 3px rgba(0,0,0,0.5)',\n borderRadius: '12px',\n zIndex: 1\n });\n\n common.extend(this.__hue_knob.style, {\n position: 'absolute',\n width: '15px',\n height: '2px',\n borderRight: '4px solid #fff',\n zIndex: 1\n });\n\n common.extend(this.__saturation_field.style, {\n width: '100px',\n height: '100px',\n border: '1px solid #555',\n marginRight: '3px',\n display: 'inline-block',\n cursor: 'pointer'\n });\n\n common.extend(value_field.style, {\n width: '100%',\n height: '100%',\n background: 'none'\n });\n\n linearGradient(value_field, 'top', 'rgba(0,0,0,0)', '#000');\n\n common.extend(this.__hue_field.style, {\n width: '15px',\n height: '100px',\n display: 'inline-block',\n border: '1px solid #555',\n cursor: 'ns-resize'\n });\n\n hueGradient(this.__hue_field);\n\n common.extend(this.__input.style, {\n outline: 'none',\n// width: '120px',\n textAlign: 'center',\n// padding: '4px',\n// marginBottom: '6px',\n color: '#fff',\n border: 0,\n fontWeight: 'bold',\n textShadow: this.__input_textShadow + 'rgba(0,0,0,0.7)'\n });\n\n dom.bind(this.__saturation_field, 'mousedown', fieldDown);\n dom.bind(this.__field_knob, 'mousedown', fieldDown);\n\n dom.bind(this.__hue_field, 'mousedown', function (e) {\n setH(e);\n dom.bind(window, 'mousemove', setH);\n dom.bind(window, 'mouseup', unbindH);\n });\n\n function fieldDown(e) {\n setSV(e);\n // document.body.style.cursor = 'none';\n dom.bind(window, 'mousemove', setSV);\n dom.bind(window, 'mouseup', unbindSV);\n }\n\n function unbindSV() {\n dom.unbind(window, 'mousemove', setSV);\n dom.unbind(window, 'mouseup', unbindSV);\n // document.body.style.cursor = 'default';\n }\n\n function onBlur() {\n var i = interpret(this.value);\n if (i !== false) {\n _this.__color.__state = i;\n _this.setValue(_this.__color.toOriginal());\n } else {\n this.value = _this.__color.toString();\n }\n }\n\n function unbindH() {\n dom.unbind(window, 'mousemove', setH);\n dom.unbind(window, 'mouseup', unbindH);\n }\n\n this.__saturation_field.appendChild(value_field);\n this.__selector.appendChild(this.__field_knob);\n this.__selector.appendChild(this.__saturation_field);\n this.__selector.appendChild(this.__hue_field);\n this.__hue_field.appendChild(this.__hue_knob);\n\n this.domElement.appendChild(this.__input);\n this.domElement.appendChild(this.__selector);\n\n this.updateDisplay();\n\n function setSV(e) {\n\n e.preventDefault();\n\n var w = dom.getWidth(_this.__saturation_field);\n var o = dom.getOffset(_this.__saturation_field);\n var s = (e.clientX - o.left + document.body.scrollLeft) / w;\n var v = 1 - (e.clientY - o.top + document.body.scrollTop) / w;\n\n if (v > 1) v = 1;\n else if (v < 0) v = 0;\n\n if (s > 1) s = 1;\n else if (s < 0) s = 0;\n\n _this.__color.v = v;\n _this.__color.s = s;\n\n _this.setValue(_this.__color.toOriginal());\n\n\n return false;\n\n }\n\n function setH(e) {\n\n e.preventDefault();\n\n var s = dom.getHeight(_this.__hue_field);\n var o = dom.getOffset(_this.__hue_field);\n var h = 1 - (e.clientY - o.top + document.body.scrollTop) / s;\n\n if (h > 1) h = 1;\n else if (h < 0) h = 0;\n\n _this.__color.h = h * 360;\n\n _this.setValue(_this.__color.toOriginal());\n\n return false;\n\n }\n }\n\n updateDisplay() {\n var i = interpret(this.getValue());\n\n if (i !== false) {\n\n var mismatch = false;\n\n // Check for mismatch on the interpreted value.\n\n common.each(Color.COMPONENTS, function (component) {\n if (!common.isUndefined(i[component]) && !common.isUndefined(this.__color.__state[component]) &&\n i[component] !== this.__color.__state[component]) {\n mismatch = true;\n return {}; // break\n }\n }, this);\n\n // If nothing diverges, we keep our previous values\n // for statefulness, otherwise we recalculate fresh\n if (mismatch) {\n common.extend(this.__color.__state, i);\n }\n\n }\n\n common.extend(this.__temp.__state, this.__color.__state);\n\n this.__temp.a = 1;\n\n var flip = (this.__color.v < .5 || this.__color.s > .5) ? 255 : 0;\n var _flip = 255 - flip;\n\n common.extend(this.__field_knob.style, {\n marginLeft: 100 * this.__color.s - 7 + 'px',\n marginTop: 100 * (1 - this.__color.v) - 7 + 'px',\n backgroundColor: this.__temp.toString(),\n border: this.__field_knob_border + 'rgb(' + flip + ',' + flip + ',' + flip + ')'\n });\n\n this.__hue_knob.style.marginTop = (1 - this.__color.h / 360) * 100 + 'px'\n\n this.__temp.s = 1;\n this.__temp.v = 1;\n\n linearGradient(this.__saturation_field, 'left', '#fff', this.__temp.toString());\n\n common.extend(this.__input.style, {\n backgroundColor: this.__input.value = this.__color.toString(),\n color: 'rgb(' + flip + ',' + flip + ',' + flip + ')',\n textShadow: this.__input_textShadow + 'rgba(' + _flip + ',' + _flip + ',' + _flip + ',.7)'\n });\n\n }\n}\n\nvar vendors = ['-moz-', '-o-', '-webkit-', '-ms-', ''];\n\nfunction linearGradient(elem, x, a, b) {\n elem.style.background = '';\n common.each(vendors, function (vendor) {\n elem.style.cssText += 'background: ' + vendor + 'linear-gradient(' + x + ', ' + a + ' 0%, ' + b + ' 100%); ';\n });\n}\n\nfunction hueGradient(elem) {\n elem.style.background = '';\n elem.style.cssText += 'background: -moz-linear-gradient(top, #ff0000 0%, #ff00ff 17%, #0000ff 34%, #00ffff 50%, #00ff00 67%, #ffff00 84%, #ff0000 100%);';\n elem.style.cssText += 'background: -webkit-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';\n elem.style.cssText += 'background: -o-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';\n elem.style.cssText += 'background: -ms-linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';\n elem.style.cssText += 'background: linear-gradient(top, #ff0000 0%,#ff00ff 17%,#0000ff 34%,#00ffff 50%,#00ff00 67%,#ffff00 84%,#ff0000 100%);';\n}\n\n\nexport default ColorController;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/ColorController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\n\nimport css from '../utils/css';\nimport saveDialogueContents from 'html!./saveDialogue.html';\nimport styleSheet from '!style!css!sass!./style.scss';\nimport ControllerFactory from '../controllers/ControllerFactory';\nimport Controller from '../controllers/Controller';\nimport BooleanController from '../controllers/BooleanController';\nimport FunctionController from '../controllers/FunctionController';\nimport NumberControllerBox from '../controllers/NumberControllerBox';\nimport NumberControllerSlider from '../controllers/NumberControllerSlider';\nimport OptionController from '../controllers/OptionController';\nimport ColorController from '../controllers/ColorController';\nimport requestAnimationFrame from '../utils/requestAnimationFrame';\nimport CenteredDiv from '../dom/CenteredDiv';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\ncss.inject(styleSheet);\n\n/** Outer-most className for GUI's */\nvar CSS_NAMESPACE = 'dg';\n\nvar HIDE_KEY_CODE = 72;\n\n/** The only value shared between the JS and SCSS. Use caution. */\nvar CLOSE_BUTTON_HEIGHT = 20;\n\nvar DEFAULT_DEFAULT_PRESET_NAME = 'Default';\n\nvar SUPPORTS_LOCAL_STORAGE = (function() {\n try {\n return 'localStorage' in window && window['localStorage'] !== null;\n } catch (e) {\n return false;\n }\n})();\n\nvar SAVE_DIALOGUE;\n\n/** Have we yet to create an autoPlace GUI? */\nvar auto_place_virgin = true;\n\n/** Fixed position div that auto place GUI's go inside */\nvar auto_place_container;\n\n/** Are we hiding the GUI's ? */\nvar hide = false;\n\n/** GUI's which should be hidden */\nvar hideable_guis = [];\n\n/**\n * A lightweight controller library for JavaScript. It allows you to easily\n * manipulate variables and fire functions on the fly.\n * @class\n *\n * @member dat.gui\n *\n * @param {Object} [params]\n * @param {String} [params.name] The name of this GUI.\n * @param {Object} [params.load] JSON object representing the saved state of\n * this GUI.\n * @param {Boolean} [params.auto=true]\n * @param {dat.gui.GUI} [params.parent] The GUI I'm nested in.\n * @param {Boolean} [params.closed] If true, starts closed\n */\nvar GUI = function(params) {\n var _this = this;\n\n /**\n * Outermost DOM Element\n * @type DOMElement\n */\n this.domElement = document.createElement('div');\n this.__ul = document.createElement('ul');\n this.domElement.appendChild(this.__ul);\n\n dom.addClass(this.domElement, CSS_NAMESPACE);\n\n /**\n * Nested GUI's by name\n * @ignore\n */\n this.__folders = {};\n\n this.__controllers = [];\n\n /**\n * List of objects I'm remembering for save, only used in top level GUI\n * @ignore\n */\n this.__rememberedObjects = [];\n\n /**\n * Maps the index of remembered objects to a map of controllers, only used\n * in top level GUI.\n *\n * @private\n * @ignore\n *\n * @example\n * [\n * {\n * propertyName: Controller,\n * anotherPropertyName: Controller\n * },\n * {\n * propertyName: Controller\n * }\n * ]\n */\n this.__rememberedObjectIndecesToControllers = [];\n\n this.__listening = [];\n\n params = params || {};\n\n // Default parameters\n params = common.defaults(params, {\n autoPlace: true,\n width: GUI.DEFAULT_WIDTH\n });\n\n params = common.defaults(params, {\n resizable: params.autoPlace,\n hideable: params.autoPlace\n });\n\n if (!common.isUndefined(params.load)) {\n // Explicit preset\n if (params.preset) {\n params.load.preset = params.preset;\n }\n } else {\n params.load = {preset: DEFAULT_DEFAULT_PRESET_NAME};\n }\n\n if (common.isUndefined(params.parent) && params.hideable) {\n hideable_guis.push(this);\n }\n\n // Only root level GUI's are resizable.\n params.resizable = common.isUndefined(params.parent) && params.resizable;\n\n if (params.autoPlace && common.isUndefined(params.scrollable)) {\n params.scrollable = true;\n }\n// params.scrollable = common.isUndefined(params.parent) && params.scrollable === true;\n\n // Not part of params because I don't want people passing this in via\n // constructor. Should be a 'remembered' value.\n var use_local_storage =\n SUPPORTS_LOCAL_STORAGE &&\n localStorage.getItem(getLocalStorageHash(this, 'isLocal')) === 'true';\n\n var saveToLocalStorage;\n\n Object.defineProperties(this,\n /** @lends dat.gui.GUI.prototype */\n {\n /**\n * The parent <code>GUI</code>\n * @type dat.gui.GUI\n */\n parent: {\n get: function() {\n return params.parent;\n }\n },\n\n scrollable: {\n get: function() {\n return params.scrollable;\n }\n },\n\n /**\n * Handles <code>GUI</code>'s element placement for you\n * @type Boolean\n */\n autoPlace: {\n get: function() {\n return params.autoPlace;\n }\n },\n\n /**\n * The identifier for a set of saved values\n * @type String\n */\n preset: {\n get: function() {\n if (_this.parent) {\n return _this.getRoot().preset;\n } else {\n return params.load.preset;\n }\n },\n\n set: function(v) {\n if (_this.parent) {\n _this.getRoot().preset = v;\n } else {\n params.load.preset = v;\n }\n setPresetSelectIndex(this);\n _this.revert();\n }\n },\n\n /**\n * The width of <code>GUI</code> element\n * @type Number\n */\n width: {\n get: function() {\n return params.width;\n },\n set: function(v) {\n params.width = v;\n setWidth(_this, v);\n }\n },\n\n /**\n * The name of <code>GUI</code>. Used for folders. i.e\n * a folder's name\n * @type String\n */\n name: {\n get: function() {\n return params.name;\n },\n set: function(v) {\n // TODO Check for collisions among sibling folders\n params.name = v;\n if (title_row_name) {\n title_row_name.innerHTML = params.name;\n }\n }\n },\n\n /**\n * Whether the <code>GUI</code> is collapsed or not\n * @type Boolean\n */\n closed: {\n get: function() {\n return params.closed;\n },\n set: function(v) {\n params.closed = v;\n if (params.closed) {\n dom.addClass(_this.__ul, GUI.CLASS_CLOSED);\n } else {\n dom.removeClass(_this.__ul, GUI.CLASS_CLOSED);\n }\n // For browsers that aren't going to respect the CSS transition,\n // Lets just check our height against the window height right off\n // the bat.\n this.onResize();\n\n if (_this.__closeButton) {\n _this.__closeButton.innerHTML = v ? GUI.TEXT_OPEN : GUI.TEXT_CLOSED;\n }\n }\n },\n\n /**\n * Contains all presets\n * @type Object\n */\n load: {\n get: function() {\n return params.load;\n }\n },\n\n /**\n * Determines whether or not to use <a href=\"https://developer.mozilla.org/en/DOM/Storage#localStorage\">localStorage</a> as the means for\n * <code>remember</code>ing\n * @type Boolean\n */\n useLocalStorage: {\n\n get: function() {\n return use_local_storage;\n },\n set: function(bool) {\n if (SUPPORTS_LOCAL_STORAGE) {\n use_local_storage = bool;\n if (bool) {\n dom.bind(window, 'unload', saveToLocalStorage);\n } else {\n dom.unbind(window, 'unload', saveToLocalStorage);\n }\n localStorage.setItem(getLocalStorageHash(_this, 'isLocal'), bool);\n }\n }\n }\n });\n\n // Are we a root level GUI?\n if (common.isUndefined(params.parent)) {\n\n params.closed = false;\n\n dom.addClass(this.domElement, GUI.CLASS_MAIN);\n dom.makeSelectable(this.domElement, false);\n\n // Are we supposed to be loading locally?\n if (SUPPORTS_LOCAL_STORAGE) {\n if (use_local_storage) {\n _this.useLocalStorage = true;\n\n var saved_gui = localStorage.getItem(getLocalStorageHash(this, 'gui'));\n\n if (saved_gui) {\n params.load = JSON.parse(saved_gui);\n }\n }\n }\n\n this.__closeButton = document.createElement('div');\n this.__closeButton.innerHTML = GUI.TEXT_CLOSED;\n dom.addClass(this.__closeButton, GUI.CLASS_CLOSE_BUTTON);\n this.domElement.appendChild(this.__closeButton);\n\n dom.bind(this.__closeButton, 'click', function() {\n _this.closed = !_this.closed;\n });\n // Oh, you're a nested GUI!\n } else {\n if (params.closed === undefined) {\n params.closed = true;\n }\n\n var title_row_name = document.createTextNode(params.name);\n dom.addClass(title_row_name, 'controller-name');\n\n var title_row = addRow(_this, title_row_name);\n\n var on_click_title = function(e) {\n e.preventDefault();\n _this.closed = !_this.closed;\n return false;\n };\n\n dom.addClass(this.__ul, GUI.CLASS_CLOSED);\n\n dom.addClass(title_row, 'title');\n dom.bind(title_row, 'click', on_click_title);\n\n if (!params.closed) {\n this.closed = false;\n }\n }\n\n if (params.autoPlace) {\n if (common.isUndefined(params.parent)) {\n if (auto_place_virgin) {\n auto_place_container = document.createElement('div');\n dom.addClass(auto_place_container, CSS_NAMESPACE);\n dom.addClass(auto_place_container, GUI.CLASS_AUTO_PLACE_CONTAINER);\n document.body.appendChild(auto_place_container);\n auto_place_virgin = false;\n }\n\n // Put it in the dom for you.\n auto_place_container.appendChild(this.domElement);\n\n // Apply the auto styles\n dom.addClass(this.domElement, GUI.CLASS_AUTO_PLACE);\n }\n\n\n // Make it not elastic.\n if (!this.parent) {\n setWidth(_this, params.width);\n }\n }\n\n dom.bind(window, 'resize', function() {\n _this.onResize()\n });\n dom.bind(this.__ul, 'webkitTransitionEnd', function() {\n _this.onResize();\n });\n dom.bind(this.__ul, 'transitionend', function() {\n _this.onResize()\n });\n dom.bind(this.__ul, 'oTransitionEnd', function() {\n _this.onResize()\n });\n this.onResize();\n\n if (params.resizable) {\n addResizeHandle(this);\n }\n\n saveToLocalStorage = function() {\n if (SUPPORTS_LOCAL_STORAGE && localStorage.getItem(getLocalStorageHash(_this, 'isLocal')) === 'true') {\n localStorage.setItem(getLocalStorageHash(_this, 'gui'), JSON.stringify(_this.getSaveObject()));\n }\n };\n\n // expose this method publicly\n this.saveToLocalStorageIfPossible = saveToLocalStorage;\n\n var root = _this.getRoot();\n\n function resetWidth() {\n var root = _this.getRoot();\n root.width += 1;\n common.defer(function() {\n root.width -= 1;\n });\n }\n\n if (!params.parent) {\n resetWidth();\n }\n};\n\nGUI.toggleHide = function() {\n hide = !hide;\n common.each(hideable_guis, function(gui) {\n gui.domElement.style.zIndex = hide ? -999 : 999;\n gui.domElement.style.opacity = hide ? 0 : 1;\n });\n};\n\nGUI.CLASS_AUTO_PLACE = 'a';\nGUI.CLASS_AUTO_PLACE_CONTAINER = 'ac';\nGUI.CLASS_MAIN = 'main';\nGUI.CLASS_CONTROLLER_ROW = 'cr';\nGUI.CLASS_TOO_TALL = 'taller-than-window';\nGUI.CLASS_CLOSED = 'closed';\nGUI.CLASS_CLOSE_BUTTON = 'close-button';\nGUI.CLASS_DRAG = 'drag';\n\nGUI.DEFAULT_WIDTH = 245;\nGUI.TEXT_CLOSED = 'Close Controls';\nGUI.TEXT_OPEN = 'Open Controls';\n\ndom.bind(window, 'keydown', function(e) {\n if (document.activeElement.type !== 'text' &&\n (e.which === HIDE_KEY_CODE || e.keyCode == HIDE_KEY_CODE)) {\n GUI.toggleHide();\n }\n}, false);\n\ncommon.extend(\n GUI.prototype,\n\n /** @lends dat.gui.GUI */\n {\n\n /**\n * @param object\n * @param property\n * @returns {dat.controllers.Controller} The new controller that was added.\n * @instance\n */\n add: function(object, property) {\n return add(\n this,\n object,\n property,\n {\n factoryArgs: Array.prototype.slice.call(arguments, 2)\n }\n );\n },\n\n /**\n * @param object\n * @param property\n * @returns {dat.controllers.ColorController} The new controller that was added.\n * @instance\n */\n addColor: function(object, property) {\n return add(\n this,\n object,\n property,\n {\n color: true\n }\n );\n },\n\n /**\n * @param controller\n * @instance\n */\n remove: function(controller) {\n // TODO listening?\n this.__ul.removeChild(controller.__li);\n this.__controllers.splice(this.__controllers.indexOf(controller), 1);\n var _this = this;\n common.defer(function() {\n _this.onResize();\n });\n },\n\n destroy: function() {\n if (this.autoPlace) {\n auto_place_container.removeChild(this.domElement);\n }\n },\n\n /**\n * @param name\n * @returns {dat.gui.GUI} The new folder.\n * @throws {Error} if this GUI already has a folder by the specified\n * name\n * @instance\n */\n addFolder: function(name) {\n // We have to prevent collisions on names in order to have a key\n // by which to remember saved values\n if (this.__folders[name] !== undefined) {\n throw new Error('You already have a folder in this GUI by the' +\n ' name \"' + name + '\"');\n }\n\n var new_gui_params = {name: name, parent: this};\n\n // We need to pass down the autoPlace trait so that we can\n // attach event listeners to open/close folder actions to\n // ensure that a scrollbar appears if the window is too short.\n new_gui_params.autoPlace = this.autoPlace;\n\n // Do we have saved appearance data for this folder?\n\n if (this.load && // Anything loaded?\n this.load.folders && // Was my parent a dead-end?\n this.load.folders[name]) { // Did daddy remember me?\n\n // Start me closed if I was closed\n new_gui_params.closed = this.load.folders[name].closed;\n\n // Pass down the loaded data\n new_gui_params.load = this.load.folders[name];\n\n }\n\n var gui = new GUI(new_gui_params);\n this.__folders[name] = gui;\n\n var li = addRow(this, gui.domElement);\n dom.addClass(li, 'folder');\n return gui;\n },\n\n open: function() {\n this.closed = false;\n },\n\n close: function() {\n this.closed = true;\n },\n\n onResize: function() {\n var root = this.getRoot();\n if (root.scrollable) {\n var top = dom.getOffset(root.__ul).top;\n var h = 0;\n\n common.each(root.__ul.childNodes, function(node) {\n if (!(root.autoPlace && node === root.__save_row))\n h += dom.getHeight(node);\n });\n\n if (window.innerHeight - top - CLOSE_BUTTON_HEIGHT < h) {\n dom.addClass(root.domElement, GUI.CLASS_TOO_TALL);\n root.__ul.style.height = window.innerHeight - top - CLOSE_BUTTON_HEIGHT + 'px';\n } else {\n dom.removeClass(root.domElement, GUI.CLASS_TOO_TALL);\n root.__ul.style.height = 'auto';\n }\n }\n\n if (root.__resize_handle) {\n common.defer(function() {\n root.__resize_handle.style.height = root.__ul.offsetHeight + 'px';\n });\n }\n\n if (root.__closeButton) {\n root.__closeButton.style.width = root.width + 'px';\n }\n },\n\n /**\n * Mark objects for saving. The order of these objects cannot change as\n * the GUI grows. When remembering new objects, append them to the end\n * of the list.\n *\n * @param {Object...} objects\n * @throws {Error} if not called on a top level GUI.\n * @instance\n */\n remember: function() {\n if (common.isUndefined(SAVE_DIALOGUE)) {\n SAVE_DIALOGUE = new CenteredDiv();\n SAVE_DIALOGUE.domElement.innerHTML = saveDialogueContents;\n }\n\n if (this.parent) {\n throw new Error(\"You can only call remember on a top level GUI.\");\n }\n\n var _this = this;\n\n common.each(Array.prototype.slice.call(arguments), function(object) {\n if (_this.__rememberedObjects.length == 0) {\n addSaveMenu(_this);\n }\n if (_this.__rememberedObjects.indexOf(object) == -1) {\n _this.__rememberedObjects.push(object);\n }\n });\n\n if (this.autoPlace) {\n // Set save row width\n setWidth(this, this.width);\n }\n },\n\n /**\n * @returns {dat.gui.GUI} the topmost parent GUI of a nested GUI.\n * @instance\n */\n getRoot: function() {\n var gui = this;\n while (gui.parent) {\n gui = gui.parent;\n }\n return gui;\n },\n\n /**\n * @returns {Object} a JSON object representing the current state of\n * this GUI as well as its remembered properties.\n * @instance\n */\n getSaveObject: function() {\n var toReturn = this.load;\n toReturn.closed = this.closed;\n\n // Am I remembering any values?\n if (this.__rememberedObjects.length > 0) {\n toReturn.preset = this.preset;\n\n if (!toReturn.remembered) {\n toReturn.remembered = {};\n }\n\n toReturn.remembered[this.preset] = getCurrentPreset(this);\n }\n\n toReturn.folders = {};\n common.each(this.__folders, function(element, key) {\n toReturn.folders[key] = element.getSaveObject();\n });\n\n return toReturn;\n },\n\n save: function() {\n if (!this.load.remembered) {\n this.load.remembered = {};\n }\n\n this.load.remembered[this.preset] = getCurrentPreset(this);\n markPresetModified(this, false);\n this.saveToLocalStorageIfPossible();\n },\n\n saveAs: function(presetName) {\n if (!this.load.remembered) {\n // Retain default values upon first save\n this.load.remembered = {};\n this.load.remembered[DEFAULT_DEFAULT_PRESET_NAME] = getCurrentPreset(this, true);\n }\n\n this.load.remembered[presetName] = getCurrentPreset(this);\n this.preset = presetName;\n addPresetOption(this, presetName, true);\n this.saveToLocalStorageIfPossible();\n },\n\n revert: function(gui) {\n common.each(this.__controllers, function(controller) {\n // Make revert work on Default.\n if (!this.getRoot().load.remembered) {\n controller.setValue(controller.initialValue);\n } else {\n recallSavedValue(gui || this.getRoot(), controller);\n }\n }, this);\n\n common.each(this.__folders, function(folder) {\n folder.revert(folder);\n });\n\n if (!gui) {\n markPresetModified(this.getRoot(), false);\n }\n },\n\n listen: function(controller) {\n var init = this.__listening.length == 0;\n this.__listening.push(controller);\n if (init) updateDisplays(this.__listening);\n }\n }\n);\n\n/**\n * Add a row to the end of the GUI or before another row.\n *\n * @param gui\n * @param [newDom] If specified, inserts the dom content in the new row\n * @param [liBefore] If specified, places the new row before another row\n */\nfunction addRow(gui, newDom, liBefore) {\n const li = document.createElement('li');\n if (newDom) {\n li.appendChild(newDom);\n }\n\n if (liBefore) {\n gui.__ul.insertBefore(li, params.before);\n } else {\n gui.__ul.appendChild(li);\n }\n gui.onResize();\n return li;\n}\n\nfunction markPresetModified(gui, modified) {\n const opt = gui.__preset_select[gui.__preset_select.selectedIndex];\n\n // console.log('mark', modified, opt);\n if (modified) {\n opt.innerHTML = opt.value + '*';\n } else {\n opt.innerHTML = opt.value;\n }\n}\n\nfunction augmentController(gui, li, controller) {\n controller.__li = li;\n controller.__gui = gui;\n\n common.extend(controller, {\n options: function(options) {\n if (arguments.length > 1) {\n controller.remove();\n\n return add(\n gui,\n controller.object,\n controller.property,\n {\n before: controller.__li.nextElementSibling,\n factoryArgs: [common.toArray(arguments)]\n }\n );\n }\n\n if (common.isArray(options) || common.isObject(options)) {\n controller.remove();\n\n return add(\n gui,\n controller.object,\n controller.property,\n {\n before: controller.__li.nextElementSibling,\n factoryArgs: [options]\n }\n );\n }\n },\n\n name: function(v) {\n controller.__li.firstElementChild.firstElementChild.innerHTML = v;\n return controller;\n },\n\n listen: function() {\n controller.__gui.listen(controller);\n return controller;\n },\n\n remove: function() {\n controller.__gui.remove(controller);\n return controller;\n }\n });\n\n // All sliders should be accompanied by a box.\n if (controller instanceof NumberControllerSlider) {\n const box = new NumberControllerBox(controller.object, controller.property,\n {min: controller.__min, max: controller.__max, step: controller.__step});\n\n common.each(['updateDisplay', 'onChange', 'onFinishChange'], function(method) {\n const pc = controller[method];\n const pb = box[method];\n controller[method] = box[method] = function() {\n const args = Array.prototype.slice.call(arguments);\n pc.apply(controller, args);\n return pb.apply(box, args);\n };\n });\n\n dom.addClass(li, 'has-slider');\n controller.domElement.insertBefore(box.domElement, controller.domElement.firstElementChild);\n } else if (controller instanceof NumberControllerBox) {\n const r = function(returned) {\n // Have we defined both boundaries?\n if (common.isNumber(controller.__min) && common.isNumber(controller.__max)) {\n // Well, then lets just replace this with a slider.\n controller.remove();\n return add(\n gui,\n controller.object,\n controller.property,\n {\n before: controller.__li.nextElementSibling,\n factoryArgs: [controller.__min, controller.__max, controller.__step]\n });\n }\n\n return returned;\n };\n\n controller.min = common.compose(r, controller.min);\n controller.max = common.compose(r, controller.max);\n } else if (controller instanceof BooleanController) {\n dom.bind(li, 'click', function() {\n dom.fakeEvent(controller.__checkbox, 'click');\n });\n\n dom.bind(controller.__checkbox, 'click', function(e) {\n e.stopPropagation(); // Prevents double-toggle\n });\n } else if (controller instanceof FunctionController) {\n dom.bind(li, 'click', function() {\n dom.fakeEvent(controller.__button, 'click');\n });\n\n dom.bind(li, 'mouseover', function() {\n dom.addClass(controller.__button, 'hover');\n });\n\n dom.bind(li, 'mouseout', function() {\n dom.removeClass(controller.__button, 'hover');\n });\n } else if (controller instanceof ColorController) {\n dom.addClass(li, 'color');\n controller.updateDisplay = common.compose(function(val) {\n li.style.borderLeftColor = controller.__color.toString();\n return val;\n }, controller.updateDisplay);\n\n controller.updateDisplay();\n }\n\n controller.setValue = common.compose(function(val) {\n if (gui.getRoot().__preset_select && controller.isModified()) {\n markPresetModified(gui.getRoot(), true);\n }\n\n return val;\n }, controller.setValue);\n}\n\nfunction recallSavedValue(gui, controller) {\n // Find the topmost GUI, that's where remembered objects live.\n const root = gui.getRoot();\n\n // Does the object we're controlling match anything we've been told to\n // remember?\n const matchedIndex = root.__rememberedObjects.indexOf(controller.object);\n\n // Why yes, it does!\n if (matchedIndex !== -1) {\n // Let me fetch a map of controllers for thcommon.isObject.\n let controllerMap = root.__rememberedObjectIndecesToControllers[matchedIndex];\n\n // Ohp, I believe this is the first controller we've created for this\n // object. Lets make the map fresh.\n if (controllerMap === undefined) {\n controllerMap = {};\n root.__rememberedObjectIndecesToControllers[matchedIndex] =\n controllerMap;\n }\n\n // Keep track of this controller\n controllerMap[controller.property] = controller;\n\n // Okay, now have we saved any values for this controller?\n if (root.load && root.load.remembered) {\n const presetMap = root.load.remembered;\n\n // Which preset are we trying to load?\n let preset;\n\n if (presetMap[gui.preset]) {\n preset = presetMap[gui.preset];\n } else if (presetMap[DEFAULT_DEFAULT_PRESET_NAME]) {\n // Uhh, you can have the default instead?\n preset = presetMap[DEFAULT_DEFAULT_PRESET_NAME];\n } else {\n // Nada.\n return;\n }\n\n // Did the loaded object remember thcommon.isObject? && Did we remember this particular property?\n if (preset[matchedIndex] && preset[matchedIndex][controller.property] !== undefined) {\n // We did remember something for this guy ...\n const value = preset[matchedIndex][controller.property];\n\n // And that's what it is.\n controller.initialValue = value;\n controller.setValue(value);\n }\n }\n }\n}\n\nfunction add(gui, object, property, params) {\n if (object[property] === undefined) {\n throw new Error(`Object \"${object}\" has no property \"${property}\"`);\n }\n\n let controller;\n\n if (params.color) {\n controller = new ColorController(object, property);\n } else {\n const factoryArgs = [object, property].concat(params.factoryArgs);\n controller = ControllerFactory.apply(gui, factoryArgs);\n }\n\n if (params.before instanceof Controller) {\n params.before = params.before.__li;\n }\n\n recallSavedValue(gui, controller);\n\n dom.addClass(controller.domElement, 'c');\n\n const name = document.createElement('span');\n dom.addClass(name, 'property-name');\n name.innerHTML = controller.property;\n\n const container = document.createElement('div');\n container.appendChild(name);\n container.appendChild(controller.domElement);\n\n const li = addRow(gui, container, params.before);\n\n dom.addClass(li, GUI.CLASS_CONTROLLER_ROW);\n if (controller instanceof ColorController) {\n dom.addClass(li, 'color');\n } else {\n dom.addClass(li, typeof controller.getValue());\n }\n\n augmentController(gui, li, controller);\n\n gui.__controllers.push(controller);\n\n return controller;\n}\n\nfunction getLocalStorageHash(gui, key) {\n // TODO how does this deal with multiple GUI's?\n return document.location.href + '.' + key;\n}\n\nfunction addPresetOption(gui, name, setSelected) {\n const opt = document.createElement('option');\n opt.innerHTML = name;\n opt.value = name;\n gui.__preset_select.appendChild(opt);\n if (setSelected) {\n gui.__preset_select.selectedIndex = gui.__preset_select.length - 1;\n }\n}\n\nfunction showHideExplain(explain) {\n explain.style.display = gui.useLocalStorage ? 'block' : 'none';\n}\n\nfunction addSaveMenu(gui) {\n const div = gui.__save_row = document.createElement('li');\n\n dom.addClass(gui.domElement, 'has-save');\n\n gui.__ul.insertBefore(div, gui.__ul.firstChild);\n\n dom.addClass(div, 'save-row');\n\n const gears = document.createElement('span');\n gears.innerHTML = ' ';\n dom.addClass(gears, 'button gears');\n\n // TODO replace with FunctionController\n const button = document.createElement('span');\n button.innerHTML = 'Save';\n dom.addClass(button, 'button');\n dom.addClass(button, 'save');\n\n const button2 = document.createElement('span');\n button2.innerHTML = 'New';\n dom.addClass(button2, 'button');\n dom.addClass(button2, 'save-as');\n\n const button3 = document.createElement('span');\n button3.innerHTML = 'Revert';\n dom.addClass(button3, 'button');\n dom.addClass(button3, 'revert');\n\n const select = gui.__preset_select = document.createElement('select');\n\n if (gui.load && gui.load.remembered) {\n common.each(gui.load.remembered, function(value, key) {\n addPresetOption(gui, key, key === gui.preset);\n });\n } else {\n addPresetOption(gui, DEFAULT_DEFAULT_PRESET_NAME, false);\n }\n\n dom.bind(select, 'change', function() {\n for (let index = 0; index < gui.__preset_select.length; index++) {\n gui.__preset_select[index].innerHTML = gui.__preset_select[index].value;\n }\n\n gui.preset = this.value;\n });\n\n div.appendChild(select);\n div.appendChild(gears);\n div.appendChild(button);\n div.appendChild(button2);\n div.appendChild(button3);\n\n if (SUPPORTS_LOCAL_STORAGE) {\n const explain = document.getElementById('dg-local-explain');\n const localStorageCheckBox = document.getElementById('dg-local-storage');\n const saveLocally = document.getElementById('dg-save-locally');\n\n saveLocally.style.display = 'block';\n\n if (localStorage.getItem(getLocalStorageHash(gui, 'isLocal')) === 'true') {\n localStorageCheckBox.setAttribute('checked', 'checked');\n }\n\n showHideExplain(explain);\n\n // TODO: Use a boolean controller, fool!\n dom.bind(localStorageCheckBox, 'change', function() {\n gui.useLocalStorage = !gui.useLocalStorage;\n showHideExplain(explain);\n });\n }\n\n const newConstructorTextArea = document.getElementById('dg-new-constructor');\n\n dom.bind(newConstructorTextArea, 'keydown', function(e) {\n if (e.metaKey && (e.which === 67 || e.keyCode === 67)) {\n SAVE_DIALOGUE.hide();\n }\n });\n\n dom.bind(gears, 'click', function() {\n newConstructorTextArea.innerHTML = JSON.stringify(gui.getSaveObject(), undefined, 2);\n SAVE_DIALOGUE.show();\n newConstructorTextArea.focus();\n newConstructorTextArea.select();\n });\n\n dom.bind(button, 'click', function() {\n gui.save();\n });\n\n dom.bind(button2, 'click', function() {\n const presetName = prompt('Enter a new preset name.');\n if (presetName) {\n gui.saveAs(presetName);\n }\n });\n\n dom.bind(button3, 'click', function() {\n gui.revert();\n });\n\n // div.appendChild(button2);\n}\n\nfunction addResizeHandle(gui) {\n let pmouseX;\n\n gui.__resize_handle = document.createElement('div');\n\n common.extend(gui.__resize_handle.style, {\n\n width: '6px',\n marginLeft: '-3px',\n height: '200px',\n cursor: 'ew-resize',\n position: 'absolute'\n // border: '1px solid blue'\n\n });\n\n function drag(e) {\n e.preventDefault();\n\n gui.width += pmouseX - e.clientX;\n gui.onResize();\n pmouseX = e.clientX;\n\n return false;\n }\n\n function dragStop() {\n dom.removeClass(gui.__closeButton, GUI.CLASS_DRAG);\n dom.unbind(window, 'mousemove', drag);\n dom.unbind(window, 'mouseup', dragStop);\n }\n\n function dragStart(e) {\n e.preventDefault();\n\n pmouseX = e.clientX;\n\n dom.addClass(gui.__closeButton, GUI.CLASS_DRAG);\n dom.bind(window, 'mousemove', drag);\n dom.bind(window, 'mouseup', dragStop);\n\n return false;\n }\n\n dom.bind(gui.__resize_handle, 'mousedown', dragStart);\n dom.bind(gui.__closeButton, 'mousedown', dragStart);\n\n gui.domElement.insertBefore(gui.__resize_handle, gui.domElement.firstElementChild);\n}\n\nfunction setWidth(gui, w) {\n gui.domElement.style.width = w + 'px';\n // Auto placed save-rows are position fixed, so we have to\n // set the width manually if we want it to bleed to the edge\n if (gui.__save_row && gui.autoPlace) {\n gui.__save_row.style.width = w + 'px';\n }\n if (gui.__closeButton) {\n gui.__closeButton.style.width = w + 'px';\n }\n}\n\nfunction getCurrentPreset(gui, useInitialValues) {\n const toReturn = {};\n\n // For each object I'm remembering\n common.each(gui.__rememberedObjects, function(val, index) {\n const savedValues = {};\n\n // The controllers I've made for thcommon.isObject by property\n const controllerMap =\n gui.__rememberedObjectIndecesToControllers[index];\n\n // Remember each value for each property\n common.each(controllerMap, function(controller, property) {\n savedValues[property] = useInitialValues ? controller.initialValue : controller.getValue();\n });\n\n // Save the values for thcommon.isObject\n toReturn[index] = savedValues;\n });\n\n return toReturn;\n}\n\nfunction setPresetSelectIndex(gui) {\n for (let index = 0; index < gui.__preset_select.length; index++) {\n if (gui.__preset_select[index].value === gui.preset) {\n gui.__preset_select.selectedIndex = index;\n }\n }\n}\n\nfunction updateDisplays(controllerArray) {\n if (controllerArray.length !== 0) {\n requestAnimationFrame(function() {\n updateDisplays(controllerArray);\n });\n }\n\n common.each(controllerArray, function(c) {\n c.updateDisplay();\n });\n}\n\nmodule.exports = GUI;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/gui/GUI.js\n **/","module.exports = \"<div id=\\\"dg-save\\\" class=\\\"dg dialogue\\\">\\n\\n Here's the new load parameter for your <code>GUI</code>'s constructor:\\n\\n <textarea id=\\\"dg-new-constructor\\\"></textarea>\\n\\n <div id=\\\"dg-save-locally\\\">\\n\\n <input id=\\\"dg-local-storage\\\" type=\\\"checkbox\\\"/> Automatically save\\n values to <code>localStorage</code> on exit.\\n\\n <div id=\\\"dg-local-explain\\\">The values saved to <code>localStorage</code> will\\n override those passed to <code>dat.GUI</code>'s constructor. This makes it\\n easier to work incrementally, but <code>localStorage</code> is fragile,\\n and your friends may not see the same values you do.\\n\\n </div>\\n\\n </div>\\n\\n</div>\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/html-loader!./dat/gui/saveDialogue.html\n ** module id = 23\n ** module chunks = 0\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./style.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../../../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./style.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../../../node_modules/css-loader/index.js!./../../../node_modules/sass-loader/index.js!./style.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/style-loader!../~/css-loader!../~/sass-loader!./dat/gui/style.scss\n ** module id = 24\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../../../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".dg {\\n /** Clear list styles */\\n /* Auto-place container */\\n /* Auto-placed GUI's */\\n /* Line items that don't contain folders. */\\n /** Folder names */\\n /** Hides closed items */\\n /** Controller row */\\n /** Name-half (left) */\\n /** Controller-half (right) */\\n /** Controller placement */\\n /** Shorter number boxes when slider is present. */\\n /** Ensure the entire boolean and function row shows a hand */ }\\n .dg ul {\\n list-style: none;\\n margin: 0;\\n padding: 0;\\n width: 100%;\\n clear: both; }\\n .dg.ac {\\n position: fixed;\\n top: 0;\\n left: 0;\\n right: 0;\\n height: 0;\\n z-index: 0; }\\n .dg:not(.ac) .main {\\n /** Exclude mains in ac so that we don't hide close button */\\n overflow: hidden; }\\n .dg.main {\\n -webkit-transition: opacity 0.1s linear;\\n -o-transition: opacity 0.1s linear;\\n -moz-transition: opacity 0.1s linear;\\n transition: opacity 0.1s linear; }\\n .dg.main.taller-than-window {\\n overflow-y: auto; }\\n .dg.main.taller-than-window .close-button {\\n opacity: 1;\\n /* TODO, these are style notes */\\n margin-top: -1px;\\n border-top: 1px solid #2c2c2c; }\\n .dg.main ul.closed .close-button {\\n opacity: 1 !important; }\\n .dg.main:hover .close-button,\\n .dg.main .close-button.drag {\\n opacity: 1; }\\n .dg.main .close-button {\\n /*opacity: 0;*/\\n -webkit-transition: opacity 0.1s linear;\\n -o-transition: opacity 0.1s linear;\\n -moz-transition: opacity 0.1s linear;\\n transition: opacity 0.1s linear;\\n border: 0;\\n position: absolute;\\n line-height: 19px;\\n height: 20px;\\n /* TODO, these are style notes */\\n cursor: pointer;\\n text-align: center;\\n background-color: #000; }\\n .dg.main .close-button:hover {\\n background-color: #111; }\\n .dg.a {\\n float: right;\\n margin-right: 15px;\\n overflow-x: hidden; }\\n .dg.a.has-save > ul {\\n margin-top: 27px; }\\n .dg.a.has-save > ul.closed {\\n margin-top: 0; }\\n .dg.a .save-row {\\n position: fixed;\\n top: 0;\\n z-index: 1002; }\\n .dg li {\\n -webkit-transition: height 0.1s ease-out;\\n -o-transition: height 0.1s ease-out;\\n -moz-transition: height 0.1s ease-out;\\n transition: height 0.1s ease-out; }\\n .dg li:not(.folder) {\\n cursor: auto;\\n height: 27px;\\n line-height: 27px;\\n overflow: hidden;\\n padding: 0 4px 0 5px; }\\n .dg li.folder {\\n padding: 0;\\n border-left: 4px solid transparent; }\\n .dg li.title {\\n cursor: pointer;\\n margin-left: -4px; }\\n .dg .closed li:not(.title),\\n .dg .closed ul li,\\n .dg .closed ul li > * {\\n height: 0;\\n overflow: hidden;\\n border: 0; }\\n .dg .cr {\\n clear: both;\\n padding-left: 3px;\\n height: 27px; }\\n .dg .property-name {\\n cursor: default;\\n float: left;\\n clear: left;\\n width: 40%;\\n overflow: hidden;\\n text-overflow: ellipsis; }\\n .dg .c {\\n float: left;\\n width: 60%; }\\n .dg .c input[type=text] {\\n border: 0;\\n margin-top: 4px;\\n padding: 3px;\\n width: 100%;\\n float: right; }\\n .dg .has-slider input[type=text] {\\n width: 30%;\\n /*display: none;*/\\n margin-left: 0; }\\n .dg .slider {\\n float: left;\\n width: 66%;\\n margin-left: -5px;\\n margin-right: 0;\\n height: 19px;\\n margin-top: 4px; }\\n .dg .slider-fg {\\n height: 100%; }\\n .dg .c input[type=checkbox] {\\n margin-top: 9px; }\\n .dg .c select {\\n margin-top: 5px; }\\n .dg .cr.function,\\n .dg .cr.function .property-name, .dg .cr.function *,\\n .dg .cr.boolean,\\n .dg .cr.boolean * {\\n cursor: pointer; }\\n .dg .selector {\\n display: none;\\n position: absolute;\\n margin-left: -9px;\\n margin-top: 23px;\\n z-index: 10; }\\n .dg .c:hover .selector,\\n .dg .selector.drag {\\n display: block; }\\n .dg li.save-row {\\n padding: 0; }\\n .dg li.save-row .button {\\n display: inline-block;\\n padding: 0px 6px; }\\n .dg.dialogue {\\n background-color: #222;\\n width: 460px;\\n padding: 15px;\\n font-size: 13px;\\n line-height: 15px; }\\n\\n/* TODO Separate style and structure */\\n#dg-new-constructor {\\n padding: 10px;\\n color: #222;\\n font-family: Monaco, monospace;\\n font-size: 10px;\\n border: 0;\\n resize: none;\\n box-shadow: inset 1px 1px 1px #888;\\n word-wrap: break-word;\\n margin: 12px 0;\\n display: block;\\n width: 440px;\\n overflow-y: scroll;\\n height: 100px;\\n position: relative; }\\n\\n#dg-local-explain {\\n display: none;\\n font-size: 11px;\\n line-height: 17px;\\n border-radius: 3px;\\n background-color: #333;\\n padding: 8px;\\n margin-top: 10px; }\\n #dg-local-explain code {\\n font-size: 10px; }\\n\\n#dat-gui-save-locally {\\n display: none; }\\n\\n/** Main type */\\n.dg {\\n color: #eee;\\n font: 11px 'Lucida Grande', sans-serif;\\n text-shadow: 0 -1px 0 #111;\\n /** Auto place */\\n /* Controller row, <li> */\\n /** Controllers */ }\\n .dg.main {\\n /** Scrollbar */ }\\n .dg.main::-webkit-scrollbar {\\n width: 5px;\\n background: #1a1a1a; }\\n .dg.main::-webkit-scrollbar-corner {\\n height: 0;\\n display: none; }\\n .dg.main::-webkit-scrollbar-thumb {\\n border-radius: 5px;\\n background: #676767; }\\n .dg li:not(.folder) {\\n background: #1a1a1a;\\n border-bottom: 1px solid #2c2c2c; }\\n .dg li.save-row {\\n line-height: 25px;\\n background: #dad5cb;\\n border: 0; }\\n .dg li.save-row select {\\n margin-left: 5px;\\n width: 108px; }\\n .dg li.save-row .button {\\n margin-left: 5px;\\n margin-top: 1px;\\n border-radius: 2px;\\n font-size: 9px;\\n line-height: 7px;\\n padding: 4px 4px 5px 4px;\\n background: #c5bdad;\\n color: #fff;\\n text-shadow: 0 1px 0 #b0a58f;\\n box-shadow: 0 -1px 0 #b0a58f;\\n cursor: pointer; }\\n .dg li.save-row .button.gears {\\n background: #c5bdad url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAANCAYAAAB/9ZQ7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQJJREFUeNpiYKAU/P//PwGIC/ApCABiBSAW+I8AClAcgKxQ4T9hoMAEUrxx2QSGN6+egDX+/vWT4e7N82AMYoPAx/evwWoYoSYbACX2s7KxCxzcsezDh3evFoDEBYTEEqycggWAzA9AuUSQQgeYPa9fPv6/YWm/Acx5IPb7ty/fw+QZblw67vDs8R0YHyQhgObx+yAJkBqmG5dPPDh1aPOGR/eugW0G4vlIoTIfyFcA+QekhhHJhPdQxbiAIguMBTQZrPD7108M6roWYDFQiIAAv6Aow/1bFwXgis+f2LUAynwoIaNcz8XNx3Dl7MEJUDGQpx9gtQ8YCueB+D26OECAAQDadt7e46D42QAAAABJRU5ErkJggg==) 2px 1px no-repeat;\\n height: 7px;\\n width: 8px; }\\n .dg li.save-row .button:hover {\\n background-color: #bab19e;\\n box-shadow: 0 -1px 0 #b0a58f; }\\n .dg li.folder {\\n border-bottom: 0; }\\n .dg li.title {\\n padding-left: 16px;\\n background: #000 url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlI+hKgFxoCgAOw==) 6px 10px no-repeat;\\n cursor: pointer;\\n border-bottom: 1px solid rgba(255, 255, 255, 0.2); }\\n .dg .closed li.title {\\n background-image: url(data:image/gif;base64,R0lGODlhBQAFAJEAAP////Pz8////////yH5BAEAAAIALAAAAAAFAAUAAAIIlGIWqMCbWAEAOw==); }\\n .dg .cr.boolean {\\n border-left: 3px solid #806787; }\\n .dg .cr.color {\\n border-left: 3px solid; }\\n .dg .cr.function {\\n border-left: 3px solid #e61d5f; }\\n .dg .cr.number {\\n border-left: 3px solid #2FA1D6; }\\n .dg .cr.number input[type=text] {\\n color: #2FA1D6; }\\n .dg .cr.string {\\n border-left: 3px solid #1ed36f; }\\n .dg .cr.string input[type=text] {\\n color: #1ed36f; }\\n .dg .cr.function:hover,\\n .dg .cr.boolean:hover {\\n background: #111; }\\n .dg .c input[type=text] {\\n background: #303030;\\n outline: none; }\\n .dg .c input[type=text]:hover {\\n background: #3c3c3c; }\\n .dg .c input[type=text]:focus {\\n background: #494949;\\n color: #fff; }\\n .dg .c .slider {\\n background: #303030;\\n cursor: ew-resize; }\\n .dg .c .slider-fg {\\n background: #2FA1D6; }\\n .dg .c .slider:hover {\\n background: #3c3c3c; }\\n .dg .c .slider:hover .slider-fg {\\n background: #44abda; }\\n\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ../~/css-loader!../~/sass-loader!./dat/gui/style.scss\n ** module id = 25\n ** module chunks = 0\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport OptionController from './OptionController';\nimport NumberControllerBox from './NumberControllerBox';\nimport NumberControllerSlider from './NumberControllerSlider';\nimport StringController from './StringController';\nimport FunctionController from './FunctionController';\nimport BooleanController from './BooleanController';\nimport common from '../utils/common';\n\nvar ControllerFactory = function (object, property) {\n var initialValue = object[property];\n\n // Providing options?\n if (common.isArray(arguments[2]) || common.isObject(arguments[2])) {\n return new OptionController(object, property, arguments[2]);\n }\n\n // Providing a map?\n if (common.isNumber(initialValue)) {\n\n if (common.isNumber(arguments[2]) && common.isNumber(arguments[3])) {\n // Has min and max.\n if (common.isNumber(arguments[4])) // has step\n {\n return new NumberControllerSlider(object, property, arguments[2], arguments[3], arguments[4]);\n }\n else {\n return new NumberControllerSlider(object, property, arguments[2], arguments[3]);\n }\n } else {\n return new NumberControllerBox(object, property, {min: arguments[2], max: arguments[3]});\n }\n }\n\n if (common.isString(initialValue)) {\n return new StringController(object, property);\n }\n\n if (common.isFunction(initialValue)) {\n return new FunctionController(object, property, '');\n }\n\n if (common.isBoolean(initialValue)) {\n return new BooleanController(object, property);\n }\n};\n\nexport default ControllerFactory;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/ControllerFactory.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nexport default function() {\n function requestAnimationFrame(callback) {\n // TODO: Get rid of window\n window.setTimeout(callback, 1000 / 60);\n }\n\n return window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n requestAnimationFrame;\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/requestAnimationFrame.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\nclass CenteredDiv {\n constructor() {\n\n this.backgroundElement = document.createElement('div');\n common.extend(this.backgroundElement.style, {\n backgroundColor: 'rgba(0,0,0,0.8)',\n top: 0,\n left: 0,\n display: 'none',\n zIndex: '1000',\n opacity: 0,\n WebkitTransition: 'opacity 0.2s linear',\n transition: 'opacity 0.2s linear'\n });\n\n dom.makeFullscreen(this.backgroundElement);\n this.backgroundElement.style.position = 'fixed';\n\n this.domElement = document.createElement('div');\n common.extend(this.domElement.style, {\n position: 'fixed',\n display: 'none',\n zIndex: '1001',\n opacity: 0,\n WebkitTransition: '-webkit-transform 0.2s ease-out, opacity 0.2s linear',\n transition: 'transform 0.2s ease-out, opacity 0.2s linear'\n });\n\n\n document.body.appendChild(this.backgroundElement);\n document.body.appendChild(this.domElement);\n\n var _this = this;\n dom.bind(this.backgroundElement, 'click', function () {\n _this.hide();\n });\n }\n\n show() {\n var _this = this;\n\n this.backgroundElement.style.display = 'block';\n\n this.domElement.style.display = 'block';\n this.domElement.style.opacity = 0;\n// this.domElement.style.top = '52%';\n this.domElement.style.webkitTransform = 'scale(1.1)';\n\n this.layout();\n\n common.defer(function () {\n _this.backgroundElement.style.opacity = 1;\n _this.domElement.style.opacity = 1;\n _this.domElement.style.webkitTransform = 'scale(1)';\n });\n\n };\n\n /**\n * Hide centered div\n */\n hide() {\n var _this = this;\n\n var hide = function () {\n\n _this.domElement.style.display = 'none';\n _this.backgroundElement.style.display = 'none';\n\n dom.unbind(_this.domElement, 'webkitTransitionEnd', hide);\n dom.unbind(_this.domElement, 'transitionend', hide);\n dom.unbind(_this.domElement, 'oTransitionEnd', hide);\n\n };\n\n dom.bind(this.domElement, 'webkitTransitionEnd', hide);\n dom.bind(this.domElement, 'transitionend', hide);\n dom.bind(this.domElement, 'oTransitionEnd', hide);\n\n this.backgroundElement.style.opacity = 0;\n// this.domElement.style.top = '48%';\n this.domElement.style.opacity = 0;\n this.domElement.style.webkitTransform = 'scale(1.1)';\n\n };\n\n layout() {\n this.domElement.style.left = window.innerWidth / 2 - dom.getWidth(this.domElement) / 2 + 'px';\n this.domElement.style.top = window.innerHeight / 2 - dom.getHeight(this.domElement) / 2 + 'px';\n }\n}\n\nfunction lockScroll(e) {\n console.log(e);\n}\n\nexport default CenteredDiv;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/dom/CenteredDiv.js\n **/"],"sourceRoot":""} |