mirror of
https://github.com/dataarts/dat.gui.git
synced 2024-12-12 04:08:27 +00:00
1 line
191 KiB
Plaintext
1 line
191 KiB
Plaintext
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 0b7bdb232ce4f2e9d7a1","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/controllers/FunctionController.js","webpack:///./dat/controllers/ColorController.js","webpack:///./dat/gui/GUI.js","webpack:///./dat/utils/css.js","webpack:///./dat/gui/saveDialogue.html","webpack:///./dat/controllers/ControllerFactory.js","webpack:///./dat/utils/requestAnimationFrame.js","webpack:///./dat/dom/CenteredDiv.js","webpack:///./dat/gui/style.scss","webpack:///../~/css-loader/lib/css-base.js"],"names":[],"mappings":"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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 0b7bdb232ce4f2e9d7a1\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 require('./src/dat/index');\n\n\n\n/** WEBPACK FOOTER **\n ** ../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\nexport default {\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 new Error('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\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 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\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 new Error('Corrupted color state');\n }\n};\n\nColor.recalculateHSV = function(color) {\n const 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\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\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 if (!this.isUndefined(obj)) {\n const keys = Object.keys(obj);\n keys.forEach(function(key) {\n if (!this.isUndefined(obj[key])) {\n target[key] = obj[key];\n }\n }.bind(this));\n }\n }, this);\n\n return target;\n },\n\n defaults: function(target) {\n this.each(ARR_SLICE.call(arguments, 1), function(obj) {\n if (!this.isUndefined(obj)) {\n const keys = Object.keys(obj);\n keys.forEach(function(key) {\n if (this.isUndefined(target[key])) {\n target[key] = obj[key];\n }\n }.bind(this));\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 if (this.isUndefined(obj)) return;\n\n const keys = Object.keys(obj);\n keys.forEach(function(key) {\n if (itr.call(scope, obj[key], key) === this.BREAK) {\n return;\n }\n }.bind(this));\n }\n },\n\n defer: function(fnc) {\n setTimeout(fnc, 0);\n },\n\n // call the function immediately, but wait until threshold passes to allow it to be called again\n debounce: function(func, threshold) {\n let timeout;\n\n return function() {\n const obj = this;\n const args = arguments;\n function delayed() {\n timeout = null;\n }\n\n const allowCall = !timeout;\n\n clearTimeout(timeout);\n timeout = setTimeout(delayed, threshold);\n\n if (allowCall) {\n func.apply(obj, args);\n }\n };\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\nlet tmpComponent;\n\nconst ColorMath = {\n hsv_to_rgb: function(h, s, v) {\n const hi = Math.floor(h / 60) % 6;\n\n const f = h / 60 - Math.floor(h / 60);\n const p = v * (1.0 - s);\n const q = v * (1.0 - (f * s));\n const t = v * (1.0 - ((1.0 - f) * s));\n\n const 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 rgb_to_hsv: function(r, g, b) {\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n let h;\n let 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 let 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\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\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';\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 const _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 const 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\nconst EVENT_MAP = {\n HTMLEvents: ['change'],\n MouseEvents: ['click', 'mousemove', 'mousedown', 'mouseup', 'mouseover'],\n KeyboardEvents: ['keydown']\n};\n\nconst 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\nconst CSS_VALUE_PIXELS = /(\\d+(\\.\\d+)?)px/;\n\nfunction cssValueToPixels(val) {\n if (val === '0' || common.isUndefined(val)) {\n return 0;\n }\n\n const 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 * @namespace\n * @member dat.dom\n */\nconst dom = {\n\n /**\n *\n * @param elem\n * @param selectable\n */\n makeSelectable: function(elem, selectable) {\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 * @param elem\n * @param horizontal\n * @param vert\n */\n makeFullscreen: function(elem, hor, vert) {\n let vertical = vert;\n let horizontal = hor;\n\n if (common.isUndefined(horizontal)) {\n horizontal = true;\n }\n\n if (common.isUndefined(vertical)) {\n vertical = true;\n }\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 * @param elem\n * @param eventType\n * @param params\n */\n fakeEvent: function(elem, eventType, pars, aux) {\n const params = pars || {};\n const className = EVENT_MAP_INV[eventType];\n if (!className) {\n throw new Error('Event type ' + eventType + ' not supported.');\n }\n const evt = document.createEvent(className);\n switch (className) {\n case 'MouseEvents':\n {\n const clientX = params.x || params.clientX || 0;\n const 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 }\n case 'KeyboardEvents':\n {\n const 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 }\n default:\n {\n evt.initEvent(eventType, params.bubbles || false, params.cancelable || true);\n break;\n }\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, newBool) {\n const bool = newBool || false;\n if (elem.addEventListener) {\n elem.addEventListener(event, func, bool);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + event, func);\n }\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, newBool) {\n const bool = newBool || false;\n if (elem.removeEventListener) {\n elem.removeEventListener(event, func, bool);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + event, func);\n }\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 const 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 === className) {\n elem.removeAttribute('class');\n } else {\n const classes = elem.className.split(/ +/);\n const 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 const 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 const 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 el\n */\n getOffset: function(el) {\n let elem = el;\n const offset = { left: 0, top: 0 };\n if (elem.offsetParent) {\n do {\n offset.left += elem.offsetLeft;\n offset.top += elem.offsetTop;\n elem = elem.offsetParent;\n } while (elem);\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, opts) {\n super(object, property);\n\n let options = opts;\n\n const _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 const 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 const opt = document.createElement('option');\n opt.innerHTML = key;\n opt.setAttribute('value', value);\n _this.__select.appendChild(opt);\n });\n\n // Acknowledge original value\n this.updateDisplay();\n\n dom.bind(this.__select, 'change', function() {\n const desiredValue = this.options[this.selectedIndex].value;\n _this.setValue(desiredValue);\n });\n\n this.domElement.appendChild(this.__select);\n }\n\n setValue(v) {\n const 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 if (dom.isActive(this.__select)) return this; // prevent number from updating if user is trying to manually update\n this.__select.value = this.getValue();\n return super.updateDisplay();\n }\n}\n\nexport default OptionController;\n\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';\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 const _this = this;\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.__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 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 const _x = x.toString();\n if (_x.indexOf('.') > -1) {\n return _x.length - _x.indexOf('.') - 1;\n }\n\n return 0;\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 const _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 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 } else {\n this.__impliedStep = this.__step;\n }\n\n this.__precision = numDecimals(this.__impliedStep);\n }\n\n setValue(v) {\n let _v = v;\n\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 * 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 const 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 const _this = this;\n\n /**\n * {Number} Previous mouse y position\n * @ignore\n */\n let prevY;\n\n function onChange() {\n const attempted = parseFloat(_this.__input.value);\n if (!common.isNaN(attempted)) {\n _this.setValue(attempted);\n }\n }\n\n function onBlur() {\n onChange();\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n function onMouseDrag(e) {\n document.activeElement.blur();\n\n const diff = prevY - e.clientY;\n _this.setValue(_this.getValue() + diff * _this.__impliedStep);\n\n prevY = e.clientY;\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n }\n\n function onMouseDown(e) {\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n prevY = e.clientY;\n }\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 // 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 this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n if (dom.isActive(this.__input)) return this; // prevent number from updating if user is trying to manually update\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/** 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';\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 const _this = this;\n\n this.__background = document.createElement('div');\n this.__foreground = document.createElement('div');\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 document.activeElement.blur();\n\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n\n onMouseDrag(e);\n }\n\n function onMouseDrag(e) {\n e.preventDefault();\n\n const offset = dom.getOffset(_this.__background);\n const 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 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 const pct = (this.getValue() - this.__min) / (this.__max - this.__min);\n this.__foreground.style.width = pct * 100 + '%';\n return super.updateDisplay();\n }\n}\n\nexport default NumberControllerSlider;\n\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\nimport Controller from './Controller';\nimport dom from '../dom/dom';\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 const _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\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 const _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 dom\n .addClass(this, 'drag')\n .bind(window, 'mouseup', function(/* e */) {\n dom.removeClass(_this.__selector, 'drag');\n });\n });\n\n const valueField = 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 < 0.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(valueField.style, {\n width: '100%',\n height: '100%',\n background: 'none'\n });\n\n linearGradient(valueField, 'top', 'rgba(0,0,0,0)', '#000');\n\n common.extend(this.__hue_field.style, {\n width: '15px',\n height: '100px',\n border: '1px solid #555',\n cursor: 'ns-resize',\n position: 'absolute',\n top: '3px',\n right: '3px'\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', fieldUpH);\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', fieldUpSV);\n }\n\n function fieldUpSV() {\n dom.unbind(window, 'mousemove', setSV);\n dom.unbind(window, 'mouseup', fieldUpSV);\n // document.body.style.cursor = 'default';\n onFinish();\n }\n\n function onBlur() {\n const 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 fieldUpH() {\n dom.unbind(window, 'mousemove', setH);\n dom.unbind(window, 'mouseup', fieldUpH);\n onFinish();\n }\n\n function onFinish() {\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.__color.toString());\n }\n }\n\n this.__saturation_field.appendChild(valueField);\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 e.preventDefault();\n\n const w = dom.getWidth(_this.__saturation_field);\n const o = dom.getOffset(_this.__saturation_field);\n let s = (e.clientX - o.left + document.body.scrollLeft) / w;\n let v = 1 - (e.clientY - o.top + document.body.scrollTop) / w;\n\n if (v > 1) {\n v = 1;\n } else if (v < 0) {\n v = 0;\n }\n\n if (s > 1) {\n s = 1;\n } else if (s < 0) {\n s = 0;\n }\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 function setH(e) {\n e.preventDefault();\n\n const s = dom.getHeight(_this.__hue_field);\n const o = dom.getOffset(_this.__hue_field);\n let h = 1 - (e.clientY - o.top + document.body.scrollTop) / s;\n\n if (h > 1) {\n h = 1;\n } else if (h < 0) {\n h = 0;\n }\n\n _this.__color.h = h * 360;\n\n _this.setValue(_this.__color.toOriginal());\n\n return false;\n }\n }\n\n updateDisplay() {\n const i = interpret(this.getValue());\n\n if (i !== false) {\n let 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 common.extend(this.__temp.__state, this.__color.__state);\n\n this.__temp.a = 1;\n\n const flip = (this.__color.v < 0.5 || this.__color.s > 0.5) ? 255 : 0;\n const _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\nconst 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\nexport default ColorController;\n\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\nimport css from '../utils/css';\nimport saveDialogueContents from './saveDialogue.html';\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 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\nimport styleSheet from './style.scss'; // CSS to embed in build\n\ncss.inject(styleSheet);\n\n/** Outer-most className for GUI's */\nconst CSS_NAMESPACE = 'dg';\n\nconst HIDE_KEY_CODE = 72;\n\n/** The only value shared between the JS and SCSS. Use caution. */\nconst CLOSE_BUTTON_HEIGHT = 20;\n\nconst DEFAULT_DEFAULT_PRESET_NAME = 'Default';\n\nconst SUPPORTS_LOCAL_STORAGE = (function() {\n try {\n return 'localStorage' in window && window.localStorage !== null;\n } catch (e) {\n return false;\n }\n}());\n\nlet SAVE_DIALOGUE;\n\n/** Have we yet to create an autoPlace GUI? */\nlet autoPlaceVirgin = true;\n\n/** Fixed position div that auto place GUI's go inside */\nlet autoPlaceContainer;\n\n/** Are we hiding the GUI's ? */\nlet hide = false;\n\n/** GUI's which should be hidden */\nconst hideableGuis = [];\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 */\nconst GUI = function(pars) {\n const _this = this;\n\n let params = pars || {};\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 // 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 hideableGuis.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 let useLocalStorage =\n SUPPORTS_LOCAL_STORAGE &&\n localStorage.getItem(getLocalStorageHash(this, 'isLocal')) === 'true';\n\n let 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 }\n\n return params.load.preset;\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 (titleRowName) {\n titleRowName.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 useLocalStorage;\n },\n set: function(bool) {\n if (SUPPORTS_LOCAL_STORAGE) {\n useLocalStorage = 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 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 (useLocalStorage) {\n _this.useLocalStorage = true;\n\n const savedGui = localStorage.getItem(getLocalStorageHash(this, 'gui'));\n\n if (savedGui) {\n params.load = JSON.parse(savedGui);\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 const titleRowName = document.createTextNode(params.name);\n dom.addClass(titleRowName, 'controller-name');\n\n const titleRow = addRow(_this, titleRowName);\n\n const onClickTitle = 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(titleRow, 'title');\n dom.bind(titleRow, 'click', onClickTitle);\n\n if (!params.closed) {\n this.closed = false;\n }\n }\n\n if (params.autoPlace) {\n if (common.isUndefined(params.parent)) {\n if (autoPlaceVirgin) {\n autoPlaceContainer = document.createElement('div');\n dom.addClass(autoPlaceContainer, CSS_NAMESPACE);\n dom.addClass(autoPlaceContainer, GUI.CLASS_AUTO_PLACE_CONTAINER);\n document.body.appendChild(autoPlaceContainer);\n autoPlaceVirgin = false;\n }\n\n // Put it in the dom for you.\n autoPlaceContainer.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 this.__resizeHandler = function() {\n _this.onResize();\n };\n\n dom.bind(window, 'resize', this.__resizeHandler);\n dom.bind(this.__ul, 'webkitTransitionEnd', this.__resizeHandler);\n dom.bind(this.__ul, 'transitionend', this.__resizeHandler);\n dom.bind(this.__ul, 'oTransitionEnd', this.__resizeHandler);\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 function resetWidth() {\n const 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(hideableGuis, function(gui) {\n gui.domElement.style.display = hide ? 'none' : '';\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\nGUI._keydownHandler = function(e) {\n if (document.activeElement.type !== 'text' &&\n (e.which === HIDE_KEY_CODE || e.keyCode === HIDE_KEY_CODE)) {\n GUI.toggleHide();\n }\n};\ndom.bind(window, 'keydown', GUI._keydownHandler, 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 const _this = this;\n common.defer(function() {\n _this.onResize();\n });\n },\n\n destroy: function() {\n if (this.autoPlace) {\n autoPlaceContainer.removeChild(this.domElement);\n }\n\n dom.unbind(window, 'keydown', GUI._keydownHandler, false);\n dom.unbind(window, 'resize', this.__resizeHandler);\n\n if (this.saveToLocalStorageIfPossible) {\n dom.unbind(window, 'unload', this.saveToLocalStorageIfPossible);\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 const newGuiParams = { 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 newGuiParams.autoPlace = this.autoPlace;\n\n // Do we have saved appearance data for this folder?\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 // Start me closed if I was closed\n newGuiParams.closed = this.load.folders[name].closed;\n\n // Pass down the loaded data\n newGuiParams.load = this.load.folders[name];\n }\n\n const gui = new GUI(newGuiParams);\n this.__folders[name] = gui;\n\n const 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: common.debounce(function() {\n // we debounce this function to prevent performance issues when rotating on tablet/mobile\n const root = this.getRoot();\n if (root.scrollable) {\n const top = dom.getOffset(root.__ul).top;\n let 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\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 }, 200),\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 const _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 let 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 const 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\n // fire onFinishChange callback\n if (controller.__onFinishChange) {\n controller.__onFinishChange.call(controller, controller.getValue());\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 const init = this.__listening.length === 0;\n this.__listening.push(controller);\n if (init) {\n updateDisplays(this.__listening);\n }\n },\n\n updateDisplay: function() {\n common.each(this.__controllers, function(controller) {\n controller.updateDisplay();\n });\n common.each(this.__folders, function(folder) {\n folder.updateDisplay();\n });\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, liBefore);\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 const nextSibling = controller.__li.nextElementSibling;\n controller.remove();\n\n return add(\n gui,\n controller.object,\n controller.property,\n {\n before: nextSibling,\n factoryArgs: [common.toArray(arguments)]\n }\n );\n }\n\n if (common.isArray(options) || common.isObject(options)) {\n const nextSibling = controller.__li.nextElementSibling;\n controller.remove();\n\n return add(\n gui,\n controller.object,\n controller.property,\n {\n before: nextSibling,\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', 'step'], 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 pb.apply(box, args);\n return pc.apply(controller, 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(gui, 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(gui, explain);\n\n // TODO: Use a boolean controller, fool!\n dom.bind(localStorageCheckBox, 'change', function() {\n gui.useLocalStorage = !gui.useLocalStorage;\n showHideExplain(gui, 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.call(window, 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 **/","/**\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 const head = doc.getElementsByTagName('head')[0];\n try {\n head.appendChild(injected);\n } catch (e) { // Unable to inject CSS, probably because of a Content Security Policy\n }\n }\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/css.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 ** ./dat/gui/saveDialogue.html\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 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\nconst ControllerFactory = function(object, property) {\n const 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 // Has min and max? (slider)\n if (common.isNumber(arguments[2]) && common.isNumber(arguments[3])) {\n // has step?\n if (common.isNumber(arguments[4])) {\n return new NumberControllerSlider(object, property,\n arguments[2], arguments[3], arguments[4]);\n }\n\n return new NumberControllerSlider(object, property, arguments[2], arguments[3]);\n }\n\n // number box\n if (common.isNumber(arguments[4])) { // has step\n return new NumberControllerBox(object, property,\n { min: arguments[2], max: arguments[3], step: arguments[4] });\n }\n return new NumberControllerBox(object, property, { min: arguments[2], max: arguments[3] });\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 return null;\n};\n\nexport default ControllerFactory;\n\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\nfunction requestAnimationFrame(callback) {\n setTimeout(callback, 1000 / 60);\n}\n\nexport default window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n requestAnimationFrame;\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 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 const _this = this;\n dom.bind(this.backgroundElement, 'click', function() {\n _this.hide();\n });\n }\n\n show() {\n const _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 * Hide centered div\n */\n hide() {\n const _this = this;\n\n const hide = function() {\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 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 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\nexport default CenteredDiv;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/dom/CenteredDiv.js\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,\\n .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, .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 max-width: 100%; }\\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 ** ./dat/gui/style.scss\n ** module id = 23\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 = 24\n ** module chunks = 0\n **/"],"sourceRoot":""} |