From 2a8011df3404b4a2da364fb64184c1cd05bcf023 Mon Sep 17 00:00:00 2001 From: Tomas Korcak Date: Fri, 14 Aug 2015 22:29:30 +0200 Subject: [PATCH] Fixing dat.gui issues --- .eslintrc | 7 +- bower.json | 6 +- build/dat.gui.js | 1532 ++++++++++----------- build/dat.gui.js.map | 2 +- build/dat.gui.min.js | 2 + example.html | 11 +- package.json | 3 + src/dat/color/Color.js | 5 +- src/dat/color/interpret.js | 157 +-- src/dat/color/toString.js | 13 +- src/dat/controllers/Controller.js | 7 +- src/dat/controllers/FunctionController.js | 1 + src/dat/dom/CenteredDiv.js | 143 +- src/dat/gui/GUI.js | 606 ++++---- src/dat/index.js | 2 +- src/dat/utils/common.js | 1 + webpack/webpack.config.js | 75 +- 17 files changed, 1166 insertions(+), 1407 deletions(-) create mode 100644 build/dat.gui.min.js diff --git a/.eslintrc b/.eslintrc index 0af6b56..77d476a 100644 --- a/.eslintrc +++ b/.eslintrc @@ -1,3 +1,8 @@ { - "extends": "eslint-config-airbnb" + "extends": "eslint-config-airbnb", + "rules": { + "comma-dangle": 0, + "func-names": 0, + "no-alert": 0 + } } \ No newline at end of file diff --git a/bower.json b/bower.json index 85fee55..dceaf6d 100644 --- a/bower.json +++ b/bower.json @@ -1,12 +1,12 @@ { - "name": "dat-gui", - "version": "0.5.0", + "name": "dat.gui", + "version": "0.6.0", "homepage": "https://github.com/dataarts/dat.gui", "authors": [ "Google Data Arts Team " ], "description": "dat.gui is a lightweight controller library for JavaScript.", - "main": "./build/dat.gui.js", + "main": "./index.js", "keywords": [ "controller", "javascript", diff --git a/build/dat.gui.js b/build/dat.gui.js index edac2b3..f5a52d7 100644 --- a/build/dat.gui.js +++ b/build/dat.gui.js @@ -74,7 +74,7 @@ return /******/ (function(modules) { // webpackBootstrap controllers: { Controller: __webpack_require__(7), BooleanController: __webpack_require__(8), - OptionController: __webpack_require__(9), + OptionController: __webpack_require__(10), StringController: __webpack_require__(11), NumberController: __webpack_require__(12), NumberControllerBox: __webpack_require__(13), @@ -84,7 +84,7 @@ return /******/ (function(modules) { // webpackBootstrap }, dom: { - dom: __webpack_require__(10) + dom: __webpack_require__(9) }, gui: { @@ -113,11 +113,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -152,17 +148,13 @@ return /******/ (function(modules) { // webpackBootstrap this.__state.a = this.__state.a || 1; } - _createClass(Color, [{ - key: 'toString', - value: function toString() { - return (0, _toString2['default'])(this); - } - }, { - key: 'toOriginal', - value: function toOriginal() { - return this.__state.conversion.write(this); - } - }]); + Color.prototype.toString = function toString() { + return _toString2['default'](this); + }; + + Color.prototype.toOriginal = function toOriginal() { + return this.__state.conversion.write(this); + }; return Color; })(); @@ -203,7 +195,6 @@ return /******/ (function(modules) { // webpackBootstrap defineHSVComponent(Color.prototype, 'v'); Object.defineProperty(Color.prototype, 'a', { - get: function get() { return this.__state.a; }, @@ -229,7 +220,6 @@ return /******/ (function(modules) { // webpackBootstrap }); function defineRGBComponent(target, component, componentHexIndex) { - Object.defineProperty(target, component, { get: function get() { if (this.__state.space === 'RGB') { @@ -255,7 +245,9 @@ return /******/ (function(modules) { // webpackBootstrap function defineHSVComponent(target, component) { Object.defineProperty(target, component, { get: function get() { - if (this.__state.space === 'HSV') return this.__state[component]; + if (this.__state.space === 'HSV') { + return this.__state[component]; + } Color.recalculateHSV(this); @@ -295,49 +287,18 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } } - var _toString = __webpack_require__(4); - var toString = _interopRequireWildcard(_toString); + var _toString2 = _interopRequireDefault(_toString); var _utilsCommon = __webpack_require__(5); var _utilsCommon2 = _interopRequireDefault(_utilsCommon); - var result, toReturn; - - var interpret = function interpret() { - toReturn = false; - - var original = arguments.length > 1 ? _utilsCommon2['default'].toArray(arguments) : arguments[0]; - _utilsCommon2['default'].each(INTERPRETATIONS, function (family) { - - if (family.litmus(original)) { - _utilsCommon2['default'].each(family.conversions, function (conversion, conversionName) { - result = conversion.read(original); - - if (toReturn === false && result !== false) { - toReturn = result; - result.conversionName = conversionName; - result.conversion = conversion; - return _utilsCommon2['default'].BREAK; - } - }); - - return _utilsCommon2['default'].BREAK; - } - }); - - return toReturn; - }; - var INTERPRETATIONS = [ // Strings { @@ -345,39 +306,42 @@ return /******/ (function(modules) { // webpackBootstrap conversions: { THREE_CHAR_HEX: { read: function read(original) { - var test = original.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i); - if (test === null) return false; + if (test === null) { + return false; + } return { space: 'HEX', - hex: parseInt('0x' + test[1].toString() + test[1].toString() + test[2].toString() + test[2].toString() + test[3].toString() + test[3].toString()) + hex: parseInt('0x' + test[1].toString() + test[1].toString() + test[2].toString() + test[2].toString() + test[3].toString() + test[3].toString(), 0) }; }, - write: toString + write: _toString2['default'] }, SIX_CHAR_HEX: { read: function read(original) { - var test = original.match(/^#([A-F0-9]{6})$/i); - if (test === null) return false; + if (test === null) { + return false; + } return { space: 'HEX', - hex: parseInt('0x' + test[1].toString()) + hex: parseInt('0x' + test[1].toString(), 0) }; }, - write: toString + write: _toString2['default'] }, CSS_RGB: { read: function read(original) { - var test = original.match(/^rgb\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\)/); - if (test === null) return false; + if (test === null) { + return false; + } return { space: 'RGB', @@ -387,14 +351,15 @@ return /******/ (function(modules) { // webpackBootstrap }; }, - write: toString + write: _toString2['default'] }, CSS_RGBA: { read: function read(original) { - var test = original.match(/^rgba\(\s*(.+)\s*,\s*(.+)\s*,\s*(.+)\s*\,\s*(.+)\s*\)/); - if (test === null) return false; + if (test === null) { + return false; + } return { space: 'RGB', @@ -405,7 +370,7 @@ return /******/ (function(modules) { // webpackBootstrap }; }, - write: toString + write: _toString2['default'] } } }, @@ -438,10 +403,12 @@ return /******/ (function(modules) { // webpackBootstrap { litmus: _utilsCommon2['default'].isArray, conversions: { - RGB_ARRAY: { read: function read(original) { - if (original.length != 3) return false; + if (original.length !== 3) { + return false; + } + return { space: 'RGB', r: original[0], @@ -457,7 +424,7 @@ return /******/ (function(modules) { // webpackBootstrap RGBA_ARRAY: { read: function read(original) { - if (original.length != 4) return false; + if (original.length !== 4) return false; return { space: 'RGB', r: original[0], @@ -476,9 +443,7 @@ return /******/ (function(modules) { // webpackBootstrap // Objects { - litmus: _utilsCommon2['default'].isObject, - conversions: { RGBA_OBJ: { @@ -575,6 +540,33 @@ return /******/ (function(modules) { // webpackBootstrap } }]; + var result = undefined; + var toReturn = undefined; + + var interpret = function interpret() { + toReturn = false; + + var original = arguments.length > 1 ? _utilsCommon2['default'].toArray(arguments) : arguments[0]; + _utilsCommon2['default'].each(INTERPRETATIONS, function (family) { + if (family.litmus(original)) { + _utilsCommon2['default'].each(family.conversions, function (conversion, conversionName) { + result = conversion.read(original); + + if (toReturn === false && result !== false) { + toReturn = result; + result.conversionName = conversionName; + result.conversion = conversion; + return _utilsCommon2['default'].BREAK; + } + }); + + return _utilsCommon2['default'].BREAK; + } + }); + + return toReturn; + }; + exports['default'] = interpret; module.exports = exports['default']; @@ -597,9 +589,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -607,20 +597,19 @@ return /******/ (function(modules) { // webpackBootstrap var _utilsCommon2 = _interopRequireDefault(_utilsCommon); - var colorToString = function colorToString(color) { - if (color.a == 1 || _utilsCommon2['default'].isUndefined(color.a)) { + exports['default'] = function (color) { + if (color.a === 1 || _utilsCommon2['default'].isUndefined(color.a)) { var s = color.hex.toString(16); while (s.length < 6) { s = '0' + s; } - return '#' + s; - } else { - return 'rgba(' + Math.round(color.r) + ',' + Math.round(color.g) + ',' + Math.round(color.b) + ',' + color.a + ')'; } + + return 'rgba(' + Math.round(color.r) + ',' + Math.round(color.g) + ',' + Math.round(color.b) + ',' + color.a + ')'; }; - exports['default'] = colorToString; + ; module.exports = exports['default']; /***/ }, @@ -642,6 +631,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; + exports.__esModule = true; var ARR_EACH = Array.prototype.forEach; var ARR_SLICE = Array.prototype.slice; @@ -652,24 +642,27 @@ return /******/ (function(modules) { // webpackBootstrap */ var Common = { - BREAK: {}, extend: function extend(target) { - this.each(ARR_SLICE.call(arguments, 1), function (obj) { - - for (var key in obj) if (!this.isUndefined(obj[key])) target[key] = obj[key]; + for (var key in obj) { + if (!this.isUndefined(obj[key])) { + target[key] = obj[key]; + } + } }, this); return target; }, defaults: function defaults(target) { - this.each(ARR_SLICE.call(arguments, 1), function (obj) { - - for (var key in obj) if (this.isUndefined(target[key])) target[key] = obj[key]; + for (var key in obj) { + if (this.isUndefined(target[key])) { + target[key] = obj[key]; + } + } }, this); return target; @@ -687,19 +680,27 @@ return /******/ (function(modules) { // webpackBootstrap }, each: function each(obj, itr, scope) { - - if (!obj) return; + if (!obj) { + return; + } if (ARR_EACH && obj.forEach && obj.forEach === ARR_EACH) { - obj.forEach(itr, scope); } else if (obj.length === obj.length + 0) { // Is number but not NaN - - for (var key = 0, l = obj.length; key < l; key++) if (key in obj && itr.call(scope, obj[key], key) === this.BREAK) return; + var key = undefined; + var l = undefined; + for (key = 0, l = obj.length; key < l; key++) { + if (key in obj && itr.call(scope, obj[key], key) === this.BREAK) { + return; + } + } } else { - - for (var key in obj) if (itr.call(scope, obj[key], key) === this.BREAK) return; + for (var key in obj) { + if (itr.call(scope, obj[key], key) === this.BREAK) { + return; + } + } } }, @@ -720,9 +721,19 @@ return /******/ (function(modules) { // webpackBootstrap return obj === null; }, - isNaN: function isNaN(obj) { - return obj !== obj; - }, + isNaN: (function (_isNaN) { + function isNaN(_x) { + return _isNaN.apply(this, arguments); + } + + isNaN.toString = function () { + return _isNaN.toString(); + }; + + return isNaN; + })(function (obj) { + return isNaN(obj); + }), isArray: Array.isArray || function (obj) { return obj.constructor === Array; @@ -750,7 +761,8 @@ return /******/ (function(modules) { // webpackBootstrap }; - module.exports = Common; + exports['default'] = Common; + module.exports = exports['default']; /***/ }, /* 6 */ @@ -771,9 +783,7 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; - Object.defineProperty(exports, "__esModule", { - value: true - }); + exports.__esModule = true; var tmpComponent; var ColorMath = { @@ -870,11 +880,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -938,79 +944,72 @@ return /******/ (function(modules) { // webpackBootstrap * * @param {Function} fnc This function will be called whenever the value * is modified via this Controller. - * @returns {dat.controllers.Controller} this + * @returns {Controller} this */ - _createClass(Controller, [{ - key: 'onChange', - value: function onChange(fnc) { - this.__onChange = fnc; - return this; + Controller.prototype.onChange = function onChange(fnc) { + this.__onChange = fnc; + return this; + }; + + /** + * Specify that a function fire every time someone "finishes" changing + * the value wih this Controller. Useful for values that change + * incrementally like numbers or strings. + * + * @param {Function} fnc This function will be called whenever + * someone "finishes" changing the value via this Controller. + * @returns {Controller} this + */ + + Controller.prototype.onFinishChange = function onFinishChange(fnc) { + this.__onFinishChange = fnc; + return this; + }; + + /** + * Change the value of object[property] + * + * @param {Object} newValue The new value of object[property] + */ + + Controller.prototype.setValue = function setValue(newValue) { + this.object[this.property] = newValue; + if (this.__onChange) { + this.__onChange.call(this, newValue); } - /** - * Specify that a function fire every time someone "finishes" changing - * the value wih this Controller. Useful for values that change - * incrementally like numbers or strings. - * - * @param {Function} fnc This function will be called whenever - * someone "finishes" changing the value via this Controller. - * @returns {dat.controllers.Controller} this - */ - }, { - key: 'onFinishChange', - value: function onFinishChange(fnc) { - this.__onFinishChange = fnc; - return this; - } + this.updateDisplay(); + return this; + }; - /** - * Change the value of object[property] - * - * @param {Object} newValue The new value of object[property] - */ - }, { - key: 'setValue', - value: function setValue(newValue) { - this.object[this.property] = newValue; - if (this.__onChange) { - this.__onChange.call(this, newValue); - } - this.updateDisplay(); - return this; - } + /** + * Gets the value of object[property] + * + * @returns {Object} The current value of object[property] + */ - /** - * Gets the value of object[property] - * - * @returns {Object} The current value of object[property] - */ - }, { - key: 'getValue', - value: function getValue() { - return this.object[this.property]; - } + Controller.prototype.getValue = function getValue() { + return this.object[this.property]; + }; - /** - * Refreshes the visual display of a Controller in order to keep sync - * with the object's current value. - * @returns {dat.controllers.Controller} this - */ - }, { - key: 'updateDisplay', - value: function updateDisplay() { - return this; - } + /** + * Refreshes the visual display of a Controller in order to keep sync + * with the object's current value. + * @returns {Controller} this + */ - /** - * @returns {Boolean} true if the value has deviated from initialValue - */ - }, { - key: 'isModified', - value: function isModified() { - return this.initialValue !== this.getValue(); - } - }]); + Controller.prototype.updateDisplay = function updateDisplay() { + return this; + }; + + /** + * @returns {Boolean} true if the value has deviated from initialValue + */ + + Controller.prototype.isModified = function isModified() { + return this.initialValue !== this.getValue(); + }; return Controller; })(); @@ -1037,13 +1036,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1055,7 +1048,7 @@ return /******/ (function(modules) { // webpackBootstrap var _Controller3 = _interopRequireDefault(_Controller2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -1079,7 +1072,7 @@ return /******/ (function(modules) { // webpackBootstrap function BooleanController(object, property) { _classCallCheck(this, BooleanController); - _get(Object.getPrototypeOf(BooleanController.prototype), 'constructor', this).call(this, object, property); + _Controller.call(this, object, property); var _this = this; this.__prev = this.getValue(); @@ -1099,29 +1092,25 @@ return /******/ (function(modules) { // webpackBootstrap this.updateDisplay(); } - _createClass(BooleanController, [{ - key: 'setValue', - value: function setValue(v) { - var toReturn = _get(Object.getPrototypeOf(BooleanController.prototype), 'setValue', this).call(this, v); - if (this.__onFinishChange) { - this.__onFinishChange.call(this, this.getValue()); - } - this.__prev = this.getValue(); - return toReturn; + BooleanController.prototype.setValue = function setValue(v) { + var toReturn = _Controller.prototype.setValue.call(this, v); + if (this.__onFinishChange) { + this.__onFinishChange.call(this, this.getValue()); } - }, { - key: 'updateDisplay', - value: function updateDisplay() { - if (this.getValue() === true) { - this.__checkbox.setAttribute('checked', 'checked'); - this.__checkbox.checked = true; - } else { - this.__checkbox.checked = false; - } + this.__prev = this.getValue(); + return toReturn; + }; - return _get(Object.getPrototypeOf(BooleanController.prototype), 'updateDisplay', this).call(this); + BooleanController.prototype.updateDisplay = function updateDisplay() { + if (this.getValue() === true) { + this.__checkbox.setAttribute('checked', 'checked'); + this.__checkbox.checked = true; + } else { + this.__checkbox.checked = false; } - }]); + + return _Controller.prototype.updateDisplay.call(this); + }; return BooleanController; })(_Controller3['default']); @@ -1148,135 +1137,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; - - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - - var _Controller2 = __webpack_require__(7); - - var _Controller3 = _interopRequireDefault(_Controller2); - - var _domDom = __webpack_require__(10); - - var _domDom2 = _interopRequireDefault(_domDom); - - var _utilsCommon = __webpack_require__(5); - - var _utilsCommon2 = _interopRequireDefault(_utilsCommon); - - /** - * @class Provides a select input to alter the property of an object, using a - * list of accepted values. - * - * @extends dat.controllers.Controller - * - * @param {Object} object The object to be manipulated - * @param {string} property The name of the property to be manipulated - * @param {Object|string[]} options A map of labels to acceptable values, or - * a list of acceptable string values. - * - * @member dat.controllers - */ - - var OptionController = (function (_Controller) { - _inherits(OptionController, _Controller); - - function OptionController(object, property, options) { - _classCallCheck(this, OptionController); - - _get(Object.getPrototypeOf(OptionController.prototype), 'constructor', this).call(this, object, property); - - var _this = this; - - /** - * The drop down menu - * @ignore - */ - this.__select = document.createElement('select'); - - if (_utilsCommon2['default'].isArray(options)) { - var map = {}; - _utilsCommon2['default'].each(options, function (element) { - map[element] = element; - }); - options = map; - } - - _utilsCommon2['default'].each(options, function (value, key) { - - var opt = document.createElement('option'); - opt.innerHTML = key; - opt.setAttribute('value', value); - _this.__select.appendChild(opt); - }); - - // Acknowledge original value - this.updateDisplay(); - - _domDom2['default'].bind(this.__select, 'change', function () { - var desiredValue = this.options[this.selectedIndex].value; - _this.setValue(desiredValue); - }); - - this.domElement.appendChild(this.__select); - } - - _createClass(OptionController, [{ - key: 'setValue', - value: function setValue(v) { - var toReturn = _get(Object.getPrototypeOf(OptionController.prototype), 'setValue', this).call(this, v); - - if (this.__onFinishChange) { - this.__onFinishChange.call(this, this.getValue()); - } - return toReturn; - } - }, { - key: 'updateDisplay', - value: function updateDisplay() { - this.__select.value = this.getValue(); - return _get(Object.getPrototypeOf(OptionController.prototype), 'updateDisplay', this).call(this); - } - }]); - - return OptionController; - })(_Controller3['default']); - - exports['default'] = OptionController; - module.exports = exports['default']; - -/***/ }, -/* 10 */ -/***/ function(module, exports, __webpack_require__) { - - /** - * dat-gui JavaScript Controller Library - * http://code.google.com/p/dat-gui - * - * Copyright 2011 Data Arts Team, Google Creative Lab - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1529,6 +1390,122 @@ return /******/ (function(modules) { // webpackBootstrap exports['default'] = dom; module.exports = exports['default']; +/***/ }, +/* 10 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * dat-gui JavaScript Controller Library + * http://code.google.com/p/dat-gui + * + * Copyright 2011 Data Arts Team, Google Creative Lab + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ + + 'use strict'; + + exports.__esModule = true; + + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + + var _Controller2 = __webpack_require__(7); + + var _Controller3 = _interopRequireDefault(_Controller2); + + var _domDom = __webpack_require__(9); + + var _domDom2 = _interopRequireDefault(_domDom); + + var _utilsCommon = __webpack_require__(5); + + var _utilsCommon2 = _interopRequireDefault(_utilsCommon); + + /** + * @class Provides a select input to alter the property of an object, using a + * list of accepted values. + * + * @extends dat.controllers.Controller + * + * @param {Object} object The object to be manipulated + * @param {string} property The name of the property to be manipulated + * @param {Object|string[]} options A map of labels to acceptable values, or + * a list of acceptable string values. + * + * @member dat.controllers + */ + + var OptionController = (function (_Controller) { + _inherits(OptionController, _Controller); + + function OptionController(object, property, options) { + _classCallCheck(this, OptionController); + + _Controller.call(this, object, property); + + var _this = this; + + /** + * The drop down menu + * @ignore + */ + this.__select = document.createElement('select'); + + if (_utilsCommon2['default'].isArray(options)) { + var map = {}; + _utilsCommon2['default'].each(options, function (element) { + map[element] = element; + }); + options = map; + } + + _utilsCommon2['default'].each(options, function (value, key) { + + var opt = document.createElement('option'); + opt.innerHTML = key; + opt.setAttribute('value', value); + _this.__select.appendChild(opt); + }); + + // Acknowledge original value + this.updateDisplay(); + + _domDom2['default'].bind(this.__select, 'change', function () { + var desiredValue = this.options[this.selectedIndex].value; + _this.setValue(desiredValue); + }); + + this.domElement.appendChild(this.__select); + } + + OptionController.prototype.setValue = function setValue(v) { + var toReturn = _Controller.prototype.setValue.call(this, v); + + if (this.__onFinishChange) { + this.__onFinishChange.call(this, this.getValue()); + } + return toReturn; + }; + + OptionController.prototype.updateDisplay = function updateDisplay() { + this.__select.value = this.getValue(); + return _Controller.prototype.updateDisplay.call(this); + }; + + return OptionController; + })(_Controller3['default']); + + exports['default'] = OptionController; + module.exports = exports['default']; + /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { @@ -1548,13 +1525,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1566,7 +1537,7 @@ return /******/ (function(modules) { // webpackBootstrap var _Controller3 = _interopRequireDefault(_Controller2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -1591,7 +1562,7 @@ return /******/ (function(modules) { // webpackBootstrap function StringController(object, property) { _classCallCheck(this, StringController); - _get(Object.getPrototypeOf(StringController.prototype), 'constructor', this).call(this, object, property); + _Controller.call(this, object, property); var _this = this; @@ -1622,17 +1593,14 @@ return /******/ (function(modules) { // webpackBootstrap this.domElement.appendChild(this.__input); } - _createClass(StringController, [{ - key: 'updateDisplay', - value: function updateDisplay() { - // Stops the caret from moving on account of: - // keyup -> setValue -> updateDisplay - if (!_domDom2['default'].isActive(this.__input)) { - this.__input.value = this.getValue(); - } - return _get(Object.getPrototypeOf(StringController.prototype), 'updateDisplay', this).call(this); + StringController.prototype.updateDisplay = function updateDisplay() { + // Stops the caret from moving on account of: + // keyup -> setValue -> updateDisplay + if (!_domDom2['default'].isActive(this.__input)) { + this.__input.value = this.getValue(); } - }]); + return _Controller.prototype.updateDisplay.call(this); + }; return StringController; })(_Controller3['default']); @@ -1659,13 +1627,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1711,7 +1673,7 @@ return /******/ (function(modules) { // webpackBootstrap function NumberController(object, property, params) { _classCallCheck(this, NumberController); - _get(Object.getPrototypeOf(NumberController.prototype), 'constructor', this).call(this, object, property); + _Controller.call(this, object, property); params = params || {}; @@ -1735,69 +1697,63 @@ return /******/ (function(modules) { // webpackBootstrap this.__precision = numDecimals(this.__impliedStep); } - _createClass(NumberController, [{ - key: 'setValue', - value: function setValue(v) { - if (this.__min !== undefined && v < this.__min) { - v = this.__min; - } else if (this.__max !== undefined && v > this.__max) { - v = this.__max; - } - - if (this.__step !== undefined && v % this.__step != 0) { - v = Math.round(v / this.__step) * this.__step; - } - - return _get(Object.getPrototypeOf(NumberController.prototype), 'setValue', this).call(this, v); + NumberController.prototype.setValue = function setValue(v) { + if (this.__min !== undefined && v < this.__min) { + v = this.__min; + } else if (this.__max !== undefined && v > this.__max) { + v = this.__max; } - /** - * Specify a minimum value for object[property]. - * - * @param {Number} minValue The minimum value for - * object[property] - * @returns {dat.controllers.NumberController} this - */ - }, { - key: 'min', - value: function min(v) { - this.__min = v; - return this; + if (this.__step !== undefined && v % this.__step != 0) { + v = Math.round(v / this.__step) * this.__step; } - /** - * Specify a maximum value for object[property]. - * - * @param {Number} maxValue The maximum value for - * object[property] - * @returns {dat.controllers.NumberController} this - */ - }, { - key: 'max', - value: function max(v) { - this.__max = v; - return this; - } + return _Controller.prototype.setValue.call(this, v); + }; - /** - * Specify a step value that dat.controllers.NumberController - * increments by. - * - * @param {Number} stepValue The step value for - * dat.controllers.NumberController - * @default if minimum and maximum specified increment is 1% of the - * difference otherwise stepValue is 1 - * @returns {dat.controllers.NumberController} this - */ - }, { - key: 'step', - value: function step(v) { - this.__step = v; - this.__impliedStep = v; - this.__precision = numDecimals(v); - return this; - } - }]); + /** + * Specify a minimum value for object[property]. + * + * @param {Number} minValue The minimum value for + * object[property] + * @returns {dat.controllers.NumberController} this + */ + + NumberController.prototype.min = function min(v) { + this.__min = v; + return this; + }; + + /** + * Specify a maximum value for object[property]. + * + * @param {Number} maxValue The maximum value for + * object[property] + * @returns {dat.controllers.NumberController} this + */ + + NumberController.prototype.max = function max(v) { + this.__max = v; + return this; + }; + + /** + * Specify a step value that dat.controllers.NumberController + * increments by. + * + * @param {Number} stepValue The step value for + * dat.controllers.NumberController + * @default if minimum and maximum specified increment is 1% of the + * difference otherwise stepValue is 1 + * @returns {dat.controllers.NumberController} this + */ + + NumberController.prototype.step = function step(v) { + this.__step = v; + this.__impliedStep = v; + this.__precision = numDecimals(v); + return this; + }; return NumberController; })(_Controller3['default']); @@ -1824,13 +1780,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1842,7 +1792,7 @@ return /******/ (function(modules) { // webpackBootstrap var _NumberController3 = _interopRequireDefault(_NumberController2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -1878,7 +1828,7 @@ return /******/ (function(modules) { // webpackBootstrap function NumberControllerBox(object, property, params) { _classCallCheck(this, NumberControllerBox); - _get(Object.getPrototypeOf(NumberControllerBox.prototype), 'constructor', this).call(this, object, property, params); + _NumberController.call(this, object, property, params); this.__truncationSuspended = false; @@ -1944,14 +1894,11 @@ return /******/ (function(modules) { // webpackBootstrap this.domElement.appendChild(this.__input); } - _createClass(NumberControllerBox, [{ - key: 'updateDisplay', - value: function updateDisplay() { + NumberControllerBox.prototype.updateDisplay = function updateDisplay() { - this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision); - return _get(Object.getPrototypeOf(NumberControllerBox.prototype), 'updateDisplay', this).call(this); - } - }]); + this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision); + return _NumberController.prototype.updateDisplay.call(this); + }; return NumberControllerBox; })(_NumberController3['default']); @@ -1978,13 +1925,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -1996,7 +1937,7 @@ return /******/ (function(modules) { // webpackBootstrap var _NumberController3 = _interopRequireDefault(_NumberController2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -2041,7 +1982,7 @@ return /******/ (function(modules) { // webpackBootstrap function NumberControllerSlider(object, property, min, max, step) { _classCallCheck(this, NumberControllerSlider); - _get(Object.getPrototypeOf(NumberControllerSlider.prototype), 'constructor', this).call(this, object, property, { min: min, max: max, step: step }); + _NumberController.call(this, object, property, { min: min, max: max, step: step }); var _this = this; @@ -2091,14 +2032,11 @@ return /******/ (function(modules) { // webpackBootstrap * Injects default stylesheet for slider elements. */ - _createClass(NumberControllerSlider, [{ - key: 'updateDisplay', - value: function updateDisplay() { - var pct = (this.getValue() - this.__min) / (this.__max - this.__min); - this.__foreground.style.width = pct * 100 + '%'; - return _get(Object.getPrototypeOf(NumberControllerSlider.prototype), 'updateDisplay', this).call(this); - } - }]); + NumberControllerSlider.prototype.updateDisplay = function updateDisplay() { + var pct = (this.getValue() - this.__min) / (this.__max - this.__min); + this.__foreground.style.width = pct * 100 + '%'; + return _NumberController.prototype.updateDisplay.call(this); + }; return NumberControllerSlider; })(_NumberController3['default']); @@ -2130,16 +2068,17 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; module.exports = { - load: function load(url, doc) { - doc = doc || document; + load: function load(url, indoc) { + var doc = indoc || document; var link = doc.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; doc.getElementsByTagName('head')[0].appendChild(link); }, - inject: function inject(css, doc) { - doc = doc || document; + + inject: function inject(css, indoc) { + var doc = indoc || document; var injected = document.createElement('style'); injected.type = 'text/css'; injected.innerHTML = css; @@ -2487,13 +2426,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -2505,7 +2438,7 @@ return /******/ (function(modules) { // webpackBootstrap var _Controller3 = _interopRequireDefault(_Controller2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -2530,12 +2463,13 @@ return /******/ (function(modules) { // webpackBootstrap function FunctionController(object, property, text) { _classCallCheck(this, FunctionController); - _get(Object.getPrototypeOf(FunctionController.prototype), 'constructor', this).call(this, object, property); + _Controller.call(this, object, property); var _this = this; this.__button = document.createElement('div'); this.__button.innerHTML = text === undefined ? 'Fire' : text; + _domDom2['default'].bind(this.__button, 'click', function (e) { e.preventDefault(); _this.fire(); @@ -2547,18 +2481,15 @@ return /******/ (function(modules) { // webpackBootstrap this.domElement.appendChild(this.__button); } - _createClass(FunctionController, [{ - key: 'fire', - value: function fire() { - if (this.__onChange) { - this.__onChange.call(this); - } - this.getValue().call(this.object); - if (this.__onFinishChange) { - this.__onFinishChange.call(this, this.getValue()); - } + FunctionController.prototype.fire = function fire() { + if (this.__onChange) { + this.__onChange.call(this); } - }]); + this.getValue().call(this.object); + if (this.__onFinishChange) { + this.__onFinishChange.call(this, this.getValue()); + } + }; return FunctionController; })(_Controller3['default']); @@ -2585,13 +2516,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -2603,7 +2528,7 @@ return /******/ (function(modules) { // webpackBootstrap var _Controller3 = _interopRequireDefault(_Controller2); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -2625,7 +2550,7 @@ return /******/ (function(modules) { // webpackBootstrap function ColorController(object, property) { _classCallCheck(this, ColorController); - _get(Object.getPrototypeOf(ColorController.prototype), 'constructor', this).call(this, object, property); + _Controller.call(this, object, property); this.__color = new _colorColor2['default'](this.getValue()); this.__temp = new _colorColor2['default'](0); @@ -2762,7 +2687,7 @@ return /******/ (function(modules) { // webpackBootstrap } function onBlur() { - var i = (0, _colorInterpret2['default'])(this.value); + var i = _colorInterpret2['default'](this.value); if (i !== false) { _this.__color.__state = i; _this.setValue(_this.__color.toOriginal()); @@ -2826,59 +2751,56 @@ return /******/ (function(modules) { // webpackBootstrap } } - _createClass(ColorController, [{ - key: 'updateDisplay', - value: function updateDisplay() { - var i = (0, _colorInterpret2['default'])(this.getValue()); + ColorController.prototype.updateDisplay = function updateDisplay() { + var i = _colorInterpret2['default'](this.getValue()); - if (i !== false) { + if (i !== false) { - var mismatch = false; + var mismatch = false; - // Check for mismatch on the interpreted value. + // Check for mismatch on the interpreted value. - _utilsCommon2['default'].each(_colorColor2['default'].COMPONENTS, function (component) { - if (!_utilsCommon2['default'].isUndefined(i[component]) && !_utilsCommon2['default'].isUndefined(this.__color.__state[component]) && i[component] !== this.__color.__state[component]) { - mismatch = true; - return {}; // break - } - }, this); - - // If nothing diverges, we keep our previous values - // for statefulness, otherwise we recalculate fresh - if (mismatch) { - _utilsCommon2['default'].extend(this.__color.__state, i); + _utilsCommon2['default'].each(_colorColor2['default'].COMPONENTS, function (component) { + if (!_utilsCommon2['default'].isUndefined(i[component]) && !_utilsCommon2['default'].isUndefined(this.__color.__state[component]) && i[component] !== this.__color.__state[component]) { + mismatch = true; + return {}; // break } + }, this); + + // If nothing diverges, we keep our previous values + // for statefulness, otherwise we recalculate fresh + if (mismatch) { + _utilsCommon2['default'].extend(this.__color.__state, i); } - - _utilsCommon2['default'].extend(this.__temp.__state, this.__color.__state); - - this.__temp.a = 1; - - var flip = this.__color.v < .5 || this.__color.s > .5 ? 255 : 0; - var _flip = 255 - flip; - - _utilsCommon2['default'].extend(this.__field_knob.style, { - marginLeft: 100 * this.__color.s - 7 + 'px', - marginTop: 100 * (1 - this.__color.v) - 7 + 'px', - backgroundColor: this.__temp.toString(), - border: this.__field_knob_border + 'rgb(' + flip + ',' + flip + ',' + flip + ')' - }); - - this.__hue_knob.style.marginTop = (1 - this.__color.h / 360) * 100 + 'px'; - - this.__temp.s = 1; - this.__temp.v = 1; - - linearGradient(this.__saturation_field, 'left', '#fff', this.__temp.toString()); - - _utilsCommon2['default'].extend(this.__input.style, { - backgroundColor: this.__input.value = this.__color.toString(), - color: 'rgb(' + flip + ',' + flip + ',' + flip + ')', - textShadow: this.__input_textShadow + 'rgba(' + _flip + ',' + _flip + ',' + _flip + ',.7)' - }); } - }]); + + _utilsCommon2['default'].extend(this.__temp.__state, this.__color.__state); + + this.__temp.a = 1; + + var flip = this.__color.v < .5 || this.__color.s > .5 ? 255 : 0; + var _flip = 255 - flip; + + _utilsCommon2['default'].extend(this.__field_knob.style, { + marginLeft: 100 * this.__color.s - 7 + 'px', + marginTop: 100 * (1 - this.__color.v) - 7 + 'px', + backgroundColor: this.__temp.toString(), + border: this.__field_knob_border + 'rgb(' + flip + ',' + flip + ',' + flip + ')' + }); + + this.__hue_knob.style.marginTop = (1 - this.__color.h / 360) * 100 + 'px'; + + this.__temp.s = 1; + this.__temp.v = 1; + + linearGradient(this.__saturation_field, 'left', '#fff', this.__temp.toString()); + + _utilsCommon2['default'].extend(this.__input.style, { + backgroundColor: this.__input.value = this.__color.toString(), + color: 'rgb(' + flip + ',' + flip + ',' + flip + ')', + textShadow: this.__input_textShadow + 'rgba(' + _flip + ',' + _flip + ',' + _flip + ',.7)' + }); + }; return ColorController; })(_Controller3['default']); @@ -2961,7 +2883,7 @@ return /******/ (function(modules) { // webpackBootstrap var _controllersNumberControllerSlider2 = _interopRequireDefault(_controllersNumberControllerSlider); - var _controllersOptionController = __webpack_require__(9); + var _controllersOptionController = __webpack_require__(10); var _controllersOptionController2 = _interopRequireDefault(_controllersOptionController); @@ -2977,7 +2899,7 @@ return /******/ (function(modules) { // webpackBootstrap var _domCenteredDiv2 = _interopRequireDefault(_domCenteredDiv); - var _domDom = __webpack_require__(10); + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -3035,7 +2957,6 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Boolean} [params.closed] If true, starts closed */ var GUI = function GUI(params) { - var _this = this; /** @@ -3098,11 +3019,11 @@ return /******/ (function(modules) { // webpackBootstrap }); if (!_utilsCommon2['default'].isUndefined(params.load)) { - // Explicit preset - if (params.preset) params.load.preset = params.preset; + if (params.preset) { + params.load.preset = params.preset; + } } else { - params.load = { preset: DEFAULT_DEFAULT_PRESET_NAME }; } @@ -3125,10 +3046,8 @@ return /******/ (function(modules) { // webpackBootstrap var saveToLocalStorage; Object.defineProperties(this, - /** @lends dat.gui.GUI.prototype */ { - /** * The parent GUI * @type dat.gui.GUI @@ -3160,7 +3079,6 @@ return /******/ (function(modules) { // webpackBootstrap * @type String */ preset: { - get: function get() { if (_this.parent) { return _this.getRoot().preset; @@ -3178,7 +3096,6 @@ return /******/ (function(modules) { // webpackBootstrap setPresetSelectIndex(this); _this.revert(); } - }, /** @@ -3270,9 +3187,7 @@ return /******/ (function(modules) { // webpackBootstrap localStorage.setItem(getLocalStorageHash(_this, 'isLocal'), bool); } } - } - }); // Are we a root level GUI? @@ -3285,9 +3200,7 @@ return /******/ (function(modules) { // webpackBootstrap // Are we supposed to be loading locally? if (SUPPORTS_LOCAL_STORAGE) { - if (use_local_storage) { - _this.useLocalStorage = true; var saved_gui = localStorage.getItem(getLocalStorageHash(this, 'gui')); @@ -3304,13 +3217,10 @@ return /******/ (function(modules) { // webpackBootstrap this.domElement.appendChild(this.__closeButton); _domDom2['default'].bind(this.__closeButton, 'click', function () { - _this.closed = !_this.closed; }); - // Oh, you're a nested GUI! } else { - if (params.closed === undefined) { params.closed = true; } @@ -3337,9 +3247,7 @@ return /******/ (function(modules) { // webpackBootstrap } if (params.autoPlace) { - if (_utilsCommon2['default'].isUndefined(params.parent)) { - if (auto_place_virgin) { auto_place_container = document.createElement('div'); _domDom2['default'].addClass(auto_place_container, CSS_NAMESPACE); @@ -3356,7 +3264,9 @@ return /******/ (function(modules) { // webpackBootstrap } // Make it not elastic. - if (!this.parent) setWidth(_this, params.width); + if (!this.parent) { + setWidth(_this, params.width); + } } _domDom2['default'].bind(window, 'resize', function () { @@ -3402,7 +3312,6 @@ return /******/ (function(modules) { // webpackBootstrap }; GUI.toggleHide = function () { - hide = !hide; _utilsCommon2['default'].each(hideable_guis, function (gui) { gui.domElement.style.zIndex = hide ? -999 : 999; @@ -3424,7 +3333,6 @@ return /******/ (function(modules) { // webpackBootstrap GUI.TEXT_OPEN = 'Open Controls'; _domDom2['default'].bind(window, 'keydown', function (e) { - if (document.activeElement.type !== 'text' && (e.which === HIDE_KEY_CODE || e.keyCode == HIDE_KEY_CODE)) { GUI.toggleHide(); } @@ -3452,7 +3360,6 @@ return /******/ (function(modules) { // webpackBootstrap return add; })(function (object, property) { - return add(this, object, property, { factoryArgs: Array.prototype.slice.call(arguments, 2) }); @@ -3465,7 +3372,6 @@ return /******/ (function(modules) { // webpackBootstrap * @instance */ addColor: function addColor(object, property) { - return add(this, object, property, { color: true }); @@ -3476,7 +3382,6 @@ return /******/ (function(modules) { // webpackBootstrap * @instance */ remove: function remove(controller) { - // TODO listening? this.__ul.removeChild(controller.__li); this.__controllers.splice(this.__controllers.indexOf(controller), 1); @@ -3487,7 +3392,6 @@ return /******/ (function(modules) { // webpackBootstrap }, destroy: function destroy() { - if (this.autoPlace) { auto_place_container.removeChild(this.domElement); } @@ -3501,7 +3405,6 @@ return /******/ (function(modules) { // webpackBootstrap * @instance */ addFolder: function addFolder(name) { - // We have to prevent collisions on names in order to have a key // by which to remember saved values if (this.__folders[name] !== undefined) { @@ -3546,11 +3449,8 @@ return /******/ (function(modules) { // webpackBootstrap }, onResize: function onResize() { - var root = this.getRoot(); - if (root.scrollable) { - var top = _domDom2['default'].getOffset(root.__ul).top; var h = 0; @@ -3588,7 +3488,6 @@ return /******/ (function(modules) { // webpackBootstrap * @instance */ remember: function remember() { - if (_utilsCommon2['default'].isUndefined(SAVE_DIALOGUE)) { SAVE_DIALOGUE = new _domCenteredDiv2['default'](); SAVE_DIALOGUE.domElement.innerHTML = _htmlSaveDialogueHtml2['default']; @@ -3633,14 +3532,11 @@ return /******/ (function(modules) { // webpackBootstrap * @instance */ getSaveObject: function getSaveObject() { - var toReturn = this.load; - toReturn.closed = this.closed; // Am I remembering any values? if (this.__rememberedObjects.length > 0) { - toReturn.preset = this.preset; if (!toReturn.remembered) { @@ -3659,7 +3555,6 @@ return /******/ (function(modules) { // webpackBootstrap }, save: function save() { - if (!this.load.remembered) { this.load.remembered = {}; } @@ -3670,9 +3565,7 @@ return /******/ (function(modules) { // webpackBootstrap }, saveAs: function saveAs(presetName) { - if (!this.load.remembered) { - // Retain default values upon first save this.load.remembered = {}; this.load.remembered[DEFAULT_DEFAULT_PRESET_NAME] = getCurrentPreset(this, true); @@ -3685,7 +3578,6 @@ return /******/ (function(modules) { // webpackBootstrap }, revert: function revert(gui) { - _utilsCommon2['default'].each(this.__controllers, function (controller) { // Make revert work on Default. if (!this.getRoot().load.remembered) { @@ -3705,73 +3597,25 @@ return /******/ (function(modules) { // webpackBootstrap }, listen: function listen(controller) { - var init = this.__listening.length == 0; this.__listening.push(controller); if (init) updateDisplays(this.__listening); } - }); - function add(gui, object, property, params) { - - if (object[property] === undefined) { - throw new Error("Object " + object + " has no property \"" + property + "\""); - } - - var controller; - - if (params.color) { - - controller = new _controllersColorController2['default'](object, property); - } else { - - var factoryArgs = [object, property].concat(params.factoryArgs); - controller = _controllersControllerFactory2['default'].apply(gui, factoryArgs); - } - - if (params.before instanceof _controllersController2['default']) { - params.before = params.before.__li; - } - - recallSavedValue(gui, controller); - - _domDom2['default'].addClass(controller.domElement, 'c'); - - var name = document.createElement('span'); - _domDom2['default'].addClass(name, 'property-name'); - name.innerHTML = controller.property; - - var container = document.createElement('div'); - container.appendChild(name); - container.appendChild(controller.domElement); - - var li = addRow(gui, container, params.before); - - _domDom2['default'].addClass(li, GUI.CLASS_CONTROLLER_ROW); - if (controller instanceof _controllersColorController2['default']) { - _domDom2['default'].addClass(li, "color"); - } else { - _domDom2['default'].addClass(li, typeof controller.getValue()); - } - - augmentController(gui, li, controller); - - gui.__controllers.push(controller); - - return controller; - } - /** * Add a row to the end of the GUI or before another row. * * @param gui - * @param [dom] If specified, inserts the dom content in the new row + * @param [newDom] If specified, inserts the dom content in the new row * @param [liBefore] If specified, places the new row before another row */ - function addRow(gui, dom, liBefore) { + function addRow(gui, newDom, liBefore) { var li = document.createElement('li'); - if (dom) li.appendChild(dom); + if (newDom) { + li.appendChild(newDom); + } + if (liBefore) { gui.__ul.insertBefore(li, params.before); } else { @@ -3781,15 +3625,23 @@ return /******/ (function(modules) { // webpackBootstrap return li; } - function augmentController(gui, li, controller) { + function markPresetModified(gui, modified) { + var opt = gui.__preset_select[gui.__preset_select.selectedIndex]; + // console.log('mark', modified, opt); + if (modified) { + opt.innerHTML = opt.value + '*'; + } else { + opt.innerHTML = opt.value; + } + } + + function augmentController(gui, li, controller) { controller.__li = li; controller.__gui = gui; _utilsCommon2['default'].extend(controller, { - options: function options(_options) { - if (arguments.length > 1) { controller.remove(); @@ -3823,33 +3675,30 @@ return /******/ (function(modules) { // webpackBootstrap controller.__gui.remove(controller); return controller; } - }); // All sliders should be accompanied by a box. if (controller instanceof _controllersNumberControllerSlider2['default']) { + (function () { + var box = new _controllersNumberControllerBox2['default'](controller.object, controller.property, { min: controller.__min, max: controller.__max, step: controller.__step }); - var box = new _controllersNumberControllerBox2['default'](controller.object, controller.property, { min: controller.__min, max: controller.__max, step: controller.__step }); + _utilsCommon2['default'].each(['updateDisplay', 'onChange', 'onFinishChange'], function (method) { + var pc = controller[method]; + var pb = box[method]; + controller[method] = box[method] = function () { + var args = Array.prototype.slice.call(arguments); + pc.apply(controller, args); + return pb.apply(box, args); + }; + }); - _utilsCommon2['default'].each(['updateDisplay', 'onChange', 'onFinishChange'], function (method) { - var pc = controller[method]; - var pb = box[method]; - controller[method] = box[method] = function () { - var args = Array.prototype.slice.call(arguments); - pc.apply(controller, args); - return pb.apply(box, args); - }; - }); - - _domDom2['default'].addClass(li, 'has-slider'); - controller.domElement.insertBefore(box.domElement, controller.domElement.firstElementChild); + _domDom2['default'].addClass(li, 'has-slider'); + controller.domElement.insertBefore(box.domElement, controller.domElement.firstElementChild); + })(); } else if (controller instanceof _controllersNumberControllerBox2['default']) { - var r = function r(returned) { - // Have we defined both boundaries? if (_utilsCommon2['default'].isNumber(controller.__min) && _utilsCommon2['default'].isNumber(controller.__max)) { - // Well, then lets just replace this with a slider. controller.remove(); return add(gui, controller.object, controller.property, { @@ -3864,7 +3713,6 @@ return /******/ (function(modules) { // webpackBootstrap controller.min = _utilsCommon2['default'].compose(r, controller.min); controller.max = _utilsCommon2['default'].compose(r, controller.max); } else if (controller instanceof _controllersBooleanController2['default']) { - _domDom2['default'].bind(li, 'click', function () { _domDom2['default'].fakeEvent(controller.__checkbox, 'click'); }); @@ -3873,7 +3721,6 @@ return /******/ (function(modules) { // webpackBootstrap e.stopPropagation(); // Prevents double-toggle }); } else if (controller instanceof _controllersFunctionController2['default']) { - _domDom2['default'].bind(li, 'click', function () { _domDom2['default'].fakeEvent(controller.__button, 'click'); }); @@ -3886,79 +3733,68 @@ return /******/ (function(modules) { // webpackBootstrap _domDom2['default'].removeClass(controller.__button, 'hover'); }); } else if (controller instanceof _controllersColorController2['default']) { - _domDom2['default'].addClass(li, 'color'); - controller.updateDisplay = _utilsCommon2['default'].compose(function (r) { + controller.updateDisplay = _utilsCommon2['default'].compose(function (val) { li.style.borderLeftColor = controller.__color.toString(); - return r; + return val; }, controller.updateDisplay); controller.updateDisplay(); } - controller.setValue = _utilsCommon2['default'].compose(function (r) { + controller.setValue = _utilsCommon2['default'].compose(function (val) { if (gui.getRoot().__preset_select && controller.isModified()) { markPresetModified(gui.getRoot(), true); } - return r; + + return val; }, controller.setValue); } function recallSavedValue(gui, controller) { - // Find the topmost GUI, that's where remembered objects live. var root = gui.getRoot(); // Does the object we're controlling match anything we've been told to // remember? - var matched_index = root.__rememberedObjects.indexOf(controller.object); + var matchedIndex = root.__rememberedObjects.indexOf(controller.object); // Why yes, it does! - if (matched_index != -1) { - + if (matchedIndex !== -1) { // Let me fetch a map of controllers for thcommon.isObject. - var controller_map = root.__rememberedObjectIndecesToControllers[matched_index]; + var controllerMap = root.__rememberedObjectIndecesToControllers[matchedIndex]; // Ohp, I believe this is the first controller we've created for this // object. Lets make the map fresh. - if (controller_map === undefined) { - controller_map = {}; - root.__rememberedObjectIndecesToControllers[matched_index] = controller_map; + if (controllerMap === undefined) { + controllerMap = {}; + root.__rememberedObjectIndecesToControllers[matchedIndex] = controllerMap; } // Keep track of this controller - controller_map[controller.property] = controller; + controllerMap[controller.property] = controller; // Okay, now have we saved any values for this controller? if (root.load && root.load.remembered) { - - var preset_map = root.load.remembered; + var presetMap = root.load.remembered; // Which preset are we trying to load? - var preset; - - if (preset_map[gui.preset]) { - - preset = preset_map[gui.preset]; - } else if (preset_map[DEFAULT_DEFAULT_PRESET_NAME]) { + var preset = undefined; + if (presetMap[gui.preset]) { + preset = presetMap[gui.preset]; + } else if (presetMap[DEFAULT_DEFAULT_PRESET_NAME]) { // Uhh, you can have the default instead? - preset = preset_map[DEFAULT_DEFAULT_PRESET_NAME]; + preset = presetMap[DEFAULT_DEFAULT_PRESET_NAME]; } else { - // Nada. - return; } - // Did the loaded object remember thcommon.isObject? - if (preset[matched_index] && - - // Did we remember this particular property? - preset[matched_index][controller.property] !== undefined) { - + // Did the loaded object remember thcommon.isObject? && Did we remember this particular property? + if (preset[matchedIndex] && preset[matchedIndex][controller.property] !== undefined) { // We did remember something for this guy ... - var value = preset[matched_index][controller.property]; + var value = preset[matchedIndex][controller.property]; // And that's what it is. controller.initialValue = value; @@ -3968,13 +3804,72 @@ return /******/ (function(modules) { // webpackBootstrap } } + function add(gui, object, property, params) { + if (object[property] === undefined) { + throw new Error('Object "' + object + '" has no property "' + property + '"'); + } + + var controller = undefined; + + if (params.color) { + controller = new _controllersColorController2['default'](object, property); + } else { + var factoryArgs = [object, property].concat(params.factoryArgs); + controller = _controllersControllerFactory2['default'].apply(gui, factoryArgs); + } + + if (params.before instanceof _controllersController2['default']) { + params.before = params.before.__li; + } + + recallSavedValue(gui, controller); + + _domDom2['default'].addClass(controller.domElement, 'c'); + + var name = document.createElement('span'); + _domDom2['default'].addClass(name, 'property-name'); + name.innerHTML = controller.property; + + var container = document.createElement('div'); + container.appendChild(name); + container.appendChild(controller.domElement); + + var li = addRow(gui, container, params.before); + + _domDom2['default'].addClass(li, GUI.CLASS_CONTROLLER_ROW); + if (controller instanceof _controllersColorController2['default']) { + _domDom2['default'].addClass(li, 'color'); + } else { + _domDom2['default'].addClass(li, typeof controller.getValue()); + } + + augmentController(gui, li, controller); + + gui.__controllers.push(controller); + + return controller; + } + function getLocalStorageHash(gui, key) { // TODO how does this deal with multiple GUI's? return document.location.href + '.' + key; } - function addSaveMenu(gui) { + function addPresetOption(gui, name, setSelected) { + var opt = document.createElement('option'); + opt.innerHTML = name; + opt.value = name; + gui.__preset_select.appendChild(opt); + if (setSelected) { + gui.__preset_select.selectedIndex = gui.__preset_select.length - 1; + } + } + function showHideExplain(explain) { + explain.style.display = gui.useLocalStorage ? 'block' : 'none'; + } + + function addSaveMenu(gui) { var div = gui.__save_row = document.createElement('li'); _domDom2['default'].addClass(gui.domElement, 'has-save'); @@ -4006,16 +3901,14 @@ return /******/ (function(modules) { // webpackBootstrap var select = gui.__preset_select = document.createElement('select'); if (gui.load && gui.load.remembered) { - _utilsCommon2['default'].each(gui.load.remembered, function (value, key) { - addPresetOption(gui, key, key == gui.preset); + addPresetOption(gui, key, key === gui.preset); }); } else { addPresetOption(gui, DEFAULT_DEFAULT_PRESET_NAME, false); } _domDom2['default'].bind(select, 'change', function () { - for (var index = 0; index < gui.__preset_select.length; index++) { gui.__preset_select[index].innerHTML = gui.__preset_select[index].value; } @@ -4030,32 +3923,23 @@ return /******/ (function(modules) { // webpackBootstrap div.appendChild(button3); if (SUPPORTS_LOCAL_STORAGE) { - var saveLocally; - var explain; - var localStorageCheckBox; - (function () { - var showHideExplain = function showHideExplain() { - explain.style.display = gui.useLocalStorage ? 'block' : 'none'; - }; - - saveLocally = document.getElementById('dg-save-locally'); - explain = document.getElementById('dg-local-explain'); + var explain = document.getElementById('dg-local-explain'); + var localStorageCheckBox = document.getElementById('dg-local-storage'); + var saveLocally = document.getElementById('dg-save-locally'); saveLocally.style.display = 'block'; - localStorageCheckBox = document.getElementById('dg-local-storage'); - if (localStorage.getItem(getLocalStorageHash(gui, 'isLocal')) === 'true') { localStorageCheckBox.setAttribute('checked', 'checked'); } - showHideExplain(); + showHideExplain(explain); // TODO: Use a boolean controller, fool! _domDom2['default'].bind(localStorageCheckBox, 'change', function () { gui.useLocalStorage = !gui.useLocalStorage; - showHideExplain(); + showHideExplain(explain); }); })(); } @@ -4063,7 +3947,7 @@ return /******/ (function(modules) { // webpackBootstrap var newConstructorTextArea = document.getElementById('dg-new-constructor'); _domDom2['default'].bind(newConstructorTextArea, 'keydown', function (e) { - if (e.metaKey && (e.which === 67 || e.keyCode == 67)) { + if (e.metaKey && (e.which === 67 || e.keyCode === 67)) { SAVE_DIALOGUE.hide(); } }); @@ -4081,17 +3965,20 @@ return /******/ (function(modules) { // webpackBootstrap _domDom2['default'].bind(button2, 'click', function () { var presetName = prompt('Enter a new preset name.'); - if (presetName) gui.saveAs(presetName); + if (presetName) { + gui.saveAs(presetName); + } }); _domDom2['default'].bind(button3, 'click', function () { gui.revert(); }); - // div.appendChild(button2); + // div.appendChild(button2); } function addResizeHandle(gui) { + var pmouseX = undefined; gui.__resize_handle = document.createElement('div'); @@ -4102,19 +3989,27 @@ return /******/ (function(modules) { // webpackBootstrap height: '200px', cursor: 'ew-resize', position: 'absolute' - // border: '1px solid blue' + // border: '1px solid blue' }); - var pmouseX; + function drag(e) { + e.preventDefault(); - _domDom2['default'].bind(gui.__resize_handle, 'mousedown', dragStart); - _domDom2['default'].bind(gui.__closeButton, 'mousedown', dragStart); + gui.width += pmouseX - e.clientX; + gui.onResize(); + pmouseX = e.clientX; - gui.domElement.insertBefore(gui.__resize_handle, gui.domElement.firstElementChild); + return false; + } + + function dragStop() { + _domDom2['default'].removeClass(gui.__closeButton, GUI.CLASS_DRAG); + _domDom2['default'].unbind(window, 'mousemove', drag); + _domDom2['default'].unbind(window, 'mouseup', dragStop); + } function dragStart(e) { - e.preventDefault(); pmouseX = e.clientX; @@ -4126,23 +4021,10 @@ return /******/ (function(modules) { // webpackBootstrap return false; } - function drag(e) { + _domDom2['default'].bind(gui.__resize_handle, 'mousedown', dragStart); + _domDom2['default'].bind(gui.__closeButton, 'mousedown', dragStart); - e.preventDefault(); - - gui.width += pmouseX - e.clientX; - gui.onResize(); - pmouseX = e.clientX; - - return false; - } - - function dragStop() { - - _domDom2['default'].removeClass(gui.__closeButton, GUI.CLASS_DRAG); - _domDom2['default'].unbind(window, 'mousemove', drag); - _domDom2['default'].unbind(window, 'mouseup', dragStop); - } + gui.domElement.insertBefore(gui.__resize_handle, gui.domElement.firstElementChild); } function setWidth(gui, w) { @@ -4158,62 +4040,38 @@ return /******/ (function(modules) { // webpackBootstrap } function getCurrentPreset(gui, useInitialValues) { - var toReturn = {}; // For each object I'm remembering _utilsCommon2['default'].each(gui.__rememberedObjects, function (val, index) { - - var saved_values = {}; + var savedValues = {}; // The controllers I've made for thcommon.isObject by property - var controller_map = gui.__rememberedObjectIndecesToControllers[index]; + var controllerMap = gui.__rememberedObjectIndecesToControllers[index]; // Remember each value for each property - _utilsCommon2['default'].each(controller_map, function (controller, property) { - saved_values[property] = useInitialValues ? controller.initialValue : controller.getValue(); + _utilsCommon2['default'].each(controllerMap, function (controller, property) { + savedValues[property] = useInitialValues ? controller.initialValue : controller.getValue(); }); // Save the values for thcommon.isObject - toReturn[index] = saved_values; + toReturn[index] = savedValues; }); return toReturn; } - function addPresetOption(gui, name, setSelected) { - var opt = document.createElement('option'); - opt.innerHTML = name; - opt.value = name; - gui.__preset_select.appendChild(opt); - if (setSelected) { - gui.__preset_select.selectedIndex = gui.__preset_select.length - 1; - } - } - function setPresetSelectIndex(gui) { for (var index = 0; index < gui.__preset_select.length; index++) { - if (gui.__preset_select[index].value == gui.preset) { + if (gui.__preset_select[index].value === gui.preset) { gui.__preset_select.selectedIndex = index; } } } - function markPresetModified(gui, modified) { - var opt = gui.__preset_select[gui.__preset_select.selectedIndex]; - // console.log('mark', modified, opt); - if (modified) { - opt.innerHTML = opt.value + "*"; - } else { - opt.innerHTML = opt.value; - } - } - function updateDisplays(controllerArray) { - - if (controllerArray.length != 0) { - - (0, _utilsRequestAnimationFrame2['default'])(function () { + if (controllerArray.length !== 0) { + _utilsRequestAnimationFrame2['default'](function () { updateDisplays(controllerArray); }); } @@ -4290,13 +4148,11 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - var _OptionController = __webpack_require__(9); + var _OptionController = __webpack_require__(10); var _OptionController2 = _interopRequireDefault(_OptionController); @@ -4383,11 +4239,18 @@ return /******/ (function(modules) { // webpackBootstrap "use strict"; - module.exports = function () { - return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback, element) { + exports.__esModule = true; + + exports["default"] = function () { + function requestAnimationFrame(callback) { + // TODO: Get rid of window window.setTimeout(callback, 1000 / 60); - }; + } + + return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || requestAnimationFrame; }; + + module.exports = exports["default"]; /***/ }, /* 28 */ @@ -4408,13 +4271,13 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - Object.defineProperty(exports, '__esModule', { - value: true - }); + exports.__esModule = true; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - var _domDom = __webpack_require__(10); + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + + var _domDom = __webpack_require__(9); var _domDom2 = _interopRequireDefault(_domDom); @@ -4422,90 +4285,97 @@ return /******/ (function(modules) { // webpackBootstrap var _utilsCommon2 = _interopRequireDefault(_utilsCommon); - var CenteredDiv = function CenteredDiv() { + var CenteredDiv = (function () { + function CenteredDiv() { + _classCallCheck(this, CenteredDiv); - this.backgroundElement = document.createElement('div'); - _utilsCommon2['default'].extend(this.backgroundElement.style, { - backgroundColor: 'rgba(0,0,0,0.8)', - top: 0, - left: 0, - display: 'none', - zIndex: '1000', - opacity: 0, - WebkitTransition: 'opacity 0.2s linear', - transition: 'opacity 0.2s linear' - }); + this.backgroundElement = document.createElement('div'); + _utilsCommon2['default'].extend(this.backgroundElement.style, { + backgroundColor: 'rgba(0,0,0,0.8)', + top: 0, + left: 0, + display: 'none', + zIndex: '1000', + opacity: 0, + WebkitTransition: 'opacity 0.2s linear', + transition: 'opacity 0.2s linear' + }); - _domDom2['default'].makeFullscreen(this.backgroundElement); - this.backgroundElement.style.position = 'fixed'; + _domDom2['default'].makeFullscreen(this.backgroundElement); + this.backgroundElement.style.position = 'fixed'; - this.domElement = document.createElement('div'); - _utilsCommon2['default'].extend(this.domElement.style, { - position: 'fixed', - display: 'none', - zIndex: '1001', - opacity: 0, - WebkitTransition: '-webkit-transform 0.2s ease-out, opacity 0.2s linear', - transition: 'transform 0.2s ease-out, opacity 0.2s linear' - }); + this.domElement = document.createElement('div'); + _utilsCommon2['default'].extend(this.domElement.style, { + position: 'fixed', + display: 'none', + zIndex: '1001', + opacity: 0, + WebkitTransition: '-webkit-transform 0.2s ease-out, opacity 0.2s linear', + transition: 'transform 0.2s ease-out, opacity 0.2s linear' + }); - document.body.appendChild(this.backgroundElement); - document.body.appendChild(this.domElement); + document.body.appendChild(this.backgroundElement); + document.body.appendChild(this.domElement); - var _this = this; - _domDom2['default'].bind(this.backgroundElement, 'click', function () { - _this.hide(); - }); - }; + var _this = this; + _domDom2['default'].bind(this.backgroundElement, 'click', function () { + _this.hide(); + }); + } - CenteredDiv.prototype.show = function () { + CenteredDiv.prototype.show = function show() { + var _this = this; - var _this = this; + this.backgroundElement.style.display = 'block'; - this.backgroundElement.style.display = 'block'; + this.domElement.style.display = 'block'; + this.domElement.style.opacity = 0; + // this.domElement.style.top = '52%'; + this.domElement.style.webkitTransform = 'scale(1.1)'; - this.domElement.style.display = 'block'; - this.domElement.style.opacity = 0; - // this.domElement.style.top = '52%'; - this.domElement.style.webkitTransform = 'scale(1.1)'; + this.layout(); - this.layout(); - - _utilsCommon2['default'].defer(function () { - _this.backgroundElement.style.opacity = 1; - _this.domElement.style.opacity = 1; - _this.domElement.style.webkitTransform = 'scale(1)'; - }); - }; - - CenteredDiv.prototype.hide = function () { - - var _this = this; - - var hide = function hide() { - - _this.domElement.style.display = 'none'; - _this.backgroundElement.style.display = 'none'; - - _domDom2['default'].unbind(_this.domElement, 'webkitTransitionEnd', hide); - _domDom2['default'].unbind(_this.domElement, 'transitionend', hide); - _domDom2['default'].unbind(_this.domElement, 'oTransitionEnd', hide); + _utilsCommon2['default'].defer(function () { + _this.backgroundElement.style.opacity = 1; + _this.domElement.style.opacity = 1; + _this.domElement.style.webkitTransform = 'scale(1)'; + }); }; - _domDom2['default'].bind(this.domElement, 'webkitTransitionEnd', hide); - _domDom2['default'].bind(this.domElement, 'transitionend', hide); - _domDom2['default'].bind(this.domElement, 'oTransitionEnd', hide); + /** + * Hide centered div + */ - this.backgroundElement.style.opacity = 0; - // this.domElement.style.top = '48%'; - this.domElement.style.opacity = 0; - this.domElement.style.webkitTransform = 'scale(1.1)'; - }; + CenteredDiv.prototype.hide = function hide() { + var _this = this; - CenteredDiv.prototype.layout = function () { - this.domElement.style.left = window.innerWidth / 2 - _domDom2['default'].getWidth(this.domElement) / 2 + 'px'; - this.domElement.style.top = window.innerHeight / 2 - _domDom2['default'].getHeight(this.domElement) / 2 + 'px'; - }; + var hide = function hide() { + + _this.domElement.style.display = 'none'; + _this.backgroundElement.style.display = 'none'; + + _domDom2['default'].unbind(_this.domElement, 'webkitTransitionEnd', hide); + _domDom2['default'].unbind(_this.domElement, 'transitionend', hide); + _domDom2['default'].unbind(_this.domElement, 'oTransitionEnd', hide); + }; + + _domDom2['default'].bind(this.domElement, 'webkitTransitionEnd', hide); + _domDom2['default'].bind(this.domElement, 'transitionend', hide); + _domDom2['default'].bind(this.domElement, 'oTransitionEnd', hide); + + this.backgroundElement.style.opacity = 0; + // this.domElement.style.top = '48%'; + this.domElement.style.opacity = 0; + this.domElement.style.webkitTransform = 'scale(1.1)'; + }; + + CenteredDiv.prototype.layout = function layout() { + this.domElement.style.left = window.innerWidth / 2 - _domDom2['default'].getWidth(this.domElement) / 2 + 'px'; + this.domElement.style.top = window.innerHeight / 2 - _domDom2['default'].getHeight(this.domElement) / 2 + 'px'; + }; + + return CenteredDiv; + })(); function lockScroll(e) { console.log(e); diff --git a/build/dat.gui.js.map b/build/dat.gui.js.map index c16ef39..15d72fe 100644 --- a/build/dat.gui.js.map +++ b/build/dat.gui.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 0bafdefe86b7eb129d07","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/controllers/OptionController.js","webpack:///./dat/dom/dom.js","webpack:///./dat/controllers/StringController.js","webpack:///./dat/controllers/NumberController.js","webpack:///./dat/controllers/NumberControllerBox.js","webpack:///./dat/controllers/NumberControllerSlider.js","webpack:///./dat/utils/css.js","webpack:///./dat/controllers/NumberControllerSlider.scss?845f","webpack:///./dat/controllers/NumberControllerSlider.scss","webpack:///../~/css-loader/lib/css-base.js","webpack:///../~/style-loader/addStyles.js","webpack:///./dat/controllers/FunctionController.js","webpack:///./dat/controllers/ColorController.js","webpack:///./dat/gui/GUI.js","webpack:///./dat/gui/saveDialogue.html","webpack:///./dat/gui/style.scss?5a0d","webpack:///./dat/gui/style.scss","webpack:///./dat/controllers/ControllerFactory.js","webpack:///./dat/utils/requestAnimationFrame.js","webpack:///./dat/dom/CenteredDiv.js"],"names":[],"mappings":"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AACA;AACA;AACA,iDAAsF;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA,iCAAgC,UAAU,EAAE;AAC5C,E;;;;;;ACpBA;AACA;;;AAGA;AACA,kPAAiP,oLAAoL,oDAAoD,gBAAgB,uBAAuB,2BAA2B,qBAAqB,qBAAqB,EAAE,gBAAgB,yBAAyB,2BAA2B,gBAAgB,wBAAwB,yBAAyB,+BAA+B,EAAE,sBAAsB,0BAA0B,uBAAuB,2BAA2B,2BAA2B,gBAAgB,iBAAiB,uBAAuB,qBAAqB,kBAAkB,iBAAiB,EAAE;;AAE59B;;;;;;;ACPA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA,yCAAwC,gBAAgB;AACxD,KAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,aAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;ACjDA;AACA;AACA;AACA;AACA,qBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;AACA,GAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAgB,mBAAmB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB,sBAAsB;AACtC;AACA;AACA,mBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAe,mBAAmB;AAClC;AACA;AACA;AACA;AACA,kBAAiB,2BAA2B;AAC5C;AACA;AACA,SAAQ,uBAAuB;AAC/B;AACA;AACA,IAAG;AACH;AACA,kBAAiB,uBAAuB;AACxC;AACA;AACA,4BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AA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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 0bafdefe86b7eb129d07\n **/","module.exports = require('./src/dat/index');\n\n\n\n/** WEBPACK FOOTER **\n ** ../index.js\n **/","module.exports = {\n color: {\n Color: require('./color/Color'),\n math: require('./color/math'),\n interpret: require('./color/interpret')\n },\n\n controllers: {\n Controller: require('./controllers/Controller'),\n BooleanController: require('./controllers/BooleanController'),\n OptionController: require('./controllers/OptionController'),\n StringController: require('./controllers/StringController'),\n NumberController: require('./controllers/NumberController'),\n NumberControllerBox: require('./controllers/NumberControllerBox'),\n NumberControllerSlider: require('./controllers/NumberControllerSlider'),\n FunctionController: require('./controllers/FunctionController'),\n ColorController: require('./controllers/ColorController')\n },\n\n dom: {\n dom: require('./dom/dom')\n },\n\n gui: {\n GUI: require('./gui/GUI')\n },\n\n GUI: require('./gui/GUI')\n};\n\n\n/** WEBPACK FOOTER **\n ** ./dat/index.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport interpret from './interpret';\nimport math from './math';\nimport colorToString from './toString';\nimport common from '../utils/common';\n\nclass Color {\n constructor() {\n this.__state = interpret.apply(this, arguments);\n\n if (this.__state === false) {\n throw 'Failed to interpret color arguments';\n }\n\n this.__state.a = this.__state.a || 1;\n }\n\n toString() {\n return colorToString(this);\n }\n\n toOriginal() {\n return this.__state.conversion.write(this);\n }\n}\n\nColor.recalculateRGB = function(color, component, componentHexIndex) {\n if (color.__state.space === 'HEX') {\n color.__state[component] = math.component_from_hex(color.__state.hex, componentHexIndex);\n } else if (color.__state.space === 'HSV') {\n common.extend(color.__state, math.hsv_to_rgb(color.__state.h, color.__state.s, color.__state.v));\n } else {\n throw 'Corrupted color state';\n }\n};\n\nColor.recalculateHSV = function(color) {\n var result = math.rgb_to_hsv(color.r, color.g, color.b);\n\n common.extend(color.__state,\n {\n s: result.s,\n v: result.v\n }\n );\n\n if (!common.isNaN(result.h)) {\n color.__state.h = result.h;\n } else if (common.isUndefined(color.__state.h)) {\n color.__state.h = 0;\n }\n};\n\nColor.COMPONENTS = ['r', 'g', 'b', 'h', 's', 'v', 'hex', 'a'];\n\ndefineRGBComponent(Color.prototype, 'r', 2);\ndefineRGBComponent(Color.prototype, 'g', 1);\ndefineRGBComponent(Color.prototype, 'b', 0);\n\ndefineHSVComponent(Color.prototype, 'h');\ndefineHSVComponent(Color.prototype, 's');\ndefineHSVComponent(Color.prototype, 'v');\n\nObject.defineProperty(Color.prototype, 'a', {\n\n get: function () {\n return this.__state.a;\n },\n\n set: function (v) {\n this.__state.a = v;\n }\n});\n\nObject.defineProperty(Color.prototype, 'hex', {\n get: function () {\n if (!this.__state.space !== 'HEX') {\n this.__state.hex = math.rgb_to_hex(this.r, this.g, this.b);\n }\n\n return this.__state.hex;\n },\n\n set: function (v) {\n this.__state.space = 'HEX';\n this.__state.hex = v;\n }\n});\n\nfunction defineRGBComponent(target, component, componentHexIndex) {\n\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 Color.recalculateHSV(this);\n\n return this.__state[component];\n\n },\n\n set: function (v) {\n if (this.__state.space !== 'HSV') {\n Color.recalculateHSV(this);\n this.__state.space = 'HSV';\n }\n\n this.__state[component] = v;\n }\n });\n}\n\nexport default Color;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/Color.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport * as toString from './toString';\nimport common from '../utils/common';\n\nvar result, toReturn;\n\nvar interpret = function () {\n toReturn = false;\n\n var original = arguments.length > 1 ? common.toArray(arguments) : arguments[0];\n common.each(INTERPRETATIONS, function (family) {\n\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\nvar INTERPRETATIONS = [\n // Strings\n {\n litmus: common.isString,\n conversions: {\n THREE_CHAR_HEX: {\n read: function (original) {\n\n var test = original.match(/^#([A-F0-9])([A-F0-9])([A-F0-9])$/i);\n if (test === null) return false;\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())\n };\n\n },\n\n write: toString\n },\n\n SIX_CHAR_HEX: {\n read: function (original) {\n\n var test = original.match(/^#([A-F0-9]{6})$/i);\n if (test === null) return false;\n\n return {\n space: 'HEX',\n hex: parseInt('0x' + test[1].toString())\n };\n\n },\n\n write: toString\n },\n\n CSS_RGB: {\n read: function (original) {\n\n var test = original.match(/^rgb\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\)/);\n if (test === null) return false;\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\n write: toString\n },\n\n CSS_RGBA: {\n read: function (original) {\n\n var test = original.match(/^rgba\\(\\s*(.+)\\s*,\\s*(.+)\\s*,\\s*(.+)\\s*\\,\\s*(.+)\\s*\\)/);\n if (test === null) return false;\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\n RGB_ARRAY: {\n read: function (original) {\n if (original.length != 3) return false;\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\n litmus: common.isObject,\n\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\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\nvar colorToString = function (color) {\n if (color.a == 1 || common.isUndefined(color.a)) {\n var s = color.hex.toString(16);\n while (s.length < 6) {\n s = '0' + s;\n }\n\n return '#' + s;\n } else {\n return 'rgba(' + Math.round(color.r) + ',' + Math.round(color.g) + ',' + Math.round(color.b) + ',' + color.a + ')';\n }\n};\n\nexport default colorToString;\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\nvar ARR_EACH = Array.prototype.forEach;\nvar 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\nvar Common = {\n\n BREAK: {},\n\n extend: function (target) {\n\n this.each(ARR_SLICE.call(arguments, 1), function (obj) {\n\n for (var key in obj)\n if (!this.isUndefined(obj[key]))\n target[key] = obj[key];\n\n }, this);\n\n return target;\n\n },\n\n defaults: function (target) {\n\n this.each(ARR_SLICE.call(arguments, 1), function (obj) {\n\n for (var key in obj)\n if (this.isUndefined(target[key]))\n target[key] = obj[key];\n\n }, this);\n\n return target;\n\n },\n\n compose: function () {\n var toCall = ARR_SLICE.call(arguments);\n return function () {\n var args = ARR_SLICE.call(arguments);\n for (var 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\n if (!obj) return;\n\n if (ARR_EACH && obj.forEach && obj.forEach === ARR_EACH) {\n\n obj.forEach(itr, scope);\n\n } else if (obj.length === obj.length + 0) { // Is number but not NaN\n\n for (var 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 } else {\n\n for (var key in obj)\n if (itr.call(scope, obj[key], key) === this.BREAK)\n return;\n\n }\n\n },\n\n defer: function (fnc) {\n setTimeout(fnc, 0);\n },\n\n toArray: function (obj) {\n if (obj.toArray) return obj.toArray();\n return ARR_SLICE.call(obj);\n },\n\n isUndefined: function (obj) {\n return obj === undefined;\n },\n\n isNull: function (obj) {\n return obj === null;\n },\n\n isNaN: function (obj) {\n return obj !== 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\nmodule.exports = Common;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/common.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nvar tmpComponent;\n\nvar ColorMath = {\n\n hsv_to_rgb: function (h, s, v) {\n\n var hi = Math.floor(h / 60) % 6;\n\n var f = h / 60 - Math.floor(h / 60);\n var p = v * (1.0 - s);\n var q = v * (1.0 - (f * s));\n var t = v * (1.0 - ((1.0 - f) * s));\n var c = [\n [v, t, p],\n [q, v, p],\n [p, v, t],\n [p, q, v],\n [t, p, v],\n [v, p, q]\n ][hi];\n\n return {\n r: c[0] * 255,\n g: c[1] * 255,\n b: c[2] * 255\n };\n\n },\n\n rgb_to_hsv: function (r, g, b) {\n\n var min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n delta = max - min,\n h, s;\n\n if (max != 0) {\n s = delta / max;\n } else {\n return {\n h: NaN,\n s: 0,\n v: 0\n };\n }\n\n if (r == max) {\n h = (g - b) / delta;\n } else if (g == max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n h /= 6;\n if (h < 0) {\n h += 1;\n }\n\n return {\n h: h * 360,\n s: s,\n v: max / 255\n };\n },\n\n rgb_to_hex: function (r, g, b) {\n var hex = this.hex_with_component(0, 2, r);\n hex = this.hex_with_component(hex, 1, g);\n hex = this.hex_with_component(hex, 0, b);\n return hex;\n },\n\n component_from_hex: function (hex, componentIndex) {\n return (hex >> (componentIndex * 8)) & 0xFF;\n },\n\n hex_with_component: function (hex, componentIndex, value) {\n return value << (tmpComponent = componentIndex * 8) | (hex & ~(0xFF << tmpComponent));\n }\n}\n\nexport default ColorMath;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/color/math.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\n/**\n * @class An \"abstract\" class that represents a given property of an object.\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass Controller {\n constructor(object, property) {\n this.initialValue = object[property];\n\n /**\n * Those who extend this class will put their DOM elements in here.\n * @type {DOMElement}\n */\n this.domElement = document.createElement('div');\n\n /**\n * The object to manipulate\n * @type {Object}\n */\n this.object = object;\n\n /**\n * The name of the property to manipulate\n * @type {String}\n */\n this.property = property;\n\n /**\n * The function to be called on change.\n * @type {Function}\n * @ignore\n */\n this.__onChange = undefined;\n\n /**\n * The function to be called on finishing change.\n * @type {Function}\n * @ignore\n */\n this.__onFinishChange = undefined;\n }\n\n /**\n * Specify that a function fire every time someone changes the value with\n * this Controller.\n *\n * @param {Function} fnc This function will be called whenever the value\n * is modified via this Controller.\n * @returns {dat.controllers.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 {dat.controllers.Controller} this\n */\n onFinishChange(fnc) {\n this.__onFinishChange = fnc;\n return this;\n }\n\n /**\n * Change the value of object[property]\n *\n * @param {Object} newValue The new value of object[property]\n */\n setValue(newValue) {\n this.object[this.property] = newValue;\n if (this.__onChange) {\n this.__onChange.call(this, newValue);\n }\n this.updateDisplay();\n return this;\n }\n\n /**\n * Gets the value of object[property]\n *\n * @returns {Object} The current value of object[property]\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 {dat.controllers.Controller} this\n */\n updateDisplay() {\n return this;\n }\n\n /**\n * @returns {Boolean} true if the value has deviated from initialValue\n */\n isModified() {\n return this.initialValue !== this.getValue()\n }\n}\n\nexport default Controller;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/Controller.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a checkbox input to alter the boolean property of an object.\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass BooleanController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n var _this = this;\n this.__prev = this.getValue();\n\n this.__checkbox = document.createElement('input');\n this.__checkbox.setAttribute('type', 'checkbox');\n\n function onChange() {\n _this.setValue(!_this.__prev);\n }\n\n dom.bind(this.__checkbox, 'change', onChange, false);\n\n this.domElement.appendChild(this.__checkbox);\n\n // Match original value\n this.updateDisplay();\n }\n\n setValue(v) {\n var toReturn = super.setValue(v);\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n this.__prev = this.getValue();\n return toReturn;\n }\n\n updateDisplay() {\n if (this.getValue() === true) {\n this.__checkbox.setAttribute('checked', 'checked');\n this.__checkbox.checked = true;\n } else {\n this.__checkbox.checked = false;\n }\n\n return super.updateDisplay();\n }\n}\n\nexport default BooleanController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/BooleanController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a select input to alter the property of an object, using a\n * list of accepted values.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object|string[]} options A map of labels to acceptable values, or\n * a list of acceptable string values.\n *\n * @member dat.controllers\n */\nclass OptionController extends Controller{\n constructor(object, property, options) {\n super(object, property);\n\n var _this = this;\n\n /**\n * The drop down menu\n * @ignore\n */\n this.__select = document.createElement('select');\n\n if (common.isArray(options)) {\n var map = {};\n common.each(options, function (element) {\n map[element] = element;\n });\n options = map;\n }\n\n common.each(options, function (value, key) {\n\n var opt = document.createElement('option');\n opt.innerHTML = key;\n opt.setAttribute('value', value);\n _this.__select.appendChild(opt);\n\n });\n\n // Acknowledge original value\n this.updateDisplay();\n\n dom.bind(this.__select, 'change', function () {\n var desiredValue = this.options[this.selectedIndex].value;\n _this.setValue(desiredValue);\n });\n\n this.domElement.appendChild(this.__select);\n }\n\n setValue (v) {\n var toReturn = super.setValue(v);\n\n if (this.__onFinishChange) {\n this.__onFinishChange.call(this, this.getValue());\n }\n return toReturn;\n }\n\n updateDisplay() {\n this.__select.value = this.getValue();\n return super.updateDisplay();\n }\n}\n\nexport default OptionController;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/OptionController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport common from '../utils/common';\n\nvar EVENT_MAP = {\n 'HTMLEvents': ['change'],\n 'MouseEvents': ['click', 'mousemove', 'mousedown', 'mouseup', 'mouseover'],\n 'KeyboardEvents': ['keydown']\n};\n\nvar EVENT_MAP_INV = {};\ncommon.each(EVENT_MAP, function (v, k) {\n common.each(v, function (e) {\n EVENT_MAP_INV[e] = k;\n });\n});\n\nvar CSS_VALUE_PIXELS = /(\\d+(\\.\\d+)?)px/;\n\nfunction cssValueToPixels(val) {\n\n if (val === '0' || common.isUndefined(val)) return 0;\n\n var match = val.match(CSS_VALUE_PIXELS);\n\n if (!common.isNull(match)) {\n return parseFloat(match[1]);\n }\n\n // TODO ...ems? %?\n\n return 0;\n\n}\n\n/**\n * @namespace\n * @member dat.dom\n */\nvar dom = {\n\n /**\n *\n * @param elem\n * @param selectable\n */\n makeSelectable: function (elem, selectable) {\n\n if (elem === undefined || elem.style === undefined) return;\n\n elem.onselectstart = selectable ? function () {\n return false;\n } : function () {\n };\n\n elem.style.MozUserSelect = selectable ? 'auto' : 'none';\n elem.style.KhtmlUserSelect = selectable ? 'auto' : 'none';\n elem.unselectable = selectable ? 'on' : 'off';\n\n },\n\n /**\n *\n * @param elem\n * @param horizontal\n * @param vertical\n */\n makeFullscreen: function (elem, horizontal, vertical) {\n\n if (common.isUndefined(horizontal)) horizontal = true;\n if (common.isUndefined(vertical)) vertical = true;\n\n elem.style.position = 'absolute';\n\n if (horizontal) {\n elem.style.left = 0;\n elem.style.right = 0;\n }\n if (vertical) {\n elem.style.top = 0;\n elem.style.bottom = 0;\n }\n\n },\n\n /**\n *\n * @param elem\n * @param eventType\n * @param params\n */\n fakeEvent: function (elem, eventType, params, aux) {\n params = params || {};\n var className = EVENT_MAP_INV[eventType];\n if (!className) {\n throw new Error('Event type ' + eventType + ' not supported.');\n }\n var evt = document.createEvent(className);\n switch (className) {\n case 'MouseEvents':\n var clientX = params.x || params.clientX || 0;\n var clientY = params.y || params.clientY || 0;\n evt.initMouseEvent(eventType, params.bubbles || false,\n params.cancelable || true, window, params.clickCount || 1,\n 0, //screen X\n 0, //screen Y\n clientX, //client X\n clientY, //client Y\n false, false, false, false, 0, null);\n break;\n case 'KeyboardEvents':\n var init = evt.initKeyboardEvent || evt.initKeyEvent; // webkit || moz\n common.defaults(params, {\n cancelable: true,\n ctrlKey: false,\n altKey: false,\n shiftKey: false,\n metaKey: false,\n keyCode: undefined,\n charCode: undefined\n });\n init(eventType, params.bubbles || false,\n params.cancelable, window,\n params.ctrlKey, params.altKey,\n params.shiftKey, params.metaKey,\n params.keyCode, params.charCode);\n break;\n default:\n evt.initEvent(eventType, params.bubbles || false,\n params.cancelable || true);\n break;\n }\n common.defaults(evt, aux);\n elem.dispatchEvent(evt);\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n bind: function (elem, event, func, bool) {\n bool = bool || false;\n if (elem.addEventListener)\n elem.addEventListener(event, func, bool);\n else if (elem.attachEvent)\n elem.attachEvent('on' + event, func);\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param event\n * @param func\n * @param bool\n */\n unbind: function (elem, event, func, bool) {\n bool = bool || false;\n if (elem.removeEventListener)\n elem.removeEventListener(event, func, bool);\n else if (elem.detachEvent)\n elem.detachEvent('on' + event, func);\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n addClass: function (elem, className) {\n if (elem.className === undefined) {\n elem.className = className;\n } else if (elem.className !== className) {\n var classes = elem.className.split(/ +/);\n if (classes.indexOf(className) == -1) {\n classes.push(className);\n elem.className = classes.join(' ').replace(/^\\s+/, '').replace(/\\s+$/, '');\n }\n }\n return dom;\n },\n\n /**\n *\n * @param elem\n * @param className\n */\n removeClass: function (elem, className) {\n if (className) {\n if (elem.className === undefined) {\n // elem.className = className;\n } else if (elem.className === className) {\n elem.removeAttribute('class');\n } else {\n var classes = elem.className.split(/ +/);\n var index = classes.indexOf(className);\n if (index != -1) {\n classes.splice(index, 1);\n elem.className = classes.join(' ');\n }\n }\n } else {\n elem.className = undefined;\n }\n return dom;\n },\n\n hasClass: function (elem, className) {\n return new RegExp('(?:^|\\\\s+)' + className + '(?:\\\\s+|$)').test(elem.className) || false;\n },\n\n /**\n *\n * @param elem\n */\n getWidth: function (elem) {\n\n var style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-left-width']) +\n cssValueToPixels(style['border-right-width']) +\n cssValueToPixels(style['padding-left']) +\n cssValueToPixels(style['padding-right']) +\n cssValueToPixels(style['width']);\n },\n\n /**\n *\n * @param elem\n */\n getHeight: function (elem) {\n\n var style = getComputedStyle(elem);\n\n return cssValueToPixels(style['border-top-width']) +\n cssValueToPixels(style['border-bottom-width']) +\n cssValueToPixels(style['padding-top']) +\n cssValueToPixels(style['padding-bottom']) +\n cssValueToPixels(style['height']);\n },\n\n /**\n *\n * @param elem\n */\n getOffset: function (elem) {\n var offset = {left: 0, top: 0};\n if (elem.offsetParent) {\n do {\n offset.left += elem.offsetLeft;\n offset.top += elem.offsetTop;\n } while (elem = elem.offsetParent);\n }\n return offset;\n },\n\n // http://stackoverflow.com/posts/2684561/revisions\n /**\n *\n * @param elem\n */\n isActive: function (elem) {\n return elem === document.activeElement && ( elem.type || elem.href );\n }\n\n};\n\nexport default dom;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/dom/dom.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\n/**\n * @class Provides a text input to alter the string property of an object.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n *\n * @member dat.controllers\n */\nclass StringController extends Controller {\n constructor(object, property) {\n super(object, property);\n\n var _this = this;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n dom.bind(this.__input, 'keyup', onChange);\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'keydown', function (e) {\n if (e.keyCode === 13) {\n this.blur();\n }\n });\n\n\n function onChange() {\n _this.setValue(_this.__input.value);\n }\n\n function onBlur() {\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n // Stops the caret from moving on account of:\n // keyup -> setValue -> updateDisplay\n if (!dom.isActive(this.__input)) {\n this.__input.value = this.getValue();\n }\n return super.updateDisplay();\n }\n}\n\nexport default StringController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/StringController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport Controller from './Controller';\nimport common from '../utils/common';\n\nfunction numDecimals(x) {\n x = x.toString();\n if (x.indexOf('.') > -1) {\n return x.length - x.indexOf('.') - 1;\n } else {\n return 0;\n }\n}\n\n/**\n * @class Represents a given property of an object that is a number.\n *\n * @extends dat.controllers.Controller\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberController extends Controller {\n constructor(object, property, params) {\n super(object, property);\n\n params = params || {};\n\n this.__min = params.min;\n this.__max = params.max;\n this.__step = params.step;\n\n if (common.isUndefined(this.__step)) {\n\n if (this.initialValue == 0) {\n this.__impliedStep = 1; // What are we, psychics?\n } else {\n // Hey Doug, check this out.\n this.__impliedStep = Math.pow(10, Math.floor(Math.log(Math.abs(this.initialValue)) / Math.LN10)) / 10;\n }\n\n } else {\n\n this.__impliedStep = this.__step;\n }\n\n this.__precision = numDecimals(this.__impliedStep);\n }\n\n setValue(v) {\n if (this.__min !== undefined && v < this.__min) {\n v = this.__min;\n } else if (this.__max !== undefined && v > this.__max) {\n v = this.__max;\n }\n\n if (this.__step !== undefined && v % this.__step != 0) {\n v = Math.round(v / this.__step) * this.__step;\n }\n\n return super.setValue(v);\n\n }\n\n /**\n * Specify a minimum value for object[property].\n *\n * @param {Number} minValue The minimum value for\n * object[property]\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 object[property].\n *\n * @param {Number} maxValue The maximum value for\n * object[property]\n * @returns {dat.controllers.NumberController} this\n */\n max(v) {\n this.__max = v;\n return this;\n }\n\n /**\n * Specify a step value that dat.controllers.NumberController\n * increments by.\n *\n * @param {Number} stepValue The step value for\n * dat.controllers.NumberController\n * @default if minimum and maximum specified increment is 1% of the\n * difference otherwise stepValue is 1\n * @returns {dat.controllers.NumberController} this\n */\n step(v) {\n this.__step = v;\n this.__impliedStep = v;\n this.__precision = numDecimals(v);\n return this;\n }\n}\n\nexport default NumberController;\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberController.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport common from '../utils/common';\n\nfunction roundToDecimal(value, decimals) {\n var tenTo = Math.pow(10, decimals);\n return Math.round(value * tenTo) / tenTo;\n}\n\n/**\n * @class Represents a given property of an object that is a number and\n * provides an input element with which to manipulate it.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Object} [params] Optional parameters\n * @param {Number} [params.min] Minimum allowed value\n * @param {Number} [params.max] Maximum allowed value\n * @param {Number} [params.step] Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerBox extends NumberController {\n constructor(object, property, params) {\n super(object, property, params);\n\n this.__truncationSuspended = false;\n\n var _this = this;\n\n /**\n * {Number} Previous mouse y position\n * @ignore\n */\n var prev_y;\n\n this.__input = document.createElement('input');\n this.__input.setAttribute('type', 'text');\n\n // Makes it so manually specified values are not truncated.\n\n dom.bind(this.__input, 'change', onChange);\n dom.bind(this.__input, 'blur', onBlur);\n dom.bind(this.__input, 'mousedown', onMouseDown);\n dom.bind(this.__input, 'keydown', function (e) {\n\n // When pressing entire, you can be as precise as you want.\n if (e.keyCode === 13) {\n _this.__truncationSuspended = true;\n this.blur();\n _this.__truncationSuspended = false;\n }\n\n });\n\n function onChange() {\n var attempted = parseFloat(_this.__input.value);\n if (!common.isNaN(attempted)) _this.setValue(attempted);\n }\n\n function onBlur() {\n onChange();\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n function onMouseDown(e) {\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n prev_y = e.clientY;\n }\n\n function onMouseDrag(e) {\n\n var diff = prev_y - e.clientY;\n _this.setValue(_this.getValue() + diff * _this.__impliedStep);\n\n prev_y = e.clientY;\n\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n }\n\n this.updateDisplay();\n\n this.domElement.appendChild(this.__input);\n }\n\n updateDisplay() {\n\n this.__input.value = this.__truncationSuspended ? this.getValue() : roundToDecimal(this.getValue(), this.__precision);\n return super.updateDisplay();\n }\n}\n\nexport default NumberControllerBox;\n\n\n\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberControllerBox.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nimport NumberController from './NumberController';\nimport dom from '../dom/dom';\nimport css from '../utils/css';\nimport common from '../utils/common';\nimport styleSheet from '!style!css!sass!./NumberControllerSlider.scss';\n\nfunction map(v, i1, i2, o1, o2) {\n return o1 + (o2 - o1) * ((v - i1) / (i2 - i1));\n}\n\n/**\n * @class Represents a given property of an object that is a number, contains\n * a minimum and maximum, and provides a slider element with which to\n * manipulate it. It should be noted that the slider element is made up of\n * <div> tags, not the html5\n * <slider> element.\n *\n * @extends dat.controllers.Controller\n * @extends dat.controllers.NumberController\n *\n * @param {Object} object The object to be manipulated\n * @param {string} property The name of the property to be manipulated\n * @param {Number} minValue Minimum allowed value\n * @param {Number} maxValue Maximum allowed value\n * @param {Number} stepValue Increment by which to change value\n *\n * @member dat.controllers\n */\nclass NumberControllerSlider extends NumberController {\n constructor(object, property, min, max, step) {\n super(object, property, {min: min, max: max, step: step});\n\n var _this = this;\n\n this.__background = document.createElement('div');\n this.__foreground = document.createElement('div');\n\n\n dom.bind(this.__background, 'mousedown', onMouseDown);\n\n dom.addClass(this.__background, 'slider');\n dom.addClass(this.__foreground, 'slider-fg');\n\n function onMouseDown(e) {\n\n dom.bind(window, 'mousemove', onMouseDrag);\n dom.bind(window, 'mouseup', onMouseUp);\n\n onMouseDrag(e);\n }\n\n function onMouseDrag(e) {\n\n e.preventDefault();\n\n var offset = dom.getOffset(_this.__background);\n var width = dom.getWidth(_this.__background);\n\n _this.setValue(\n map(e.clientX, offset.left, offset.left + width, _this.__min, _this.__max)\n );\n\n return false;\n\n }\n\n function onMouseUp() {\n dom.unbind(window, 'mousemove', onMouseDrag);\n dom.unbind(window, 'mouseup', onMouseUp);\n if (_this.__onFinishChange) {\n _this.__onFinishChange.call(_this, _this.getValue());\n }\n }\n\n this.updateDisplay();\n\n this.__background.appendChild(this.__foreground);\n this.domElement.appendChild(this.__background);\n }\n\n updateDisplay() {\n var pct = (this.getValue() - this.__min) / (this.__max - this.__min);\n this.__foreground.style.width = pct * 100 + '%';\n return super.updateDisplay();\n }\n}\n\n/**\n * Injects default stylesheet for slider elements.\n */\nNumberControllerSlider.useDefaultStyles = function () {\n css.inject(styleSheet);\n};\n\nexport default NumberControllerSlider;\n\n\n/** WEBPACK FOOTER **\n ** ./dat/controllers/NumberControllerSlider.js\n **/","/**\n * dat-gui JavaScript Controller Library\n * http://code.google.com/p/dat-gui\n *\n * Copyright 2011 Data Arts Team, Google Creative Lab\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n */\n\nmodule.exports = {\n load: function (url, doc) {\n doc = doc || document;\n var 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 inject: function (css, doc) {\n doc = doc || document;\n var injected = document.createElement('style');\n injected.type = 'text/css';\n injected.innerHTML = css;\n doc.getElementsByTagName('head')[0].appendChild(injected);\n }\n};\n\n\n/** WEBPACK FOOTER **\n ** ./dat/utils/css.js\n **/","// style-loader: Adds some css to the DOM by adding a