diff --git a/dist/vis.js b/dist/vis.js index c8598052..d4772b8e 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 4.0.0-SNAPSHOT - * @date 2015-04-23 + * @date 2015-04-24 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -608,7 +608,7 @@ return /******/ (function(modules) { // webpackBootstrap var type = typeof object; if (type == 'object') { - if (object == null) { + if (object === null) { return 'null'; } if (object instanceof Boolean) { @@ -633,11 +633,29 @@ return /******/ (function(modules) { // webpackBootstrap return 'Boolean'; } else if (type == 'string') { return 'String'; + } else if (type === undefined) { + return 'undefined'; } return type; }; + /** + * Used to extend an array and copy it. This is used to propagate paths recursively. + * + * @param arr + * @param newValue + * @returns {Array} + */ + exports.copyAndExtendArray = function (arr, newValue) { + var newArr = []; + for (var i = 0; i < arr.length; i++) { + newArr.push(arr[i]); + } + newArr.push(newValue); + return newArr; + }; + /** * Retrieve the absolute left value of a DOM element * @param {Element} elem A dom element, for example a div @@ -15631,8 +15649,12 @@ return /******/ (function(modules) { // webpackBootstrap var _ConfigurationSystem2 = _interopRequireWildcard(_ConfigurationSystem); + var _Validator = __webpack_require__(62); + + var _Validator2 = _interopRequireWildcard(_Validator); + // Load custom shapes into CanvasRenderingContext2D - __webpack_require__(62); + __webpack_require__(63); var Emitter = __webpack_require__(42); var Hammer = __webpack_require__(41); @@ -15642,7 +15664,7 @@ return /******/ (function(modules) { // webpackBootstrap var dotparser = __webpack_require__(38); var gephiParser = __webpack_require__(39); var Images = __webpack_require__(37); - var Activator = __webpack_require__(63); + var Activator = __webpack_require__(64); /** * @constructor Network @@ -15753,6 +15775,13 @@ return /******/ (function(modules) { // webpackBootstrap */ Network.prototype.setOptions = function (options) { if (options !== undefined) { + + var errorFound = _Validator2['default'].validate(options); + if (errorFound === true) { + options = {}; + console.log('%cErrors have been found in the supplied options object. None of the options will be used.', _Validator.printStyle); + } + // the hierarchical system can adapt the edges and the physics to it's own options because not all combinations work with the hierarichical system. options = this.layoutEngine.setOptions(options.layout, options); @@ -16929,7 +16958,7 @@ return /******/ (function(modules) { // webpackBootstrap // use this instance. Else, load via commonjs. 'use strict'; - module.exports = typeof window !== 'undefined' && window.moment || __webpack_require__(64); + module.exports = typeof window !== 'undefined' && window.moment || __webpack_require__(65); /***/ }, /* 41 */ @@ -16940,8 +16969,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; if (typeof window !== 'undefined') { - var propagating = __webpack_require__(65); - var Hammer = window.Hammer || __webpack_require__(66); + var propagating = __webpack_require__(66); + var Hammer = window.Hammer || __webpack_require__(67); module.exports = propagating(Hammer, { preventDefault: 'mouse' }); @@ -17136,7 +17165,7 @@ return /******/ (function(modules) { // webpackBootstrap var Range = __webpack_require__(17); var ItemSet = __webpack_require__(32); var TimeAxis = __webpack_require__(35); - var Activator = __webpack_require__(63); + var Activator = __webpack_require__(64); var DateUtil = __webpack_require__(15); var CustomTime = __webpack_require__(27); @@ -18883,11 +18912,11 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Node = __webpack_require__(67); + var _Node = __webpack_require__(68); var _Node2 = _interopRequireWildcard(_Node); - var _Label = __webpack_require__(68); + var _Label = __webpack_require__(69); var _Label2 = _interopRequireWildcard(_Label); @@ -19342,11 +19371,11 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Edge = __webpack_require__(69); + var _Edge = __webpack_require__(70); var _Edge2 = _interopRequireWildcard(_Edge); - var _Label = __webpack_require__(68); + var _Label = __webpack_require__(69); var _Label2 = _interopRequireWildcard(_Label); @@ -19752,27 +19781,27 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _BarnesHutSolver = __webpack_require__(70); + var _BarnesHutSolver = __webpack_require__(71); var _BarnesHutSolver2 = _interopRequireWildcard(_BarnesHutSolver); - var _Repulsion = __webpack_require__(71); + var _Repulsion = __webpack_require__(72); var _Repulsion2 = _interopRequireWildcard(_Repulsion); - var _HierarchicalRepulsion = __webpack_require__(72); + var _HierarchicalRepulsion = __webpack_require__(73); var _HierarchicalRepulsion2 = _interopRequireWildcard(_HierarchicalRepulsion); - var _SpringSolver = __webpack_require__(73); + var _SpringSolver = __webpack_require__(74); var _SpringSolver2 = _interopRequireWildcard(_SpringSolver); - var _HierarchicalSpringSolver = __webpack_require__(74); + var _HierarchicalSpringSolver = __webpack_require__(75); var _HierarchicalSpringSolver2 = _interopRequireWildcard(_HierarchicalSpringSolver); - var _CentralGravitySolver = __webpack_require__(75); + var _CentralGravitySolver = __webpack_require__(76); var _CentralGravitySolver2 = _interopRequireWildcard(_CentralGravitySolver); @@ -20312,7 +20341,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Cluster = __webpack_require__(76); + var _Cluster = __webpack_require__(77); var _Cluster2 = _interopRequireWildcard(_Cluster); @@ -22014,11 +22043,11 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _NavigationHandler = __webpack_require__(105); + var _NavigationHandler = __webpack_require__(78); var _NavigationHandler2 = _interopRequireWildcard(_NavigationHandler); - var _Popup = __webpack_require__(106); + var _Popup = __webpack_require__(79); var _Popup2 = _interopRequireWildcard(_Popup); @@ -22723,7 +22752,7 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, "__esModule", { value: true }); - var Node = __webpack_require__(67); + var Node = __webpack_require__(68); var util = __webpack_require__(1); var SelectionHandler = (function () { @@ -23903,7 +23932,7 @@ return /******/ (function(modules) { // webpackBootstrap var util = __webpack_require__(1); var Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(44); - var locales = __webpack_require__(77); + var locales = __webpack_require__(80); /** * clears the toolbar div element of children @@ -25091,7 +25120,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _ColorPicker = __webpack_require__(78); + var _ColorPicker = __webpack_require__(81); var _ColorPicker2 = _interopRequireWildcard(_ColorPicker); @@ -25293,7 +25322,7 @@ return /******/ (function(modules) { // webpackBootstrap select: true, selectConnectedEdges: true }, - renderer: { + rendering: { hideEdgesOnDrag: false, hideNodesOnDrag: false } @@ -25307,7 +25336,7 @@ return /******/ (function(modules) { // webpackBootstrap manipulation: {}, physics: {}, selection: {}, - renderer: {}, + rendering: {}, configure: false, configureContainer: undefined }; @@ -25341,7 +25370,7 @@ return /******/ (function(modules) { // webpackBootstrap util.deepExtend(this.actualOptions.manipulation, this.network.manipulation.options, true); util.deepExtend(this.actualOptions.physics, this.network.physics.options, true); util.deepExtend(this.actualOptions.selection, this.network.selectionHandler.selection, true); - util.deepExtend(this.actualOptions.renderer, this.network.renderer.selection, true); + util.deepExtend(this.actualOptions.rendering, this.network.renderer.selection, true); this.container = this.network.body.container; var config = true; @@ -25747,7 +25776,7 @@ return /******/ (function(modules) { // webpackBootstrap for (var subObj in obj) { if (obj.hasOwnProperty(subObj)) { var item = obj[subObj]; - var newPath = this._addToPath(path, subObj); + var newPath = util.copyAndExtendArray(path, subObj); var value = this._getValue(newPath); if (item instanceof Array) { @@ -25768,7 +25797,7 @@ return /******/ (function(modules) { // webpackBootstrap if (draw === true) { // initially collapse options with an disabled enabled option. if (item.enabled !== undefined) { - var enabledPath = this._addToPath(newPath, 'enabled'); + var enabledPath = util.copyAndExtendArray(newPath, 'enabled'); var enabledValue = this._getValue(enabledPath); if (enabledValue === true) { var label = this._makeLabel(subObj, newPath, true); @@ -25873,6 +25902,279 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 62 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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; }; })(); + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _allOptions = __webpack_require__(82); + + var _allOptions2 = _interopRequireWildcard(_allOptions); + + var util = __webpack_require__(1); + + var errorFound = false; + var printStyle = 'background: #FFeeee; color: #dd0000'; + /** + * Used to validate options. + */ + + var Validator = (function () { + function Validator() { + _classCallCheck(this, Validator); + } + + _createClass(Validator, null, [{ + key: 'validate', + + /** + * Main function to be called + * @param options + * @param subObject + * @returns {boolean} + */ + value: function validate(options, subObject) { + errorFound = false; + var usedOptions = _allOptions2['default']; + if (subObject !== undefined) { + usedOptions = _allOptions2['default'][subObject]; + } + Validator.parse(options, usedOptions, []); + return errorFound; + } + }, { + key: 'parse', + + /** + * Will traverse an object recursively and check every value + * @param options + * @param referenceOptions + * @param path + */ + value: function parse(options, referenceOptions, path) { + for (var option in options) { + if (options.hasOwnProperty(option)) { + Validator.check(option, options, referenceOptions, path); + } + } + } + }, { + key: 'check', + + /** + * Check every value. If the value is an object, call the parse function on that object. + * @param option + * @param options + * @param referenceOptions + * @param path + */ + value: function check(option, options, referenceOptions, path) { + if (referenceOptions[option] === undefined && referenceOptions.__any__ === undefined) { + Validator.getSuggestion(option, referenceOptions, path); + } else if (referenceOptions[option] === undefined && referenceOptions.__any__ !== undefined) { + // __any__ is a wildcard. Any value is accepted and will be further analysed by reference. + if (Validator.getType(options[option]) === 'object') { + util.copyAndExtendArray(path, option); + Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions.__any__.__type__, path, true); + } + } else { + // Since all options in the reference are objects, we can check whether they are supposed to be object to look for the __type__ field. + if (referenceOptions[option].__type__ !== undefined) { + util.copyAndExtendArray(path, option); + // if this should be an object, we check if the correct type has been supplied to account for shorthand options. + Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option].__type__, path, true); + } else { + Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option], path, false); + } + } + } + }, { + key: 'checkFields', + + /** + * + * @param {String} option | the option property + * @param {Object} options | The supplied options object + * @param {Object} referenceOptions | The reference options containing all options and their allowed formats + * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag. + * @param {String} refOptionType | This is the type object from the reference options + * @param path + * @param recursive + */ + value: function checkFields(option, options, referenceOptions, referenceOption, refOptionObj, path, recursive) { + var optionType = Validator.getType(options[option]); + var refOptionType = refOptionObj[optionType]; + if (refOptionType !== undefined) { + // if the type is correct, we check if it is supposed to be one of a few select values + if (Validator.getType(refOptionType) === 'array') { + if (refOptionType.indexOf(options[option]) === -1) { + console.log('%cInvalid option detected in "' + option + '".' + ' Allowed values are:' + Validator.print(refOptionType) + ' not "' + options[option] + '". ' + Validator.printLocation(path, option), printStyle); + errorFound = true; + } else if (recursive === true) { + Validator.parse(options[option], referenceOptions[referenceOption], path); + } + } else if (recursive === true) { + Validator.parse(options[option], referenceOptions[referenceOption], path); + } + } else { + // type of the field is incorrect + console.log('%cInvalid type received for "' + option + '". Expected: ' + Validator.print(Object.keys(referenceOptions[referenceOption].__type__)) + '. Received [' + optionType + '] "' + options[option] + '"' + Validator.printLocation(path, option), printStyle); + errorFound = true; + } + } + }, { + key: 'getType', + value: function getType(object) { + var type = typeof object; + + if (type === 'object') { + if (object === null) { + return 'null'; + } + if (object instanceof Boolean) { + return 'boolean'; + } + if (object instanceof Number) { + return 'number'; + } + if (object instanceof String) { + return 'string'; + } + if (Array.isArray(object)) { + return 'array'; + } + if (object instanceof Date) { + return 'date'; + } + if (object.nodeType !== undefined) { + return 'dom'; + } + return 'object'; + } else if (type === 'number') { + return 'number'; + } else if (type === 'boolean') { + return 'boolean'; + } else if (type === 'string') { + return 'string'; + } else if (type === undefined) { + return 'undefined'; + } + return type; + } + }, { + key: 'getSuggestion', + value: function getSuggestion(option, options, path) { + var closestMatch = ''; + var min = 1000000000; + var threshold = 10; + for (var op in options) { + var distance = Validator.levenshteinDistance(option, op); + if (min > distance && distance < threshold) { + closestMatch = op; + min = distance; + } + } + + if (min < threshold) { + console.log('%cUnknown option detected: "' + option + '". Did you mean "' + closestMatch + '"?' + Validator.printLocation(path, option), printStyle); + } else { + console.log('%cUnknown option detected: "' + option + '". Did you mean one of these: ' + Validator.print(Object.keys(options)) + Validator.printLocation(path, option), printStyle); + } + + errorFound = true; + return closestMatch; + } + }, { + key: 'printLocation', + value: function printLocation(path, option) { + var str = '\n\nProblem value found at: \noptions = {\n'; + for (var i = 0; i < path.length; i++) { + for (var j = 0; j < i + 1; j++) { + str += ' '; + } + str += path[i] + ': {\n'; + } + for (var j = 0; j < path.length + 1; j++) { + str += ' '; + } + str += option + '\n'; + for (var i = 0; i < path.length + 1; i++) { + for (var j = 0; j < path.length - i; j++) { + str += ' '; + } + str += '}\n'; + } + return str + '\n\n'; + } + }, { + key: 'print', + value: function print(options) { + return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, '').replace(/(\,)/g, ', '); + } + }, { + key: 'levenshteinDistance', + + // Compute the edit distance between the two given strings + // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript + /* + Copyright (c) 2011 Andrei Mackenzie + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + value: function levenshteinDistance(a, b) { + if (a.length === 0) { + return b.length; + }if (b.length === 0) { + return a.length; + }var matrix = []; + + // increment along the first column of each row + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + + // increment each column in the first row + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + + // Fill in the rest of the matrix + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) == a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution + Math.min(matrix[i][j - 1] + 1, // insertion + matrix[i - 1][j] + 1)); // deletion + } + } + } + + return matrix[b.length][a.length]; + } + }]); + + return Validator; + })(); + + exports['default'] = Validator; + exports.printStyle = printStyle; + +/***/ }, +/* 63 */ /***/ function(module, exports, __webpack_require__) { /** @@ -26156,12 +26458,12 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 63 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var keycharm = __webpack_require__(79); + var keycharm = __webpack_require__(83); var Emitter = __webpack_require__(42); var Hammer = __webpack_require__(41); var util = __webpack_require__(1); @@ -26309,7 +26611,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Activator; /***/ }, -/* 64 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {//! moment.js @@ -29395,10 +29697,10 @@ return /******/ (function(modules) { // webpackBootstrap return _moment; })); - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(81)(module))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(85)(module))) /***/ }, -/* 65 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;'use strict'; @@ -29626,7 +29928,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 66 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.4 - 2014-09-28 @@ -32081,7 +32383,7 @@ return /******/ (function(modules) { // webpackBootstrap prefixed: prefixed }); - if ("function" == TYPE_FUNCTION && __webpack_require__(82)) { + if ("function" == TYPE_FUNCTION && __webpack_require__(86)) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { return Hammer; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -32095,7 +32397,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 67 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32110,66 +32412,70 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Label = __webpack_require__(68); + var _Label = __webpack_require__(69); var _Label2 = _interopRequireWildcard(_Label); - var _Box = __webpack_require__(83); + var _Box = __webpack_require__(92); var _Box2 = _interopRequireWildcard(_Box); - var _Circle = __webpack_require__(84); + var _Circle = __webpack_require__(93); var _Circle2 = _interopRequireWildcard(_Circle); - var _CircularImage = __webpack_require__(85); + var _CircularImage = __webpack_require__(94); var _CircularImage2 = _interopRequireWildcard(_CircularImage); - var _Database = __webpack_require__(86); + var _Database = __webpack_require__(95); var _Database2 = _interopRequireWildcard(_Database); - var _Diamond = __webpack_require__(87); + var _Diamond = __webpack_require__(96); var _Diamond2 = _interopRequireWildcard(_Diamond); - var _Dot = __webpack_require__(88); + var _Dot = __webpack_require__(97); var _Dot2 = _interopRequireWildcard(_Dot); - var _Ellipse = __webpack_require__(89); + var _Ellipse = __webpack_require__(98); var _Ellipse2 = _interopRequireWildcard(_Ellipse); - var _Icon = __webpack_require__(90); + var _Icon = __webpack_require__(99); var _Icon2 = _interopRequireWildcard(_Icon); - var _Image = __webpack_require__(91); + var _Image = __webpack_require__(100); var _Image2 = _interopRequireWildcard(_Image); - var _Square = __webpack_require__(92); + var _Square = __webpack_require__(101); var _Square2 = _interopRequireWildcard(_Square); - var _Star = __webpack_require__(93); + var _Star = __webpack_require__(102); var _Star2 = _interopRequireWildcard(_Star); - var _Text = __webpack_require__(94); + var _Text = __webpack_require__(103); var _Text2 = _interopRequireWildcard(_Text); - var _Triangle = __webpack_require__(95); + var _Triangle = __webpack_require__(104); var _Triangle2 = _interopRequireWildcard(_Triangle); - var _TriangleDown = __webpack_require__(96); + var _TriangleDown = __webpack_require__(105); var _TriangleDown2 = _interopRequireWildcard(_TriangleDown); + var _Validator = __webpack_require__(62); + + var _Validator2 = _interopRequireWildcard(_Validator); + var util = __webpack_require__(1); /** @@ -32283,14 +32589,17 @@ return /******/ (function(modules) { // webpackBootstrap } if (options.x !== undefined) { - this.x = options.x;this.predefinedPosition = true; + this.x = parseInt(options.x);this.predefinedPosition = true; } if (options.y !== undefined) { - this.y = options.y;this.predefinedPosition = true; + this.y = parseInt(options.y);this.predefinedPosition = true; } if (options.size !== undefined) { this.baseSize = options.size; } + if (options.value !== undefined) { + options.value = parseInt(options.value); + } // this transforms all shorthands into fully defined options Node.parseOptions(this.options, options); @@ -32564,7 +32873,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32874,7 +33183,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -32889,19 +33198,19 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Label = __webpack_require__(68); + var _Label = __webpack_require__(69); var _Label2 = _interopRequireWildcard(_Label); - var _BezierEdgeDynamic = __webpack_require__(97); + var _BezierEdgeDynamic = __webpack_require__(87); var _BezierEdgeDynamic2 = _interopRequireWildcard(_BezierEdgeDynamic); - var _BezierEdgeStatic = __webpack_require__(98); + var _BezierEdgeStatic = __webpack_require__(88); var _BezierEdgeStatic2 = _interopRequireWildcard(_BezierEdgeStatic); - var _StraightEdge = __webpack_require__(99); + var _StraightEdge = __webpack_require__(89); var _StraightEdge2 = _interopRequireWildcard(_StraightEdge); @@ -32985,6 +33294,9 @@ return /******/ (function(modules) { // webpackBootstrap if (options.title !== undefined) { this.title = options.title; } + if (options.value !== undefined) { + options.value = parseInt(options.value); + } // A node is connected when it has a from and to node that both exist in the network.body.nodes. this.connect(); @@ -33405,7 +33717,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 70 */ +/* 71 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -33885,7 +34197,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 71 */ +/* 72 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -33980,7 +34292,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 72 */ +/* 73 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34071,7 +34383,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 73 */ +/* 74 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34180,7 +34492,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 74 */ +/* 75 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34301,7 +34613,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 75 */ +/* 76 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -34360,7 +34672,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 76 */ +/* 77 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -34377,7 +34689,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _Node2 = __webpack_require__(67); + var _Node2 = __webpack_require__(68); var _Node3 = _interopRequireWildcard(_Node2); @@ -34404,50 +34716,6 @@ return /******/ (function(modules) { // webpackBootstrap exports['default'] = Cluster; module.exports = exports['default']; -/***/ }, -/* 77 */ -/***/ function(module, exports, __webpack_require__) { - - // English - 'use strict'; - - exports.en = { - edit: 'Edit', - del: 'Delete selected', - back: 'Back', - addNode: 'Add Node', - addEdge: 'Add Edge', - editNode: 'Edit Node', - editEdge: 'Edit Edge', - addDescription: 'Click in an empty space to place a new node.', - edgeDescription: 'Click on a node and drag the edge to another node to connect them.', - editEdgeDescription: 'Click on the control points and drag them to a node to connect to it.', - createEdgeError: 'Cannot link edges to a cluster.', - deleteClusterError: 'Clusters cannot be deleted.', - editClusterError: 'Clusters cannot be edited.' - }; - exports.en_EN = exports.en; - exports.en_US = exports.en; - - // Dutch - exports.nl = { - edit: 'Wijzigen', - del: 'Selectie verwijderen', - back: 'Terug', - addNode: 'Node toevoegen', - addEdge: 'Link toevoegen', - editNode: 'Node wijzigen', - editEdge: 'Link wijzigen', - addDescription: 'Klik op een leeg gebied om een nieuwe node te maken.', - edgeDescription: 'Klik op een node en sleep de link naar een andere node om ze te verbinden.', - editEdgeDescription: 'Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.', - createEdgeError: 'Kan geen link maken naar een cluster.', - deleteClusterError: 'Clusters kunnen niet worden verwijderd.', - editClusterError: 'Clusters kunnen niet worden aangepast.' - }; - exports.nl_NL = exports.nl; - exports.nl_BE = exports.nl; - /***/ }, /* 78 */ /***/ function(module, exports, __webpack_require__) { @@ -34461,1304 +34729,1543 @@ return /******/ (function(modules) { // webpackBootstrap Object.defineProperty(exports, '__esModule', { value: true }); + var util = __webpack_require__(1); var Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(44); - var util = __webpack_require__(1); - - var ColorPicker = (function () { - function ColorPicker() { - var pixelRatio = arguments[0] === undefined ? 1 : arguments[0]; - - _classCallCheck(this, ColorPicker); + var keycharm = __webpack_require__(83); - this.pixelRatio = pixelRatio; - this.generated = false; - this.centerCoordinates = { x: 289 / 2, y: 289 / 2 }; - this.r = 289 * 0.49; - this.color = { r: 255, g: 255, b: 255, a: 1 }; - this.hueCircle = undefined; - this.initialColor = { r: 255, g: 255, b: 255, a: 1 }; - this.previousColor = undefined; - this.applied = false; + var NavigationHandler = (function () { + function NavigationHandler(body, canvas) { + var _this = this; - // bound by - this.updateCallback = function () {}; + _classCallCheck(this, NavigationHandler); - // create all DOM elements - this._create(); - } + this.body = body; + this.canvas = canvas; - _createClass(ColorPicker, [{ - key: 'insertTo', + this.iconsCreated = false; + this.navigationHammers = []; + this.boundFunctions = {}; + this.touchTime = 0; + this.activated = false; - /** - * this inserts the colorPicker into a div from the DOM - * @param container - */ - value: function insertTo(container) { - if (this.hammer !== undefined) { - this.hammer.destroy(); - this.hammer = undefined; + this.body.emitter.on('release', this._stopMovement.bind(this)); + this.body.emitter.on('activate', function () { + _this.activated = true;_this.configureKeyboardBindings(); + }); + this.body.emitter.on('deactivate', function () { + _this.activated = false;_this.configureKeyboardBindings(); + }); + this.body.emitter.on('destroy', function () { + if (_this.keycharm !== undefined) { + _this.keycharm.destroy(); } - this.container = container; - this.container.appendChild(this.frame); - this._bindHammer(); + }); - this._setSize(); - } - }, { - key: 'setCallback', + this.options = {}; + } - /** - * the callback is executed on apply and save. Bind it to the application - * @param callback - */ - value: function setCallback(callback) { - if (typeof callback === 'function') { - this.updateCallback = callback; - } else { - throw new Error('Function attempted to set as colorPicker callback is not a function.'); + _createClass(NavigationHandler, [{ + key: 'setOptions', + value: function setOptions(options) { + if (options !== undefined) { + this.options = options; + this.create(); } } }, { - key: '_isColorString', - value: function _isColorString(color) { - var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' }; - if (typeof color === 'string') { - return htmlColors[color]; + key: 'create', + value: function create() { + if (this.options.navigationButtons === true) { + if (this.iconsCreated === false) { + this.loadNavigationElements(); + } + } else if (this.iconsCreated === true) { + this.cleanNavigation(); } + + this.configureKeyboardBindings(); } }, { - key: 'setColor', - - /** - * Set the color of the colorPicker - * Supported formats: - * 'red' --> HTML color string - * '#ffffff' --> hex string - * 'rbg(255,255,255)' --> rgb string - * 'rgba(255,255,255,1.0)' --> rgba string - * {r:255,g:255,b:255} --> rgb object - * {r:255,g:255,b:255,a:1.0} --> rgba object - * @param color - * @param setInitial - */ - value: function setColor(color) { - var setInitial = arguments[1] === undefined ? true : arguments[1]; - - if (color === 'none') { - return; + key: 'cleanNavigation', + value: function cleanNavigation() { + // clean hammer bindings + if (this.navigationHammers.length != 0) { + for (var i = 0; i < this.navigationHammers.length; i++) { + this.navigationHammers[i].destroy(); + } + this.navigationHammers = []; } - var rgba = undefined; - - // if a html color shorthand is used, convert to hex - var htmlColor = this._isColorString(color); - if (htmlColor !== undefined) { - color = htmlColor; - } + this._navigationReleaseOverload = function () {}; - // check format - if (util.isString(color) === true) { - if (util.isValidRGB(color) === true) { - var rgbaArray = color.substr(4).substr(0, color.length - 5).split(','); - rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1 }; - } else if (util.isValidRGBA(color) === true) { - var rgbaArray = color.substr(5).substr(0, color.length - 6).split(','); - rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: rgbaArray[3] }; - } else if (util.isValidHex(color) === true) { - var rgbObj = util.hexToRGB(color); - rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1 }; - } - } else { - if (color instanceof Object) { - if (color.r !== undefined && color.g !== undefined && color.b !== undefined) { - var alpha = color.a !== undefined ? color.a : '1.0'; - rgba = { r: color.r, g: color.g, b: color.b, a: alpha }; - } - } + // clean up previous navigation items + if (this.navigationDOM && this.navigationDOM.wrapper && this.navigationDOM.wrapper.parentNode) { + this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper); } - // set color - if (rgba === undefined) { - throw new Error('Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: ' + JSON.stringify(color)); - } else { - this._setColor(rgba, setInitial); - } + this.iconsCreated = false; } }, { - key: 'show', + key: 'loadNavigationElements', /** - * this shows the color picker at a location. The hue circle is constructed once and stored. - * @param x - * @param y + * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation + * they have a triggerFunction which is called on click. If the position of the navigation controls is dependent + * on this.frame.canvas.clientWidth or this.frame.canvas.clientHeight, we flag horizontalAlignLeft and verticalAlignTop false. + * This means that the location will be corrected by the _relocateNavigation function on a size change of the canvas. + * + * @private */ - value: function show(x, y) { - this.applied = false; - this.frame.style.display = 'block'; - this.frame.style.top = y + 'px'; - this.frame.style.left = x + 'px'; - this._generateHueCircle(); - } - }, { - key: '_hide', + value: function loadNavigationElements() { + this.cleanNavigation(); - // ------------------------------------------ PRIVATE ----------------------------- // + this.navigationDOM = {}; + var navigationDivs = ['up', 'down', 'left', 'right', 'zoomIn', 'zoomOut', 'zoomExtends']; + var navigationDivActions = ['_moveUp', '_moveDown', '_moveLeft', '_moveRight', '_zoomIn', '_zoomOut', '_fit']; - /** - * Hide the picker. Is called by the cancel button. - * Optional boolean to store the previous color for easy access later on. - * @param storePrevious - * @private - */ - value: function _hide() { - var storePrevious = arguments[0] === undefined ? true : arguments[0]; + this.navigationDOM.wrapper = document.createElement('div'); + this.navigationDOM.wrapper.className = 'vis-navigation'; + this.canvas.frame.appendChild(this.navigationDOM.wrapper); - // store the previous color for next time; - if (storePrevious === true) { - this.previousColor = util.extend({}, this.color); - } + for (var i = 0; i < navigationDivs.length; i++) { + this.navigationDOM[navigationDivs[i]] = document.createElement('div'); + this.navigationDOM[navigationDivs[i]].className = 'vis-button vis-' + navigationDivs[i]; + this.navigationDOM.wrapper.appendChild(this.navigationDOM[navigationDivs[i]]); - if (this.applied === true) { - this.updateCallback(this.initialColor); + var hammer = new Hammer(this.navigationDOM[navigationDivs[i]]); + if (navigationDivActions[i] === '_fit') { + hammerUtil.onTouch(hammer, this._fit.bind(this)); + } else { + hammerUtil.onTouch(hammer, this.bindToRedraw.bind(this, navigationDivActions[i])); + } + + this.navigationHammers.push(hammer); } - this.frame.style.display = 'none'; + this.iconsCreated = true; } }, { - key: '_save', - - /** - * bound to the save button. Saves and hides. - * @private - */ - value: function _save() { - this.updateCallback(this.color); - this.applied = false; - this._hide(); + key: 'bindToRedraw', + value: function bindToRedraw(action) { + if (this.boundFunctions[action] === undefined) { + this.boundFunctions[action] = this[action].bind(this); + this.body.emitter.on('initRedraw', this.boundFunctions[action]); + this.body.emitter.emit('_startRendering'); + } } }, { - key: '_apply', - - /** - * Bound to apply button. Saves but does not close. Is undone by the cancel button. - * @private - */ - value: function _apply() { - this.applied = true; - this.updateCallback(this.color); - this._updatePicker(this.color); + key: 'unbindFromRedraw', + value: function unbindFromRedraw(action) { + if (this.boundFunctions[action] !== undefined) { + this.body.emitter.off('initRedraw', this.boundFunctions[action]); + this.body.emitter.emit('_stopRendering'); + delete this.boundFunctions[action]; + } } }, { - key: '_loadLast', + key: '_fit', /** - * load the color from the previous session. + * this stops all movement induced by the navigation buttons + * * @private */ - value: function _loadLast() { - if (this.previousColor !== undefined) { - this.setColor(this.previousColor, false); - } else { - alert('There is no last color to load...'); + value: function _fit() { + if (new Date().valueOf() - this.touchTime > 700) { + // TODO: fix ugly hack to avoid hammer's double fireing of event (because we use release?) + this.body.emitter.emit('fit', { duration: 700 }); + this.touchTime = new Date().valueOf(); } } }, { - key: '_setColor', + key: '_stopMovement', /** - * set the color, place the picker - * @param rgba - * @param setInitial + * this stops all movement induced by the navigation buttons + * * @private */ - value: function _setColor(rgba) { - var setInitial = arguments[1] === undefined ? true : arguments[1]; - - // store the initial color - if (setInitial === true) { - this.initialColor = util.extend({}, rgba); + value: function _stopMovement() { + for (var boundAction in this.boundFunctions) { + if (this.boundFunctions.hasOwnProperty(boundAction)) { + this.body.emitter.off('initRedraw', this.boundFunctions[boundAction]); + this.body.emitter.emit('_stopRendering'); + } } - - this.color = rgba; - var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); - - var angleConvert = 2 * Math.PI; - var radius = this.r * hsv.s; - var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h); - var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h); - - this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px'; - this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px'; - - this._updatePicker(rgba); + this.boundFunctions = {}; } }, { - key: '_setOpacity', - - /** - * bound to opacity control - * @param value - * @private - */ - value: function _setOpacity(value) { - this.color.a = value / 100; - this._updatePicker(this.color); + key: '_moveUp', + value: function _moveUp() { + this.body.view.translation.y += this.options.keyboard.speed.y; } }, { - key: '_setBrightness', - - /** - * bound to brightness control - * @param value - * @private - */ - value: function _setBrightness(value) { - var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); - hsv.v = value / 100; - var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); - rgba.a = this.color.a; - this.color = rgba; - this._updatePicker(); + key: '_moveDown', + value: function _moveDown() { + this.body.view.translation.y -= this.options.keyboard.speed.y; } }, { - key: '_updatePicker', - - /** - * update the colorpicker. A black circle overlays the hue circle to mimic the brightness decreasing. - * @param rgba - * @private - */ - value: function _updatePicker() { - var rgba = arguments[0] === undefined ? this.color : arguments[0]; - - var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); - var ctx = this.colorPickerCanvas.getContext('2d'); - if (this.pixelRation === undefined) { - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - } - ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - - // clear the canvas - var w = this.colorPickerCanvas.clientWidth; - var h = this.colorPickerCanvas.clientHeight; - ctx.clearRect(0, 0, w, h); - - ctx.putImageData(this.hueCircle, 0, 0); - ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')'; - ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); - ctx.fill(); - - this.brightnessRange.value = 100 * hsv.v; - this.opacityRange.value = 100 * rgba.a; - - this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; - this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + key: '_moveLeft', + value: function _moveLeft() { + this.body.view.translation.x += this.options.keyboard.speed.x; } }, { - key: '_setSize', - - /** - * used by create to set the size of the canvas. - * @private - */ - value: function _setSize() { - this.colorPickerCanvas.style.width = '100%'; - this.colorPickerCanvas.style.height = '100%'; - - this.colorPickerCanvas.width = 289 * this.pixelRatio; - this.colorPickerCanvas.height = 289 * this.pixelRatio; + key: '_moveRight', + value: function _moveRight() { + this.body.view.translation.x -= this.options.keyboard.speed.x; } }, { - key: '_create', + key: '_zoomIn', + value: function _zoomIn() { + this.body.view.scale *= 1 + this.options.keyboard.speed.zoom; + } + }, { + key: '_zoomOut', + value: function _zoomOut() { + this.body.view.scale /= 1 + this.options.keyboard.speed.zoom; + } + }, { + key: 'configureKeyboardBindings', /** - * create all dom elements - * TODO: cleanup, lots of similar dom elements - * @private + * bind all keys using keycharm. */ - value: function _create() { - this.frame = document.createElement('div'); - this.frame.className = 'vis-color-picker'; - - this.colorPickerDiv = document.createElement('div'); - this.colorPickerSelector = document.createElement('div'); - this.colorPickerSelector.className = 'vis-selector'; - this.colorPickerDiv.appendChild(this.colorPickerSelector); - - this.colorPickerCanvas = document.createElement('canvas'); - this.colorPickerDiv.appendChild(this.colorPickerCanvas); - - if (!this.colorPickerCanvas.getContext) { - var noCanvas = document.createElement('DIV'); - noCanvas.style.color = 'red'; - noCanvas.style.fontWeight = 'bold'; - noCanvas.style.padding = '10px'; - noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; - this.colorPickerCanvas.appendChild(noCanvas); - } else { - var ctx = this.colorPickerCanvas.getContext('2d'); - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - - this.colorPickerCanvas.getContext('2d').setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + value: function configureKeyboardBindings() { + if (this.keycharm !== undefined) { + this.keycharm.destroy(); } - this.colorPickerDiv.className = 'vis-color'; + if (this.options.keyboard.enabled === true) { - this.opacityDiv = document.createElement('div'); - this.opacityDiv.className = 'vis-opacity'; + if (this.options.keyboard.bindToWindow === true) { + this.keycharm = keycharm({ container: window, preventDefault: false }); + } else { + this.keycharm = keycharm({ container: this.canvas.frame, preventDefault: false }); + } - this.brightnessDiv = document.createElement('div'); - this.brightnessDiv.className = 'vis-brightness'; + this.keycharm.reset(); - this.arrowDiv = document.createElement('div'); - this.arrowDiv.className = 'vis-arrow'; + if (this.activated === true) { + this.keycharm.bind('up', this.bindToRedraw.bind(this, '_moveUp'), 'keydown'); + this.keycharm.bind('down', this.bindToRedraw.bind(this, '_moveDown'), 'keydown'); + this.keycharm.bind('left', this.bindToRedraw.bind(this, '_moveLeft'), 'keydown'); + this.keycharm.bind('right', this.bindToRedraw.bind(this, '_moveRight'), 'keydown'); + this.keycharm.bind('=', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); + this.keycharm.bind('num+', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); + this.keycharm.bind('num-', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); + this.keycharm.bind('-', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); + this.keycharm.bind('[', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); + this.keycharm.bind(']', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); + this.keycharm.bind('pageup', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); + this.keycharm.bind('pagedown', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); - this.opacityRange = document.createElement('input'); - this.opacityRange.type = 'range'; - this.opacityRange.min = '0'; - this.opacityRange.max = '100'; - this.opacityRange.value = '100'; - this.opacityRange.className = 'vis-range'; + this.keycharm.bind('up', this.unbindFromRedraw.bind(this, '_moveUp'), 'keyup'); + this.keycharm.bind('down', this.unbindFromRedraw.bind(this, '_moveDown'), 'keyup'); + this.keycharm.bind('left', this.unbindFromRedraw.bind(this, '_moveLeft'), 'keyup'); + this.keycharm.bind('right', this.unbindFromRedraw.bind(this, '_moveRight'), 'keyup'); + this.keycharm.bind('=', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); + this.keycharm.bind('num+', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); + this.keycharm.bind('num-', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); + this.keycharm.bind('-', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); + this.keycharm.bind('[', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); + this.keycharm.bind(']', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); + this.keycharm.bind('pageup', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); + this.keycharm.bind('pagedown', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); + } + } + } + }]); - this.brightnessRange = document.createElement('input'); - this.brightnessRange.type = 'range'; - this.brightnessRange.min = '0'; - this.brightnessRange.max = '100'; - this.brightnessRange.value = '100'; - this.brightnessRange.className = 'vis-range'; + return NavigationHandler; + })(); - this.opacityDiv.appendChild(this.opacityRange); - this.brightnessDiv.appendChild(this.brightnessRange); + exports['default'] = NavigationHandler; + module.exports = exports['default']; - var me = this; - this.opacityRange.onchange = function () { - me._setOpacity(this.value); - }; - this.opacityRange.oninput = function () { - me._setOpacity(this.value); - }; - this.brightnessRange.onchange = function () { - me._setBrightness(this.value); - }; - this.brightnessRange.oninput = function () { - me._setBrightness(this.value); - }; +/***/ }, +/* 79 */ +/***/ function(module, exports, __webpack_require__) { - this.brightnessLabel = document.createElement('div'); - this.brightnessLabel.className = 'vis-label vis-brightness'; - this.brightnessLabel.innerHTML = 'brightness:'; + 'use strict'; - this.opacityLabel = document.createElement('div'); - this.opacityLabel.className = 'vis-label vis-opacity'; - this.opacityLabel.innerHTML = 'opacity:'; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - this.newColorDiv = document.createElement('div'); - this.newColorDiv.className = 'vis-new-color'; - this.newColorDiv.innerHTML = 'new'; + 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; }; })(); - this.initialColorDiv = document.createElement('div'); - this.initialColorDiv.className = 'vis-initial-color'; - this.initialColorDiv.innerHTML = 'initial'; + Object.defineProperty(exports, '__esModule', { + value: true + }); + /** + * Popup is a class to create a popup window with some text + * @param {Element} container The container object. + * @param {Number} [x] + * @param {Number} [y] + * @param {String} [text] + * @param {Object} [style] An object containing borderColor, + * backgroundColor, etc. + */ - this.cancelButton = document.createElement('div'); - this.cancelButton.className = 'vis-button vis-cancel'; - this.cancelButton.innerHTML = 'cancel'; - this.cancelButton.onclick = this._hide.bind(this, false); + var Popup = (function () { + function Popup(container) { + _classCallCheck(this, Popup); - this.applyButton = document.createElement('div'); - this.applyButton.className = 'vis-button vis-apply'; - this.applyButton.innerHTML = 'apply'; - this.applyButton.onclick = this._apply.bind(this); + this.container = container; - this.saveButton = document.createElement('div'); - this.saveButton.className = 'vis-button vis-save'; - this.saveButton.innerHTML = 'save'; - this.saveButton.onclick = this._save.bind(this); + this.x = 0; + this.y = 0; + this.padding = 5; + this.hidden = false; - this.loadButton = document.createElement('div'); - this.loadButton.className = 'vis-button vis-load'; - this.loadButton.innerHTML = 'load last'; - this.loadButton.onclick = this._loadLast.bind(this); + // create the frame + this.frame = document.createElement('div'); + this.frame.className = 'vis-network-tooltip'; + this.container.appendChild(this.frame); + } - this.frame.appendChild(this.colorPickerDiv); - this.frame.appendChild(this.arrowDiv); - this.frame.appendChild(this.brightnessLabel); - this.frame.appendChild(this.brightnessDiv); - this.frame.appendChild(this.opacityLabel); - this.frame.appendChild(this.opacityDiv); - this.frame.appendChild(this.newColorDiv); - this.frame.appendChild(this.initialColorDiv); + _createClass(Popup, [{ + key: 'setPosition', - this.frame.appendChild(this.cancelButton); - this.frame.appendChild(this.applyButton); - this.frame.appendChild(this.saveButton); - this.frame.appendChild(this.loadButton); + /** + * @param {number} x Horizontal position of the popup window + * @param {number} y Vertical position of the popup window + */ + value: function setPosition(x, y) { + this.x = parseInt(x); + this.y = parseInt(y); } }, { - key: '_bindHammer', + key: 'setText', /** - * bind hammer to the color picker - * @private + * Set the content for the popup window. This can be HTML code or text. + * @param {string | Element} content */ - value: function _bindHammer() { - var _this = this; - - this.drag = {}; - this.pinch = {}; - this.hammer = new Hammer(this.colorPickerCanvas); - this.hammer.get('pinch').set({ enable: true }); - - hammerUtil.onTouch(this.hammer, function (event) { - _this._moveSelector(event); - }); - this.hammer.on('tap', function (event) { - _this._moveSelector(event); - }); - this.hammer.on('panstart', function (event) { - _this._moveSelector(event); - }); - this.hammer.on('panmove', function (event) { - _this._moveSelector(event); - }); - this.hammer.on('panend', function (event) { - _this._moveSelector(event); - }); + value: function setText(content) { + if (content instanceof Element) { + this.frame.innerHTML = ''; + this.frame.appendChild(content); + } else { + this.frame.innerHTML = content; // string containing text or HTML + } } }, { - key: '_generateHueCircle', + key: 'show', /** - * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. - * @private + * Show the popup window + * @param {boolean} [doShow] Show or hide the window */ - value: function _generateHueCircle() { - if (this.generated === false) { - var ctx = this.colorPickerCanvas.getContext('2d'); - if (this.pixelRation === undefined) { - this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - } - ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + value: function show(doShow) { + if (doShow === undefined) { + doShow = true; + } - // clear the canvas - var w = this.colorPickerCanvas.clientWidth; - var h = this.colorPickerCanvas.clientHeight; - ctx.clearRect(0, 0, w, h); + if (doShow === true) { + var height = this.frame.clientHeight; + var width = this.frame.clientWidth; + var maxHeight = this.frame.parentNode.clientHeight; + var maxWidth = this.frame.parentNode.clientWidth; - // draw hue circle - var x = undefined, - y = undefined, - hue = undefined, - sat = undefined; - this.centerCoordinates = { x: w * 0.5, y: h * 0.5 }; - this.r = 0.49 * w; - var angleConvert = 2 * Math.PI / 360; - var hfac = 1 / 360; - var sfac = 1 / this.r; - var rgb = undefined; - for (hue = 0; hue < 360; hue++) { - for (sat = 0; sat < this.r; sat++) { - x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue); - y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue); - rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1); - ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')'; - ctx.fillRect(x - 0.5, y - 0.5, 2, 2); - } + var top = this.y - height; + if (top + height + this.padding > maxHeight) { + top = maxHeight - height - this.padding; + } + if (top < this.padding) { + top = this.padding; } - ctx.strokeStyle = 'rgba(0,0,0,1)'; - ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); - ctx.stroke(); - this.hueCircle = ctx.getImageData(0, 0, w, h); + var left = this.x; + if (left + width + this.padding > maxWidth) { + left = maxWidth - width - this.padding; + } + if (left < this.padding) { + left = this.padding; + } + + this.frame.style.left = left + 'px'; + this.frame.style.top = top + 'px'; + this.frame.style.visibility = 'visible'; + this.hidden = false; + } else { + this.hide(); } - this.generated = true; } }, { - key: '_moveSelector', + key: 'hide', /** - * move the selector. This is called by hammer functions. - * - * @param event - * @private + * Hide the popup window */ - value: function _moveSelector(event) { - var rect = this.colorPickerDiv.getBoundingClientRect(); - var left = event.center.x - rect.left; - var top = event.center.y - rect.top; - - var centerY = 0.5 * this.colorPickerDiv.clientHeight; - var centerX = 0.5 * this.colorPickerDiv.clientWidth; - - var x = left - centerX; - var y = top - centerY; - - var angle = Math.atan2(x, y); - var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX); - - var newTop = Math.cos(angle) * radius + centerY; - var newLeft = Math.sin(angle) * radius + centerX; - - this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px'; - this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px'; - - // set color - var h = angle / (2 * Math.PI); - h = h < 0 ? h + 1 : h; - var s = radius / this.r; - var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); - hsv.h = h; - hsv.s = s; - var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); - rgba.a = this.color.a; - this.color = rgba; - - // update previews - this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; - this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + value: function hide() { + this.hidden = true; + this.frame.style.visibility = 'hidden'; } }]); - return ColorPicker; + return Popup; })(); - exports['default'] = ColorPicker; + exports['default'] = Popup; module.exports = exports['default']; /***/ }, -/* 79 */ +/* 80 */ /***/ function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; - /** - * Created by Alex on 11/6/2014. - */ + // English + 'use strict'; - // https://github.com/umdjs/umd/blob/master/returnExports.js#L40-L60 - // if the module has no dependencies, the above pattern can be simplified to - (function (root, factory) { - if (true) { - // AMD. Register as an anonymous module. - !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.keycharm = factory(); - } - }(this, function () { + exports.en = { + edit: 'Edit', + del: 'Delete selected', + back: 'Back', + addNode: 'Add Node', + addEdge: 'Add Edge', + editNode: 'Edit Node', + editEdge: 'Edit Edge', + addDescription: 'Click in an empty space to place a new node.', + edgeDescription: 'Click on a node and drag the edge to another node to connect them.', + editEdgeDescription: 'Click on the control points and drag them to a node to connect to it.', + createEdgeError: 'Cannot link edges to a cluster.', + deleteClusterError: 'Clusters cannot be deleted.', + editClusterError: 'Clusters cannot be edited.' + }; + exports.en_EN = exports.en; + exports.en_US = exports.en; - function keycharm(options) { - var preventDefault = options && options.preventDefault || false; + // Dutch + exports.nl = { + edit: 'Wijzigen', + del: 'Selectie verwijderen', + back: 'Terug', + addNode: 'Node toevoegen', + addEdge: 'Link toevoegen', + editNode: 'Node wijzigen', + editEdge: 'Link wijzigen', + addDescription: 'Klik op een leeg gebied om een nieuwe node te maken.', + edgeDescription: 'Klik op een node en sleep de link naar een andere node om ze te verbinden.', + editEdgeDescription: 'Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.', + createEdgeError: 'Kan geen link maken naar een cluster.', + deleteClusterError: 'Clusters kunnen niet worden verwijderd.', + editClusterError: 'Clusters kunnen niet worden aangepast.' + }; + exports.nl_NL = exports.nl; + exports.nl_BE = exports.nl; - var container = options && options.container || window; - var _exportFunctions = {}; - var _bound = {keydown:{}, keyup:{}}; - var _keys = {}; - var i; +/***/ }, +/* 81 */ +/***/ function(module, exports, __webpack_require__) { - // a - z - for (i = 97; i <= 122; i++) {_keys[String.fromCharCode(i)] = {code:65 + (i - 97), shift: false};} - // A - Z - for (i = 65; i <= 90; i++) {_keys[String.fromCharCode(i)] = {code:i, shift: true};} - // 0 - 9 - for (i = 0; i <= 9; i++) {_keys['' + i] = {code:48 + i, shift: false};} - // F1 - F12 - for (i = 1; i <= 12; i++) {_keys['F' + i] = {code:111 + i, shift: false};} - // num0 - num9 - for (i = 0; i <= 9; i++) {_keys['num' + i] = {code:96 + i, shift: false};} + 'use strict'; - // numpad misc - _keys['num*'] = {code:106, shift: false}; - _keys['num+'] = {code:107, shift: false}; - _keys['num-'] = {code:109, shift: false}; - _keys['num/'] = {code:111, shift: false}; - _keys['num.'] = {code:110, shift: false}; - // arrows - _keys['left'] = {code:37, shift: false}; - _keys['up'] = {code:38, shift: false}; - _keys['right'] = {code:39, shift: false}; - _keys['down'] = {code:40, shift: false}; - // extra keys - _keys['space'] = {code:32, shift: false}; - _keys['enter'] = {code:13, shift: false}; - _keys['shift'] = {code:16, shift: undefined}; - _keys['esc'] = {code:27, shift: false}; - _keys['backspace'] = {code:8, shift: false}; - _keys['tab'] = {code:9, shift: false}; - _keys['ctrl'] = {code:17, shift: false}; - _keys['alt'] = {code:18, shift: false}; - _keys['delete'] = {code:46, shift: false}; - _keys['pageup'] = {code:33, shift: false}; - _keys['pagedown'] = {code:34, shift: false}; - // symbols - _keys['='] = {code:187, shift: false}; - _keys['-'] = {code:189, shift: false}; - _keys[']'] = {code:221, shift: false}; - _keys['['] = {code:219, shift: false}; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + 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; }; })(); + Object.defineProperty(exports, '__esModule', { + value: true + }); + var Hammer = __webpack_require__(41); + var hammerUtil = __webpack_require__(44); + var util = __webpack_require__(1); - var down = function(event) {handleEvent(event,'keydown');}; - var up = function(event) {handleEvent(event,'keyup');}; + var ColorPicker = (function () { + function ColorPicker() { + var pixelRatio = arguments[0] === undefined ? 1 : arguments[0]; - // handle the actualy bound key with the event - var handleEvent = function(event,type) { - if (_bound[type][event.keyCode] !== undefined) { - var bound = _bound[type][event.keyCode]; - for (var i = 0; i < bound.length; i++) { - if (bound[i].shift === undefined) { - bound[i].fn(event); - } - else if (bound[i].shift == true && event.shiftKey == true) { - bound[i].fn(event); - } - else if (bound[i].shift == false && event.shiftKey == false) { - bound[i].fn(event); - } - } + _classCallCheck(this, ColorPicker); - if (preventDefault == true) { - event.preventDefault(); - } - } - }; + this.pixelRatio = pixelRatio; + this.generated = false; + this.centerCoordinates = { x: 289 / 2, y: 289 / 2 }; + this.r = 289 * 0.49; + this.color = { r: 255, g: 255, b: 255, a: 1 }; + this.hueCircle = undefined; + this.initialColor = { r: 255, g: 255, b: 255, a: 1 }; + this.previousColor = undefined; + this.applied = false; - // bind a key to a callback - _exportFunctions.bind = function(key, callback, type) { - if (type === undefined) { - type = 'keydown'; - } - if (_keys[key] === undefined) { - throw new Error("unsupported key: " + key); - } - if (_bound[type][_keys[key].code] === undefined) { - _bound[type][_keys[key].code] = []; + // bound by + this.updateCallback = function () {}; + + // create all DOM elements + this._create(); + } + + _createClass(ColorPicker, [{ + key: 'insertTo', + + /** + * this inserts the colorPicker into a div from the DOM + * @param container + */ + value: function insertTo(container) { + if (this.hammer !== undefined) { + this.hammer.destroy(); + this.hammer = undefined; } - _bound[type][_keys[key].code].push({fn:callback, shift:_keys[key].shift}); - }; + this.container = container; + this.container.appendChild(this.frame); + this._bindHammer(); + this._setSize(); + } + }, { + key: 'setCallback', - // bind all keys to a call back (demo purposes) - _exportFunctions.bindAll = function(callback, type) { - if (type === undefined) { - type = 'keydown'; + /** + * the callback is executed on apply and save. Bind it to the application + * @param callback + */ + value: function setCallback(callback) { + if (typeof callback === 'function') { + this.updateCallback = callback; + } else { + throw new Error('Function attempted to set as colorPicker callback is not a function.'); } - for (var key in _keys) { - if (_keys.hasOwnProperty(key)) { - _exportFunctions.bind(key,callback,type); - } + } + }, { + key: '_isColorString', + value: function _isColorString(color) { + var htmlColors = { black: '#000000', navy: '#000080', darkblue: '#00008B', mediumblue: '#0000CD', blue: '#0000FF', darkgreen: '#006400', green: '#008000', teal: '#008080', darkcyan: '#008B8B', deepskyblue: '#00BFFF', darkturquoise: '#00CED1', mediumspringgreen: '#00FA9A', lime: '#00FF00', springgreen: '#00FF7F', aqua: '#00FFFF', cyan: '#00FFFF', midnightblue: '#191970', dodgerblue: '#1E90FF', lightseagreen: '#20B2AA', forestgreen: '#228B22', seagreen: '#2E8B57', darkslategray: '#2F4F4F', limegreen: '#32CD32', mediumseagreen: '#3CB371', turquoise: '#40E0D0', royalblue: '#4169E1', steelblue: '#4682B4', darkslateblue: '#483D8B', mediumturquoise: '#48D1CC', indigo: '#4B0082', darkolivegreen: '#556B2F', cadetblue: '#5F9EA0', cornflowerblue: '#6495ED', mediumaquamarine: '#66CDAA', dimgray: '#696969', slateblue: '#6A5ACD', olivedrab: '#6B8E23', slategray: '#708090', lightslategray: '#778899', mediumslateblue: '#7B68EE', lawngreen: '#7CFC00', chartreuse: '#7FFF00', aquamarine: '#7FFFD4', maroon: '#800000', purple: '#800080', olive: '#808000', gray: '#808080', skyblue: '#87CEEB', lightskyblue: '#87CEFA', blueviolet: '#8A2BE2', darkred: '#8B0000', darkmagenta: '#8B008B', saddlebrown: '#8B4513', darkseagreen: '#8FBC8F', lightgreen: '#90EE90', mediumpurple: '#9370D8', darkviolet: '#9400D3', palegreen: '#98FB98', darkorchid: '#9932CC', yellowgreen: '#9ACD32', sienna: '#A0522D', brown: '#A52A2A', darkgray: '#A9A9A9', lightblue: '#ADD8E6', greenyellow: '#ADFF2F', paleturquoise: '#AFEEEE', lightsteelblue: '#B0C4DE', powderblue: '#B0E0E6', firebrick: '#B22222', darkgoldenrod: '#B8860B', mediumorchid: '#BA55D3', rosybrown: '#BC8F8F', darkkhaki: '#BDB76B', silver: '#C0C0C0', mediumvioletred: '#C71585', indianred: '#CD5C5C', peru: '#CD853F', chocolate: '#D2691E', tan: '#D2B48C', lightgrey: '#D3D3D3', palevioletred: '#D87093', thistle: '#D8BFD8', orchid: '#DA70D6', goldenrod: '#DAA520', crimson: '#DC143C', gainsboro: '#DCDCDC', plum: '#DDA0DD', burlywood: '#DEB887', lightcyan: '#E0FFFF', lavender: '#E6E6FA', darksalmon: '#E9967A', violet: '#EE82EE', palegoldenrod: '#EEE8AA', lightcoral: '#F08080', khaki: '#F0E68C', aliceblue: '#F0F8FF', honeydew: '#F0FFF0', azure: '#F0FFFF', sandybrown: '#F4A460', wheat: '#F5DEB3', beige: '#F5F5DC', whitesmoke: '#F5F5F5', mintcream: '#F5FFFA', ghostwhite: '#F8F8FF', salmon: '#FA8072', antiquewhite: '#FAEBD7', linen: '#FAF0E6', lightgoldenrodyellow: '#FAFAD2', oldlace: '#FDF5E6', red: '#FF0000', fuchsia: '#FF00FF', magenta: '#FF00FF', deeppink: '#FF1493', orangered: '#FF4500', tomato: '#FF6347', hotpink: '#FF69B4', coral: '#FF7F50', darkorange: '#FF8C00', lightsalmon: '#FFA07A', orange: '#FFA500', lightpink: '#FFB6C1', pink: '#FFC0CB', gold: '#FFD700', peachpuff: '#FFDAB9', navajowhite: '#FFDEAD', moccasin: '#FFE4B5', bisque: '#FFE4C4', mistyrose: '#FFE4E1', blanchedalmond: '#FFEBCD', papayawhip: '#FFEFD5', lavenderblush: '#FFF0F5', seashell: '#FFF5EE', cornsilk: '#FFF8DC', lemonchiffon: '#FFFACD', floralwhite: '#FFFAF0', snow: '#FFFAFA', yellow: '#FFFF00', lightyellow: '#FFFFE0', ivory: '#FFFFF0', white: '#FFFFFF' }; + if (typeof color === 'string') { + return htmlColors[color]; } - }; + } + }, { + key: 'setColor', - // get the key label from an event - _exportFunctions.getKey = function(event) { - for (var key in _keys) { - if (_keys.hasOwnProperty(key)) { - if (event.shiftKey == true && _keys[key].shift == true && event.keyCode == _keys[key].code) { - return key; - } - else if (event.shiftKey == false && _keys[key].shift == false && event.keyCode == _keys[key].code) { - return key; - } - else if (event.keyCode == _keys[key].code && key == 'shift') { - return key; - } - } - } - return "unknown key, currently not supported"; - }; + /** + * Set the color of the colorPicker + * Supported formats: + * 'red' --> HTML color string + * '#ffffff' --> hex string + * 'rbg(255,255,255)' --> rgb string + * 'rgba(255,255,255,1.0)' --> rgba string + * {r:255,g:255,b:255} --> rgb object + * {r:255,g:255,b:255,a:1.0} --> rgba object + * @param color + * @param setInitial + */ + value: function setColor(color) { + var setInitial = arguments[1] === undefined ? true : arguments[1]; - // unbind either a specific callback from a key or all of them (by leaving callback undefined) - _exportFunctions.unbind = function(key, callback, type) { - if (type === undefined) { - type = 'keydown'; + if (color === 'none') { + return; } - if (_keys[key] === undefined) { - throw new Error("unsupported key: " + key); + + var rgba = undefined; + + // if a html color shorthand is used, convert to hex + var htmlColor = this._isColorString(color); + if (htmlColor !== undefined) { + color = htmlColor; } - if (callback !== undefined) { - var newBindings = []; - var bound = _bound[type][_keys[key].code]; - if (bound !== undefined) { - for (var i = 0; i < bound.length; i++) { - if (!(bound[i].fn == callback && bound[i].shift == _keys[key].shift)) { - newBindings.push(_bound[type][_keys[key].code][i]); - } + + // check format + if (util.isString(color) === true) { + if (util.isValidRGB(color) === true) { + var rgbaArray = color.substr(4).substr(0, color.length - 5).split(','); + rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: 1 }; + } else if (util.isValidRGBA(color) === true) { + var rgbaArray = color.substr(5).substr(0, color.length - 6).split(','); + rgba = { r: rgbaArray[0], g: rgbaArray[1], b: rgbaArray[2], a: rgbaArray[3] }; + } else if (util.isValidHex(color) === true) { + var rgbObj = util.hexToRGB(color); + rgba = { r: rgbObj.r, g: rgbObj.g, b: rgbObj.b, a: 1 }; + } + } else { + if (color instanceof Object) { + if (color.r !== undefined && color.g !== undefined && color.b !== undefined) { + var alpha = color.a !== undefined ? color.a : '1.0'; + rgba = { r: color.r, g: color.g, b: color.b, a: alpha }; } } - _bound[type][_keys[key].code] = newBindings; - } - else { - _bound[type][_keys[key].code] = []; } - }; - - // reset all bound variables. - _exportFunctions.reset = function() { - _bound = {keydown:{}, keyup:{}}; - }; - // unbind all listeners and reset all variables. - _exportFunctions.destroy = function() { - _bound = {keydown:{}, keyup:{}}; - container.removeEventListener('keydown', down, true); - container.removeEventListener('keyup', up, true); - }; + // set color + if (rgba === undefined) { + throw new Error('Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: ' + JSON.stringify(color)); + } else { + this._setColor(rgba, setInitial); + } + } + }, { + key: 'show', - // create listeners. - container.addEventListener('keydown',down,true); - container.addEventListener('keyup',up,true); + /** + * this shows the color picker at a location. The hue circle is constructed once and stored. + * @param x + * @param y + */ + value: function show(x, y) { + this.applied = false; + this.frame.style.display = 'block'; + this.frame.style.top = y + 'px'; + this.frame.style.left = x + 'px'; + this._generateHueCircle(); + } + }, { + key: '_hide', - // return the public functions. - return _exportFunctions; - } + // ------------------------------------------ PRIVATE ----------------------------- // - return keycharm; - })); + /** + * Hide the picker. Is called by the cancel button. + * Optional boolean to store the previous color for easy access later on. + * @param storePrevious + * @private + */ + value: function _hide() { + var storePrevious = arguments[0] === undefined ? true : arguments[0]; + // store the previous color for next time; + if (storePrevious === true) { + this.previousColor = util.extend({}, this.color); + } + if (this.applied === true) { + this.updateCallback(this.initialColor); + } + this.frame.style.display = 'none'; + } + }, { + key: '_save', -/***/ }, -/* 80 */ -/***/ function(module, exports, __webpack_require__) { + /** + * bound to the save button. Saves and hides. + * @private + */ + value: function _save() { + this.updateCallback(this.color); + this.applied = false; + this._hide(); + } + }, { + key: '_apply', - function webpackContext(req) { - throw new Error("Cannot find module '" + req + "'."); - } - webpackContext.keys = function() { return []; }; - webpackContext.resolve = webpackContext; - module.exports = webpackContext; - webpackContext.id = 80; + /** + * Bound to apply button. Saves but does not close. Is undone by the cancel button. + * @private + */ + value: function _apply() { + this.applied = true; + this.updateCallback(this.color); + this._updatePicker(this.color); + } + }, { + key: '_loadLast', + /** + * load the color from the previous session. + * @private + */ + value: function _loadLast() { + if (this.previousColor !== undefined) { + this.setColor(this.previousColor, false); + } else { + alert('There is no last color to load...'); + } + } + }, { + key: '_setColor', -/***/ }, -/* 81 */ -/***/ function(module, exports, __webpack_require__) { + /** + * set the color, place the picker + * @param rgba + * @param setInitial + * @private + */ + value: function _setColor(rgba) { + var setInitial = arguments[1] === undefined ? true : arguments[1]; - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } + // store the initial color + if (setInitial === true) { + this.initialColor = util.extend({}, rgba); + } + this.color = rgba; + var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); -/***/ }, -/* 82 */ -/***/ function(module, exports, __webpack_require__) { + var angleConvert = 2 * Math.PI; + var radius = this.r * hsv.s; + var x = this.centerCoordinates.x + radius * Math.sin(angleConvert * hsv.h); + var y = this.centerCoordinates.y + radius * Math.cos(angleConvert * hsv.h); - /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; + this.colorPickerSelector.style.left = x - 0.5 * this.colorPickerSelector.clientWidth + 'px'; + this.colorPickerSelector.style.top = y - 0.5 * this.colorPickerSelector.clientHeight + 'px'; - /* WEBPACK VAR INJECTION */}.call(exports, {})) + this._updatePicker(rgba); + } + }, { + key: '_setOpacity', -/***/ }, -/* 83 */ -/***/ function(module, exports, __webpack_require__) { + /** + * bound to opacity control + * @param value + * @private + */ + value: function _setOpacity(value) { + this.color.a = value / 100; + this._updatePicker(this.color); + } + }, { + key: '_setBrightness', - 'use strict'; + /** + * bound to brightness control + * @param value + * @private + */ + value: function _setBrightness(value) { + var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); + hsv.v = value / 100; + var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); + rgba.a = this.color.a; + this.color = rgba; + this._updatePicker(); + } + }, { + key: '_updatePicker', - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + /** + * update the colorpicker. A black circle overlays the hue circle to mimic the brightness decreasing. + * @param rgba + * @private + */ + value: function _updatePicker() { + var rgba = arguments[0] === undefined ? this.color : arguments[0]; - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + var hsv = util.RGBToHSV(rgba.r, rgba.g, rgba.b); + var ctx = this.colorPickerCanvas.getContext('2d'); + if (this.pixelRation === undefined) { + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + } + ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - 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; }; })(); + // clear the canvas + var w = this.colorPickerCanvas.clientWidth; + var h = this.colorPickerCanvas.clientHeight; + ctx.clearRect(0, 0, w, h); - var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + ctx.putImageData(this.hueCircle, 0, 0); + ctx.fillStyle = 'rgba(0,0,0,' + (1 - hsv.v) + ')'; + ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); + ctx.fill(); - var _inherits = function (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) subClass.__proto__ = superClass; }; + this.brightnessRange.value = 100 * hsv.v; + this.opacityRange.value = 100 * rgba.a; - Object.defineProperty(exports, '__esModule', { - value: true - }); + this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; + this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; + } + }, { + key: '_setSize', - var _NodeBase2 = __webpack_require__(100); + /** + * used by create to set the size of the canvas. + * @private + */ + value: function _setSize() { + this.colorPickerCanvas.style.width = '100%'; + this.colorPickerCanvas.style.height = '100%'; - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + this.colorPickerCanvas.width = 289 * this.pixelRatio; + this.colorPickerCanvas.height = 289 * this.pixelRatio; + } + }, { + key: '_create', - 'use strict'; + /** + * create all dom elements + * TODO: cleanup, lots of similar dom elements + * @private + */ + value: function _create() { + this.frame = document.createElement('div'); + this.frame.className = 'vis-color-picker'; - var Box = (function (_NodeBase) { - function Box(options, body, labelModule) { - _classCallCheck(this, Box); + this.colorPickerDiv = document.createElement('div'); + this.colorPickerSelector = document.createElement('div'); + this.colorPickerSelector.className = 'vis-selector'; + this.colorPickerDiv.appendChild(this.colorPickerSelector); - _get(Object.getPrototypeOf(Box.prototype), 'constructor', this).call(this, options, body, labelModule); - } + this.colorPickerCanvas = document.createElement('canvas'); + this.colorPickerDiv.appendChild(this.colorPickerCanvas); - _inherits(Box, _NodeBase); + if (!this.colorPickerCanvas.getContext) { + var noCanvas = document.createElement('DIV'); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold'; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; + this.colorPickerCanvas.appendChild(noCanvas); + } else { + var ctx = this.colorPickerCanvas.getContext('2d'); + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - _createClass(Box, [{ - key: 'resize', - value: function resize(ctx, selected) { - if (this.width === undefined) { - var margin = 5; - var textSize = this.labelModule.getTextSize(ctx, selected); - this.width = textSize.width + 2 * margin; - this.height = textSize.height + 2 * margin; + this.colorPickerCanvas.getContext('2d').setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); } - } - }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx, selected); - this.left = x - this.width / 2; - this.top = y - this.height / 2; - - var borderWidth = this.options.borderWidth; - var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - ctx.lineWidth = selected ? selectionLineWidth : borderWidth; - ctx.lineWidth /= this.body.view.scale; - ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + this.colorPickerDiv.className = 'vis-color'; - ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + this.opacityDiv = document.createElement('div'); + this.opacityDiv.className = 'vis-opacity'; - ctx.roundRect(this.left, this.top, this.width, this.height, this.options.size); + this.brightnessDiv = document.createElement('div'); + this.brightnessDiv.className = 'vis-brightness'; - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); + this.arrowDiv = document.createElement('div'); + this.arrowDiv.className = 'vis-arrow'; - // disable shadows for other elements. - this.disableShadow(ctx); + this.opacityRange = document.createElement('input'); + this.opacityRange.type = 'range'; + this.opacityRange.min = '0'; + this.opacityRange.max = '100'; + this.opacityRange.value = '100'; + this.opacityRange.className = 'vis-range'; - ctx.stroke(); + this.brightnessRange = document.createElement('input'); + this.brightnessRange.type = 'range'; + this.brightnessRange.min = '0'; + this.brightnessRange.max = '100'; + this.brightnessRange.value = '100'; + this.brightnessRange.className = 'vis-range'; - this.boundingBox.top = this.top; - this.boundingBox.left = this.left; - this.boundingBox.right = this.left + this.width; - this.boundingBox.bottom = this.top + this.height; + this.opacityDiv.appendChild(this.opacityRange); + this.brightnessDiv.appendChild(this.brightnessRange); - this.labelModule.draw(ctx, x, y, selected); - } - }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - var a = this.width / 2; - var b = this.height / 2; - var w = Math.sin(angle) * a; - var h = Math.cos(angle) * b; - return a * b / Math.sqrt(w * w + h * h); - } - }]); - - return Box; - })(_NodeBase3['default']); - - exports['default'] = Box; - module.exports = exports['default']; - -/***/ }, -/* 84 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + var me = this; + this.opacityRange.onchange = function () { + me._setOpacity(this.value); + }; + this.opacityRange.oninput = function () { + me._setOpacity(this.value); + }; + this.brightnessRange.onchange = function () { + me._setBrightness(this.value); + }; + this.brightnessRange.oninput = function () { + me._setBrightness(this.value); + }; - var _inherits = function (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) subClass.__proto__ = superClass; }; + this.brightnessLabel = document.createElement('div'); + this.brightnessLabel.className = 'vis-label vis-brightness'; + this.brightnessLabel.innerHTML = 'brightness:'; - Object.defineProperty(exports, '__esModule', { - value: true - }); + this.opacityLabel = document.createElement('div'); + this.opacityLabel.className = 'vis-label vis-opacity'; + this.opacityLabel.innerHTML = 'opacity:'; - var _CircleImageBase2 = __webpack_require__(101); + this.newColorDiv = document.createElement('div'); + this.newColorDiv.className = 'vis-new-color'; + this.newColorDiv.innerHTML = 'new'; - var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); + this.initialColorDiv = document.createElement('div'); + this.initialColorDiv.className = 'vis-initial-color'; + this.initialColorDiv.innerHTML = 'initial'; - 'use strict'; + this.cancelButton = document.createElement('div'); + this.cancelButton.className = 'vis-button vis-cancel'; + this.cancelButton.innerHTML = 'cancel'; + this.cancelButton.onclick = this._hide.bind(this, false); - var Circle = (function (_CircleImageBase) { - function Circle(options, body, labelModule) { - _classCallCheck(this, Circle); + this.applyButton = document.createElement('div'); + this.applyButton.className = 'vis-button vis-apply'; + this.applyButton.innerHTML = 'apply'; + this.applyButton.onclick = this._apply.bind(this); - _get(Object.getPrototypeOf(Circle.prototype), 'constructor', this).call(this, options, body, labelModule); - } + this.saveButton = document.createElement('div'); + this.saveButton.className = 'vis-button vis-save'; + this.saveButton.innerHTML = 'save'; + this.saveButton.onclick = this._save.bind(this); - _inherits(Circle, _CircleImageBase); + this.loadButton = document.createElement('div'); + this.loadButton.className = 'vis-button vis-load'; + this.loadButton.innerHTML = 'load last'; + this.loadButton.onclick = this._loadLast.bind(this); - _createClass(Circle, [{ - key: 'resize', - value: function resize(ctx, selected) { - if (this.width === undefined) { - var margin = 5; - var textSize = this.labelModule.getTextSize(ctx, selected); - var diameter = Math.max(textSize.width, textSize.height) + 2 * margin; - this.options.size = diameter / 2; + this.frame.appendChild(this.colorPickerDiv); + this.frame.appendChild(this.arrowDiv); + this.frame.appendChild(this.brightnessLabel); + this.frame.appendChild(this.brightnessDiv); + this.frame.appendChild(this.opacityLabel); + this.frame.appendChild(this.opacityDiv); + this.frame.appendChild(this.newColorDiv); + this.frame.appendChild(this.initialColorDiv); - this.width = diameter; - this.height = diameter; - } + this.frame.appendChild(this.cancelButton); + this.frame.appendChild(this.applyButton); + this.frame.appendChild(this.saveButton); + this.frame.appendChild(this.loadButton); } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx, selected); - this.left = x - this.width / 2; - this.top = y - this.height / 2; + key: '_bindHammer', - this._drawRawCircle(ctx, x, y, selected, hover, this.options.size); + /** + * bind hammer to the color picker + * @private + */ + value: function _bindHammer() { + var _this = this; - this.boundingBox.top = y - this.options.size; - this.boundingBox.left = x - this.options.size; - this.boundingBox.right = x + this.options.size; - this.boundingBox.bottom = y + this.options.size; + this.drag = {}; + this.pinch = {}; + this.hammer = new Hammer(this.colorPickerCanvas); + this.hammer.get('pinch').set({ enable: true }); - this.labelModule.draw(ctx, x, y, selected); + hammerUtil.onTouch(this.hammer, function (event) { + _this._moveSelector(event); + }); + this.hammer.on('tap', function (event) { + _this._moveSelector(event); + }); + this.hammer.on('panstart', function (event) { + _this._moveSelector(event); + }); + this.hammer.on('panmove', function (event) { + _this._moveSelector(event); + }); + this.hammer.on('panend', function (event) { + _this._moveSelector(event); + }); } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - var a = this.width / 2; - var b = this.height / 2; - var w = Math.sin(angle) * a; - var h = Math.cos(angle) * b; - return a * b / Math.sqrt(w * w + h * h); - } - }]); - - return Circle; - })(_CircleImageBase3['default']); - - exports['default'] = Circle; - module.exports = exports['default']; - -/***/ }, -/* 85 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _CircleImageBase2 = __webpack_require__(101); - - var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); - - 'use strict'; - - var CircularImage = (function (_CircleImageBase) { - function CircularImage(options, body, labelModule, imageObj) { - _classCallCheck(this, CircularImage); + key: '_generateHueCircle', - _get(Object.getPrototypeOf(CircularImage.prototype), 'constructor', this).call(this, options, body, labelModule); - this.imageObj = imageObj; - this._swapToImageResizeWhenImageLoaded = true; - } + /** + * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. + * @private + */ + value: function _generateHueCircle() { + if (this.generated === false) { + var ctx = this.colorPickerCanvas.getContext('2d'); + if (this.pixelRation === undefined) { + this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); + } + ctx.setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); - _inherits(CircularImage, _CircleImageBase); + // clear the canvas + var w = this.colorPickerCanvas.clientWidth; + var h = this.colorPickerCanvas.clientHeight; + ctx.clearRect(0, 0, w, h); - _createClass(CircularImage, [{ - key: 'resize', - value: function resize() { - if (this.imageObj.src === undefined || this.imageObj.width === undefined || this.imageObj.height === undefined) { - if (!this.width) { - var diameter = this.options.size * 2; - this.width = diameter; - this.height = diameter; - this._swapToImageResizeWhenImageLoaded = true; - } - } else { - if (this._swapToImageResizeWhenImageLoaded) { - this.width = undefined; - this.height = undefined; - this._swapToImageResizeWhenImageLoaded = false; + // draw hue circle + var x = undefined, + y = undefined, + hue = undefined, + sat = undefined; + this.centerCoordinates = { x: w * 0.5, y: h * 0.5 }; + this.r = 0.49 * w; + var angleConvert = 2 * Math.PI / 360; + var hfac = 1 / 360; + var sfac = 1 / this.r; + var rgb = undefined; + for (hue = 0; hue < 360; hue++) { + for (sat = 0; sat < this.r; sat++) { + x = this.centerCoordinates.x + sat * Math.sin(angleConvert * hue); + y = this.centerCoordinates.y + sat * Math.cos(angleConvert * hue); + rgb = util.HSVToRGB(hue * hfac, sat * sfac, 1); + ctx.fillStyle = 'rgb(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ')'; + ctx.fillRect(x - 0.5, y - 0.5, 2, 2); + } } - this._resizeImage(); + ctx.strokeStyle = 'rgba(0,0,0,1)'; + ctx.circle(this.centerCoordinates.x, this.centerCoordinates.y, this.r); + ctx.stroke(); + + this.hueCircle = ctx.getImageData(0, 0, w, h); } + this.generated = true; } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(); + key: '_moveSelector', - this.left = x - this.width / 2; - this.top = y - this.height / 2; + /** + * move the selector. This is called by hammer functions. + * + * @param event + * @private + */ + value: function _moveSelector(event) { + var rect = this.colorPickerDiv.getBoundingClientRect(); + var left = event.center.x - rect.left; + var top = event.center.y - rect.top; - var size = Math.min(0.5 * this.height, 0.5 * this.width); - this._drawRawCircle(ctx, x, y, selected, hover, size); + var centerY = 0.5 * this.colorPickerDiv.clientHeight; + var centerX = 0.5 * this.colorPickerDiv.clientWidth; - ctx.save(); - ctx.circle(x, y, size); - ctx.stroke(); - ctx.clip(); + var x = left - centerX; + var y = top - centerY; - this._drawImageAtPosition(ctx); + var angle = Math.atan2(x, y); + var radius = 0.98 * Math.min(Math.sqrt(x * x + y * y), centerX); - ctx.restore(); + var newTop = Math.cos(angle) * radius + centerY; + var newLeft = Math.sin(angle) * radius + centerX; - this.boundingBox.top = y - this.options.size; - this.boundingBox.left = x - this.options.size; - this.boundingBox.right = x + this.options.size; - this.boundingBox.bottom = y + this.options.size; + this.colorPickerSelector.style.top = newTop - 0.5 * this.colorPickerSelector.clientHeight + 'px'; + this.colorPickerSelector.style.left = newLeft - 0.5 * this.colorPickerSelector.clientWidth + 'px'; - this._drawImageLabel(ctx, x, y, selected); + // set color + var h = angle / (2 * Math.PI); + h = h < 0 ? h + 1 : h; + var s = radius / this.r; + var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); + hsv.h = h; + hsv.s = s; + var rgba = util.HSVToRGB(hsv.h, hsv.s, hsv.v); + rgba.a = this.color.a; + this.color = rgba; - this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); - this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); - this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); - } - }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - return this._distanceToBorder(angle); + // update previews + this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; + this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; } }]); - return CircularImage; - })(_CircleImageBase3['default']); + return ColorPicker; + })(); - exports['default'] = CircularImage; + exports['default'] = ColorPicker; module.exports = exports['default']; /***/ }, -/* 86 */ +/* 82 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - Object.defineProperty(exports, '__esModule', { value: true }); + /** + * __any__ + * __type__ + */ + var string = 'string'; + var boolean = 'boolean'; + var number = 'number'; + var array = 'array'; + var object = 'object'; + var dom = 'dom'; + var fn = 'function'; + var undef = 'undefined'; + + var allOptions = { + canvas: { + width: { string: string }, + height: { string: string }, + __type__: { object: object } + }, + rendering: { + hideEdgesOnDrag: { boolean: boolean }, + hideNodesOnDrag: { boolean: boolean }, + __type__: { object: object } + }, + clustering: {}, + configuration: { + filter: { boolean: boolean, string: ['nodes', 'edges', 'layout', 'physics', 'manipulation', 'interaction', 'selection', 'rendering'], array: array }, + container: { dom: dom }, + __type__: { object: object, string: string, array: array, boolean: boolean } + }, + edges: { + arrows: { + to: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object } }, + middle: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object } }, + from: { enabled: { boolean: boolean }, scaleFactor: { number: number }, __type__: { object: object } }, + __type__: { string: ['from', 'to', 'middle'], object: object } + }, + color: { + color: { string: string }, + highlight: { string: string }, + hover: { string: string }, + inherit: { string: ['from', 'to', 'both'], boolean: boolean }, + opacity: { number: number }, + __type__: { object: object } + }, + dashes: { + enabled: { boolean: boolean }, + pattern: { array: array }, + __type__: { boolean: boolean, object: object } + }, + font: { + color: { string: string }, + size: { number: number }, // px + face: { string: string }, + background: { string: string }, + stroke: { number: number }, // px + strokeColor: { string: string }, + align: { string: ['horizontal', 'top', 'middle', 'bottom'] }, + __type__: { object: object } + }, + hidden: { boolean: boolean }, + hoverWidth: { fn: fn, number: number }, + label: { string: string, undef: undef }, + length: { number: number, undef: undef }, + physics: { boolean: boolean }, + scaling: { + min: { number: number }, + max: { number: number }, + label: { + enabled: { boolean: boolean }, + min: { number: number }, + max: { number: number }, + maxVisible: { number: number }, + drawThreshold: { number: number }, + __type__: { object: object, boolean: boolean } + }, + customScalingFunction: { fn: fn }, + __type__: { object: object } + }, + selectionWidth: { fn: fn, number: number }, + selfReferenceSize: { number: number }, + shadow: { + enabled: { boolean: boolean }, + size: { number: number }, + x: { number: number }, + y: { number: number }, + __type__: { object: object, boolean: boolean } + }, + smooth: { + enabled: { boolean: boolean }, + dynamic: { boolean: boolean }, + type: { string: string }, + roundness: { number: number }, + __type__: { object: object, boolean: boolean } + }, + title: { string: string, undef: undef }, + width: { number: number }, + value: { number: number, undef: undef }, + __type__: { object: object } + }, + groups: { + useDefaultGroups: { boolean: boolean }, + __any__: ['__ref__', 'nodes'], + __type__: { object: object } + }, + interaction: { + dragNodes: { boolean: boolean }, + dragView: { boolean: boolean }, + zoomView: { boolean: boolean }, + hoverEnabled: { boolean: boolean }, + navigationButtons: { boolean: boolean }, + tooltipDelay: { number: number }, + keyboard: { + enabled: { boolean: boolean }, + speed: { x: { number: number }, y: { number: number }, zoom: { number: number }, __type__: { object: object } }, + bindToWindow: { boolean: boolean }, + __type__: { object: object, boolean: boolean } + }, + __type__: { object: object } + }, + layout: { + randomSeed: undefined, + hierarchical: { + enabled: { boolean: boolean }, + levelSeparation: { number: number }, + direction: { string: ['UD', 'DU', 'LR', 'RL'] }, // UD, DU, LR, RL + sortMethod: { string: ['hubsize', 'directed'] }, // hubsize, directed + __type__: { object: object, boolean: boolean } + }, + __type__: { object: object } + }, + manipulation: { + enabled: { boolean: boolean }, + initiallyActive: { boolean: boolean }, + locale: { string: string }, + locales: { object: object }, + functionality: { + addNode: { boolean: boolean }, + addEdge: { boolean: boolean }, + editNode: { boolean: boolean }, + editEdge: { boolean: boolean }, + deleteNode: { boolean: boolean }, + deleteEdge: { boolean: boolean }, + __type__: { object: object } + }, + handlerFunctions: { + addNode: { fn: fn, undef: undef }, + addEdge: { fn: fn, undef: undef }, + editNode: { fn: fn, undef: undef }, + editEdge: { fn: fn, undef: undef }, + deleteNode: { fn: fn, undef: undef }, + deleteEdge: { fn: fn, undef: undef }, + __type__: { object: object } + }, + controlNodeStyle: ['__ref__', 'nodes'], + __type__: { object: object, boolean: boolean } + }, + nodes: { + borderWidth: { number: number }, + borderWidthSelected: { number: number, undef: undef }, + brokenImage: { string: string, undef: undef }, + color: { + border: { string: string }, + background: { string: string }, + highlight: { + border: { string: string }, + background: { string: string }, + __type__: { object: object, string: string } + }, + hover: { + border: { string: string }, + background: { string: string }, + __type__: { object: object, string: string } + }, + __type__: { object: object, string: string } + }, + fixed: { + x: { boolean: boolean }, + y: { boolean: boolean }, + __type__: { object: object, boolean: boolean } + }, + font: { + color: { string: string }, + size: { number: number }, // px + face: { string: string }, + background: { string: string }, + stroke: { number: number }, // px + strokeColor: { string: string }, + __type__: { object: object } + }, + group: { string: string, number: number, undef: undef }, + hidden: { boolean: boolean }, + icon: { + face: { string: string }, + code: { string: string }, //'\uf007', + size: { number: number }, //50, + color: { string: string }, + __type__: { object: object } + }, + id: { string: string, number: number }, + image: { string: string, undef: undef }, // --> URL + label: { string: string, undef: undef }, + level: { number: number, undef: undef }, + mass: { number: number }, + physics: { boolean: boolean }, + scaling: { + min: { number: number }, + max: { number: number }, + label: { + enabled: { boolean: boolean }, + min: { number: number }, + max: { number: number }, + maxVisible: { number: number }, + drawThreshold: { number: number }, + __type__: { object: object, boolean: boolean } + }, + customScalingFunction: { fn: fn }, + __type__: { object: object } + }, + shadow: { + enabled: { boolean: boolean }, + size: { number: number }, + x: { number: number }, + y: { number: number }, + __type__: { object: object, boolean: boolean } + }, + shape: { string: ['ellipse', 'circle', 'database', 'box', 'text', 'image', 'circularImage', 'diamond', 'dot', 'star', 'triangle', 'triangleDown', 'square', 'icon'] }, + size: { number: number }, + title: { string: string, undef: undef }, + value: { number: number, undef: undef }, + x: { number: number }, + y: { number: number }, + __type__: { object: object } + }, + physics: { + barnesHut: { + gravitationalConstant: { number: number }, + centralGravity: { number: number }, + springLength: { number: number }, + springConstant: { number: number }, + damping: { number: number }, + __type__: { object: object } + }, + repulsion: { + centralGravity: { number: number }, + springLength: { number: number }, + springConstant: { number: number }, + nodeDistance: { number: number }, + damping: { number: number }, + __type__: { object: object } + }, + hierarchicalRepulsion: { + centralGravity: { number: number }, + springLength: { number: number }, + springConstant: { number: number }, + nodeDistance: { number: number }, + damping: { number: number }, + __type__: { object: object } + }, + maxVelocity: { number: number }, + minVelocity: { number: number }, // px/s + solver: { string: ['barnesHut', 'repulsion', 'hierarchicalRepulsion'] }, + stabilization: { + enabled: { boolean: boolean }, + iterations: { number: number }, // maximum number of iteration to stabilize + updateInterval: { number: number }, + onlyDynamicEdges: { boolean: boolean }, + fit: { boolean: boolean }, + __type__: { object: object, boolean: boolean } + }, + timestep: { number: number }, + __type__: { object: object, boolean: boolean } + }, + selection: { + select: { boolean: boolean }, + selectConnectedEdges: { boolean: boolean }, + __type__: { object: object } + }, + view: {}, + __type__: { object: object } + }; - var _NodeBase2 = __webpack_require__(100); + allOptions.groups.__any__ = allOptions.nodes; + allOptions.manipulation.controlNodeStyle = allOptions.nodes; - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + exports['default'] = allOptions; + module.exports = exports['default']; - 'use strict'; +/***/ }, +/* 83 */ +/***/ function(module, exports, __webpack_require__) { - var Database = (function (_NodeBase) { - function Database(options, body, labelModule) { - _classCallCheck(this, Database); + var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;"use strict"; + /** + * Created by Alex on 11/6/2014. + */ - _get(Object.getPrototypeOf(Database.prototype), 'constructor', this).call(this, options, body, labelModule); + // https://github.com/umdjs/umd/blob/master/returnExports.js#L40-L60 + // if the module has no dependencies, the above pattern can be simplified to + (function (root, factory) { + if (true) { + // AMD. Register as an anonymous module. + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else if (typeof exports === 'object') { + // Node. Does not work with strict CommonJS, but + // only CommonJS-like environments that support module.exports, + // like Node. + module.exports = factory(); + } else { + // Browser globals (root is window) + root.keycharm = factory(); } + }(this, function () { - _inherits(Database, _NodeBase); + function keycharm(options) { + var preventDefault = options && options.preventDefault || false; - _createClass(Database, [{ - key: 'resize', - value: function resize(ctx, selected) { - if (this.width === undefined) { - var margin = 5; - var textSize = this.labelModule.getTextSize(ctx, selected); - var size = textSize.width + 2 * margin; - this.width = size; - this.height = size; - } - } - }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx, selected); - this.left = x - this.width / 2; - this.top = y - this.height / 2; + var container = options && options.container || window; + var _exportFunctions = {}; + var _bound = {keydown:{}, keyup:{}}; + var _keys = {}; + var i; - var borderWidth = this.options.borderWidth; - var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; + // a - z + for (i = 97; i <= 122; i++) {_keys[String.fromCharCode(i)] = {code:65 + (i - 97), shift: false};} + // A - Z + for (i = 65; i <= 90; i++) {_keys[String.fromCharCode(i)] = {code:i, shift: true};} + // 0 - 9 + for (i = 0; i <= 9; i++) {_keys['' + i] = {code:48 + i, shift: false};} + // F1 - F12 + for (i = 1; i <= 12; i++) {_keys['F' + i] = {code:111 + i, shift: false};} + // num0 - num9 + for (i = 0; i <= 9; i++) {_keys['num' + i] = {code:96 + i, shift: false};} - ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - ctx.lineWidth = this.selected ? selectionLineWidth : borderWidth; - ctx.lineWidth *= this.networkScaleInv; - ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + // numpad misc + _keys['num*'] = {code:106, shift: false}; + _keys['num+'] = {code:107, shift: false}; + _keys['num-'] = {code:109, shift: false}; + _keys['num/'] = {code:111, shift: false}; + _keys['num.'] = {code:110, shift: false}; + // arrows + _keys['left'] = {code:37, shift: false}; + _keys['up'] = {code:38, shift: false}; + _keys['right'] = {code:39, shift: false}; + _keys['down'] = {code:40, shift: false}; + // extra keys + _keys['space'] = {code:32, shift: false}; + _keys['enter'] = {code:13, shift: false}; + _keys['shift'] = {code:16, shift: undefined}; + _keys['esc'] = {code:27, shift: false}; + _keys['backspace'] = {code:8, shift: false}; + _keys['tab'] = {code:9, shift: false}; + _keys['ctrl'] = {code:17, shift: false}; + _keys['alt'] = {code:18, shift: false}; + _keys['delete'] = {code:46, shift: false}; + _keys['pageup'] = {code:33, shift: false}; + _keys['pagedown'] = {code:34, shift: false}; + // symbols + _keys['='] = {code:187, shift: false}; + _keys['-'] = {code:189, shift: false}; + _keys[']'] = {code:221, shift: false}; + _keys['['] = {code:219, shift: false}; - ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; - ctx.database(x - this.width / 2, y - this.height * 0.5, this.width, this.height); - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); - // disable shadows for other elements. - this.disableShadow(ctx); + var down = function(event) {handleEvent(event,'keydown');}; + var up = function(event) {handleEvent(event,'keyup');}; - ctx.stroke(); + // handle the actualy bound key with the event + var handleEvent = function(event,type) { + if (_bound[type][event.keyCode] !== undefined) { + var bound = _bound[type][event.keyCode]; + for (var i = 0; i < bound.length; i++) { + if (bound[i].shift === undefined) { + bound[i].fn(event); + } + else if (bound[i].shift == true && event.shiftKey == true) { + bound[i].fn(event); + } + else if (bound[i].shift == false && event.shiftKey == false) { + bound[i].fn(event); + } + } - this.boundingBox.top = this.top; - this.boundingBox.left = this.left; - this.boundingBox.right = this.left + this.width; - this.boundingBox.bottom = this.top + this.height; + if (preventDefault == true) { + event.preventDefault(); + } + } + }; - this.labelModule.draw(ctx, x, y, selected); - } - }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - var a = this.width / 2; - var b = this.height / 2; - var w = Math.sin(angle) * a; - var h = Math.cos(angle) * b; - return a * b / Math.sqrt(w * w + h * h); - } - }]); - - return Database; - })(_NodeBase3['default']); - - exports['default'] = Database; - module.exports = exports['default']; - -/***/ }, -/* 87 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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; }; })(); + // bind a key to a callback + _exportFunctions.bind = function(key, callback, type) { + if (type === undefined) { + type = 'keydown'; + } + if (_keys[key] === undefined) { + throw new Error("unsupported key: " + key); + } + if (_bound[type][_keys[key].code] === undefined) { + _bound[type][_keys[key].code] = []; + } + _bound[type][_keys[key].code].push({fn:callback, shift:_keys[key].shift}); + }; - var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - var _inherits = function (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) subClass.__proto__ = superClass; }; + // bind all keys to a call back (demo purposes) + _exportFunctions.bindAll = function(callback, type) { + if (type === undefined) { + type = 'keydown'; + } + for (var key in _keys) { + if (_keys.hasOwnProperty(key)) { + _exportFunctions.bind(key,callback,type); + } + } + }; - Object.defineProperty(exports, '__esModule', { - value: true - }); + // get the key label from an event + _exportFunctions.getKey = function(event) { + for (var key in _keys) { + if (_keys.hasOwnProperty(key)) { + if (event.shiftKey == true && _keys[key].shift == true && event.keyCode == _keys[key].code) { + return key; + } + else if (event.shiftKey == false && _keys[key].shift == false && event.keyCode == _keys[key].code) { + return key; + } + else if (event.keyCode == _keys[key].code && key == 'shift') { + return key; + } + } + } + return "unknown key, currently not supported"; + }; - var _ShapeBase2 = __webpack_require__(102); + // unbind either a specific callback from a key or all of them (by leaving callback undefined) + _exportFunctions.unbind = function(key, callback, type) { + if (type === undefined) { + type = 'keydown'; + } + if (_keys[key] === undefined) { + throw new Error("unsupported key: " + key); + } + if (callback !== undefined) { + var newBindings = []; + var bound = _bound[type][_keys[key].code]; + if (bound !== undefined) { + for (var i = 0; i < bound.length; i++) { + if (!(bound[i].fn == callback && bound[i].shift == _keys[key].shift)) { + newBindings.push(_bound[type][_keys[key].code][i]); + } + } + } + _bound[type][_keys[key].code] = newBindings; + } + else { + _bound[type][_keys[key].code] = []; + } + }; - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + // reset all bound variables. + _exportFunctions.reset = function() { + _bound = {keydown:{}, keyup:{}}; + }; - 'use strict'; + // unbind all listeners and reset all variables. + _exportFunctions.destroy = function() { + _bound = {keydown:{}, keyup:{}}; + container.removeEventListener('keydown', down, true); + container.removeEventListener('keyup', up, true); + }; - var Diamond = (function (_ShapeBase) { - function Diamond(options, body, labelModule) { - _classCallCheck(this, Diamond); + // create listeners. + container.addEventListener('keydown',down,true); + container.addEventListener('keyup',up,true); - _get(Object.getPrototypeOf(Diamond.prototype), 'constructor', this).call(this, options, body, labelModule); + // return the public functions. + return _exportFunctions; } - _inherits(Diamond, _ShapeBase); + return keycharm; + })); - _createClass(Diamond, [{ - key: 'resize', - value: function resize(ctx) { - this._resizeShape(); - } - }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'diamond', 4, x, y, selected, hover); - } - }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); - } - }]); - return Diamond; - })(_ShapeBase3['default']); - exports['default'] = Diamond; - module.exports = exports['default']; /***/ }, -/* 88 */ +/* 84 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _ShapeBase2 = __webpack_require__(102); - - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + function webpackContext(req) { + throw new Error("Cannot find module '" + req + "'."); + } + webpackContext.keys = function() { return []; }; + webpackContext.resolve = webpackContext; + module.exports = webpackContext; + webpackContext.id = 84; - 'use strict'; - var Dot = (function (_ShapeBase) { - function Dot(options, body, labelModule) { - _classCallCheck(this, Dot); +/***/ }, +/* 85 */ +/***/ function(module, exports, __webpack_require__) { - _get(Object.getPrototypeOf(Dot.prototype), 'constructor', this).call(this, options, body, labelModule); - } + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } - _inherits(Dot, _ShapeBase); - _createClass(Dot, [{ - key: 'resize', - value: function resize(ctx) { - this._resizeShape(); - } - }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'circle', 2, x, y, selected, hover); - } - }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - return this.options.size + this.options.borderWidth; - } - }]); +/***/ }, +/* 86 */ +/***/ function(module, exports, __webpack_require__) { - return Dot; - })(_ShapeBase3['default']); + /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; - exports['default'] = Dot; - module.exports = exports['default']; + /* WEBPACK VAR INJECTION */}.call(exports, {})) /***/ }, -/* 89 */ +/* 87 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -35777,197 +36284,144 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _NodeBase2 = __webpack_require__(100); - - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + var _BezierEdgeBase2 = __webpack_require__(90); - 'use strict'; + var _BezierEdgeBase3 = _interopRequireWildcard(_BezierEdgeBase2); - var Ellipse = (function (_NodeBase) { - function Ellipse(options, body, labelModule) { - _classCallCheck(this, Ellipse); + var BezierEdgeDynamic = (function (_BezierEdgeBase) { + function BezierEdgeDynamic(options, body, labelModule) { + _classCallCheck(this, BezierEdgeDynamic); - _get(Object.getPrototypeOf(Ellipse.prototype), 'constructor', this).call(this, options, body, labelModule); + //this.via = undefined; // Here for completeness but not allowed to defined before super() is invoked. + _get(Object.getPrototypeOf(BezierEdgeDynamic.prototype), 'constructor', this).call(this, options, body, labelModule); // --> this calls the setOptions below } - _inherits(Ellipse, _NodeBase); + _inherits(BezierEdgeDynamic, _BezierEdgeBase); - _createClass(Ellipse, [{ - key: 'resize', - value: function resize(ctx, selected) { - if (this.width === undefined) { - var textSize = this.labelModule.getTextSize(ctx, selected); + _createClass(BezierEdgeDynamic, [{ + key: 'setOptions', + value: function setOptions(options) { + this.options = options; + this.from = this.body.nodes[this.options.from]; + this.to = this.body.nodes[this.options.to]; + this.id = this.options.id; + this.setupSupportNode(); - this.width = textSize.width * 1.5; - this.height = textSize.height * 2; - if (this.width < this.height) { - this.width = this.height; - } + // fix weird behaviour + if (this.from.id === this.to.id) { + this.via.setOptions({ physics: false }); + } else { + this.via.setOptions({ physics: true }); } } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx, selected); - this.left = x - this.width / 2; - this.top = y - this.height / 2; - - var borderWidth = this.options.borderWidth; - var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - - ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - - ctx.lineWidth = selected ? selectionLineWidth : borderWidth; - ctx.lineWidth /= this.body.view.scale; - ctx.lineWidth = Math.min(this.width, ctx.lineWidth); - - ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; - ctx.ellipse(this.left, this.top, this.width, this.height); - - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); - - // disable shadows for other elements. - this.disableShadow(ctx); - - ctx.stroke(); - - this.boundingBox.left = this.left; - this.boundingBox.top = this.top; - this.boundingBox.bottom = this.top + this.height; - this.boundingBox.right = this.left + this.width; - - this.labelModule.draw(ctx, x, y, selected); + key: 'cleanup', + value: function cleanup() { + if (this.via !== undefined) { + delete this.body.nodes[this.via.id]; + this.via = undefined; + return true; + } + return false; } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - var a = this.width / 2; - var b = this.height / 2; - var w = Math.sin(angle) * a; - var h = Math.cos(angle) * b; - return a * b / Math.sqrt(w * w + h * h); + key: 'togglePhysics', + value: function togglePhysics(status) { + this.via.setOptions({ physics: status }); } - }]); - - return Ellipse; - })(_NodeBase3['default']); - - exports['default'] = Ellipse; - module.exports = exports['default']; - -/***/ }, -/* 90 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _NodeBase2 = __webpack_require__(100); - - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - - 'use strict'; - - var Icon = (function (_NodeBase) { - function Icon(options, body, labelModule) { - _classCallCheck(this, Icon); - - _get(Object.getPrototypeOf(Icon.prototype), 'constructor', this).call(this, options, body, labelModule); - } - - _inherits(Icon, _NodeBase); + }, { + key: 'setupSupportNode', - _createClass(Icon, [{ - key: 'resize', - value: function resize(ctx) { - if (this.width === undefined) { - var margin = 5; - var iconSize = { - width: Number(this.options.icon.size), - height: Number(this.options.icon.size) - }; - this.width = iconSize.width + 2 * margin; - this.height = iconSize.height + 2 * margin; + /** + * Bezier curves require an anchor point to calculate the smooth flow. These points are nodes. These nodes are invisible but + * are used for the force calculation. + * + * The changed data is not called, if needed, it is returned by the main edge constructor. + * @private + */ + value: function setupSupportNode() { + if (this.via === undefined) { + var nodeId = 'edgeId:' + this.id; + var node = this.body.functions.createNode({ + id: nodeId, + shape: 'circle', + physics: true, + hidden: true + }); + this.body.nodes[nodeId] = node; + this.via = node; + this.via.parentEdgeId = this.id; + this.positionBezierNode(); } } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx); - this.options.icon.size = this.options.icon.size || 50; - - this.left = x - this.width * 0.5; - this.top = y - this.height * 0.5; - this._icon(ctx, x, y, selected); - - this.boundingBox.top = y - this.options.icon.size * 0.5; - this.boundingBox.left = x - this.options.icon.size * 0.5; - this.boundingBox.right = x + this.options.icon.size * 0.5; - this.boundingBox.bottom = y + this.options.icon.size * 0.5; - - if (this.options.label !== undefined) { - var iconTextSpacing = 5; - this.labelModule.draw(ctx, x, y + this.height * 0.5 + iconTextSpacing, selected); - this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); - this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); - this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); + key: 'positionBezierNode', + value: function positionBezierNode() { + if (this.via !== undefined && this.from !== undefined && this.to !== undefined) { + this.via.x = 0.5 * (this.from.x + this.to.x); + this.via.y = 0.5 * (this.from.y + this.to.y); + } else if (this.via !== undefined) { + this.via.x = 0; + this.via.y = 0; } } }, { - key: '_icon', - value: function _icon(ctx, x, y, selected) { - var iconSize = Number(this.options.icon.size); - - if (this.options.icon.code !== undefined) { - ctx.font = (selected ? 'bold ' : '') + iconSize + 'px ' + this.options.icon.face; + key: '_line', - // draw icon - ctx.fillStyle = this.options.icon.color || 'black'; - ctx.textAlign = 'center'; - ctx.textBaseline = 'middle'; + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + value: function _line(ctx) { + // draw a straight line + ctx.beginPath(); + ctx.moveTo(this.from.x, this.from.y); + ctx.quadraticCurveTo(this.via.x, this.via.y, this.to.x, this.to.y); + // draw shadow if enabled + this.enableShadow(ctx); + ctx.stroke(); + this.disableShadow(ctx); + return this.via; + } + }, { + key: 'getPoint', - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fillText(this.options.icon.code, x, y); + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param via + * @returns {{x: number, y: number}} + * @private + */ + value: function getPoint(percentage) { + var t = percentage; + var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * this.via.x + Math.pow(t, 2) * this.to.x; + var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * this.via.y + Math.pow(t, 2) * this.to.y; - // disable shadows for other elements. - this.disableShadow(ctx); - } else { - console.error('When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.'); - } + return { x: x, y: y }; } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - this._distanceToBorder(angle); + key: '_findBorderPosition', + value: function _findBorderPosition(nearNode, ctx) { + return this._findBorderPositionBezier(nearNode, ctx, this.via); + } + }, { + key: '_getDistanceToEdge', + value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { + // x3,y3 is the point + return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, this.via); } }]); - return Icon; - })(_NodeBase3['default']); + return BezierEdgeDynamic; + })(_BezierEdgeBase3['default']); - exports['default'] = Icon; + exports['default'] = BezierEdgeDynamic; module.exports = exports['default']; /***/ }, -/* 91 */ +/* 88 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -35986,125 +36440,252 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _CircleImageBase2 = __webpack_require__(101); - - var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); + var _BezierEdgeBase2 = __webpack_require__(90); - 'use strict'; + var _BezierEdgeBase3 = _interopRequireWildcard(_BezierEdgeBase2); - var Image = (function (_CircleImageBase) { - function Image(options, body, labelModule, imageObj) { - _classCallCheck(this, Image); + var BezierEdgeStatic = (function (_BezierEdgeBase) { + function BezierEdgeStatic(options, body, labelModule) { + _classCallCheck(this, BezierEdgeStatic); - _get(Object.getPrototypeOf(Image.prototype), 'constructor', this).call(this, options, body, labelModule); - this.imageObj = imageObj; + _get(Object.getPrototypeOf(BezierEdgeStatic.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(Image, _CircleImageBase); + _inherits(BezierEdgeStatic, _BezierEdgeBase); - _createClass(Image, [{ - key: 'resize', - value: function resize() { - this._resizeImage(); + _createClass(BezierEdgeStatic, [{ + key: 'cleanup', + value: function cleanup() { + return false; } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(); - this.left = x - this.width / 2; - this.top = y - this.height / 2; + key: '_line', - this._drawImageAtPosition(ctx); + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + value: function _line(ctx) { + // draw a straight line + ctx.beginPath(); + ctx.moveTo(this.from.x, this.from.y); + var via = this._getViaCoordinates(); + var returnValue = via; - this.boundingBox.top = this.top; - this.boundingBox.left = this.left; - this.boundingBox.right = this.left + this.width; - this.boundingBox.bottom = this.top + this.height; - - this._drawImageLabel(ctx, x, y, selected || hover); - this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); - this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); - this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); + // fallback to normal straight edges + if (via.x === undefined) { + ctx.lineTo(this.to.x, this.to.y); + returnValue = undefined; + } else { + ctx.quadraticCurveTo(via.x, via.y, this.to.x, this.to.y); + } + // draw shadow if enabled + this.enableShadow(ctx); + ctx.stroke(); + this.disableShadow(ctx); + return returnValue; } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - var a = this.width / 2; - var b = this.height / 2; - var w = Math.sin(angle) * a; - var h = Math.cos(angle) * b; - return a * b / Math.sqrt(w * w + h * h); - } - }]); - - return Image; - })(_CircleImageBase3['default']); - - exports['default'] = Image; - module.exports = exports['default']; - -/***/ }, -/* 92 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _ShapeBase2 = __webpack_require__(102); - - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + key: '_getViaCoordinates', + value: function _getViaCoordinates() { + var xVia = undefined; + var yVia = undefined; + var factor = this.options.smooth.roundness; + var type = this.options.smooth.type; + var dx = Math.abs(this.from.x - this.to.x); + var dy = Math.abs(this.from.y - this.to.y); + if (type === 'discrete' || type === 'diagonalCross') { + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y - factor * dy; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y - factor * dy; + } + } else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y + factor * dy; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y + factor * dy; + } + } + if (type === 'discrete') { + xVia = dx < factor * dy ? this.from.x : xVia; + } + } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y - factor * dx; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y - factor * dx; + } + } else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y + factor * dx; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y + factor * dx; + } + } + if (type === 'discrete') { + yVia = dy < factor * dx ? this.from.y : yVia; + } + } + } else if (type === 'straightCross') { + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { + // up - down + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1 - factor) * dy; + } else { + yVia = this.to.y + (1 - factor) * dy; + } + } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { + // left - right + if (this.from.x < this.to.x) { + xVia = this.to.x - (1 - factor) * dx; + } else { + xVia = this.to.x + (1 - factor) * dx; + } + yVia = this.from.y; + } + } else if (type === 'horizontal') { + if (this.from.x < this.to.x) { + xVia = this.to.x - (1 - factor) * dx; + } else { + xVia = this.to.x + (1 - factor) * dx; + } + yVia = this.from.y; + } else if (type === 'vertical') { + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1 - factor) * dy; + } else { + yVia = this.to.y + (1 - factor) * dy; + } + } else if (type === 'curvedCW') { + dx = this.to.x - this.from.x; + dy = this.from.y - this.to.y; + var radius = Math.sqrt(dx * dx + dy * dy); + var pi = Math.PI; - 'use strict'; + var originalAngle = Math.atan2(dy, dx); + var myAngle = (originalAngle + (factor * 0.5 + 0.5) * pi) % (2 * pi); - var Square = (function (_ShapeBase) { - function Square(options, body, labelModule) { - _classCallCheck(this, Square); + xVia = this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle); + yVia = this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle); + } else if (type === 'curvedCCW') { + dx = this.to.x - this.from.x; + dy = this.from.y - this.to.y; + var radius = Math.sqrt(dx * dx + dy * dy); + var pi = Math.PI; - _get(Object.getPrototypeOf(Square.prototype), 'constructor', this).call(this, options, body, labelModule); - } + var originalAngle = Math.atan2(dy, dx); + var myAngle = (originalAngle + (-factor * 0.5 + 0.5) * pi) % (2 * pi); - _inherits(Square, _ShapeBase); + xVia = this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle); + yVia = this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle); + } else { + // continuous + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y - factor * dy; + xVia = this.to.x < xVia ? this.to.x : xVia; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y - factor * dy; + xVia = this.to.x > xVia ? this.to.x : xVia; + } + } else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y + factor * dy; + xVia = this.to.x < xVia ? this.to.x : xVia; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y + factor * dy; + xVia = this.to.x > xVia ? this.to.x : xVia; + } + } + } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y - factor * dx; + yVia = this.to.y > yVia ? this.to.y : yVia; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y - factor * dx; + yVia = this.to.y > yVia ? this.to.y : yVia; + } + } else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y + factor * dx; + yVia = this.to.y < yVia ? this.to.y : yVia; + } else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y + factor * dx; + yVia = this.to.y < yVia ? this.to.y : yVia; + } + } + } + } + return { x: xVia, y: yVia }; + } + }, { + key: '_findBorderPosition', + value: function _findBorderPosition(nearNode, ctx) { + var options = arguments[2] === undefined ? {} : arguments[2]; - _createClass(Square, [{ - key: 'resize', - value: function resize() { - this._resizeShape(); + return this._findBorderPositionBezier(nearNode, ctx, options.via); } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'square', 2, x, y, selected, hover); + key: '_getDistanceToEdge', + value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { + var via = arguments[6] === undefined ? this._getViaCoordinates() : arguments[6]; + // x3,y3 is the point + return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via); } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - return this._distanceToBorder(angle); + key: 'getPoint', + + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param via + * @returns {{x: number, y: number}} + * @private + */ + value: function getPoint(percentage) { + var via = arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; + + var t = percentage; + var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * via.x + Math.pow(t, 2) * this.to.x; + var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * via.y + Math.pow(t, 2) * this.to.y; + + return { x: x, y: y }; } }]); - return Square; - })(_ShapeBase3['default']); + return BezierEdgeStatic; + })(_BezierEdgeBase3['default']); - exports['default'] = Square; + exports['default'] = BezierEdgeStatic; module.exports = exports['default']; /***/ }, -/* 93 */ +/* 89 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36123,46 +36704,98 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _ShapeBase2 = __webpack_require__(102); - - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + var _EdgeBase2 = __webpack_require__(91); - 'use strict'; + var _EdgeBase3 = _interopRequireWildcard(_EdgeBase2); - var Star = (function (_ShapeBase) { - function Star(options, body, labelModule) { - _classCallCheck(this, Star); + var StraightEdge = (function (_EdgeBase) { + function StraightEdge(options, body, labelModule) { + _classCallCheck(this, StraightEdge); - _get(Object.getPrototypeOf(Star.prototype), 'constructor', this).call(this, options, body, labelModule); + _get(Object.getPrototypeOf(StraightEdge.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(Star, _ShapeBase); + _inherits(StraightEdge, _EdgeBase); - _createClass(Star, [{ - key: 'resize', - value: function resize(ctx) { - this._resizeShape(); + _createClass(StraightEdge, [{ + key: 'cleanup', + value: function cleanup() { + return false; } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'star', 4, x, y, selected, hover); + key: '_line', + + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + value: function _line(ctx) { + // draw a straight line + ctx.beginPath(); + ctx.moveTo(this.from.x, this.from.y); + ctx.lineTo(this.to.x, this.to.y); + // draw shadow if enabled + this.enableShadow(ctx); + ctx.stroke(); + this.disableShadow(ctx); + return undefined; } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); + key: 'getPoint', + + /** + * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way + * @param percentage + * @param via + * @returns {{x: number, y: number}} + * @private + */ + value: function getPoint(percentage) { + return { + x: (1 - percentage) * this.from.x + percentage * this.to.x, + y: (1 - percentage) * this.from.y + percentage * this.to.y + }; + } + }, { + key: '_findBorderPosition', + value: function _findBorderPosition(nearNode, ctx) { + var node1 = this.to; + var node2 = this.from; + if (nearNode.id === this.from.id) { + node1 = this.from; + node2 = this.to; + } + + var angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); + var dx = node1.x - node2.x; + var dy = node1.y - node2.y; + var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); + var toBorderDist = nearNode.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + + var borderPos = {}; + borderPos.x = (1 - toBorderPoint) * node2.x + toBorderPoint * node1.x; + borderPos.y = (1 - toBorderPoint) * node2.y + toBorderPoint * node1.y; + + return borderPos; + } + }, { + key: '_getDistanceToEdge', + value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { + // x3,y3 is the point + return this._getDistanceToLine(x1, y1, x2, y2, x3, y3); } }]); - return Star; - })(_ShapeBase3['default']); + return StraightEdge; + })(_EdgeBase3['default']); - exports['default'] = Star; + exports['default'] = StraightEdge; module.exports = exports['default']; /***/ }, -/* 94 */ +/* 90 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36181,602 +36814,723 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _NodeBase2 = __webpack_require__(100); - - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + var _EdgeBase2 = __webpack_require__(91); - 'use strict'; + var _EdgeBase3 = _interopRequireWildcard(_EdgeBase2); - var Text = (function (_NodeBase) { - function Text(options, body, labelModule) { - _classCallCheck(this, Text); + var BezierEdgeBase = (function (_EdgeBase) { + function BezierEdgeBase(options, body, labelModule) { + _classCallCheck(this, BezierEdgeBase); - _get(Object.getPrototypeOf(Text.prototype), 'constructor', this).call(this, options, body, labelModule); + _get(Object.getPrototypeOf(BezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(Text, _NodeBase); + _inherits(BezierEdgeBase, _EdgeBase); - _createClass(Text, [{ - key: 'resize', - value: function resize(ctx, selected) { - if (this.width === undefined) { - var margin = 5; - var textSize = this.labelModule.getTextSize(ctx, selected); - this.width = textSize.width + 2 * margin; - this.height = textSize.height + 2 * margin; + _createClass(BezierEdgeBase, [{ + key: '_findBorderPositionBezier', + + /** + * This function uses binary search to look for the point where the bezier curve crosses the border of the node. + * + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode + */ + value: function _findBorderPositionBezier(nearNode, ctx) { + var viaNode = arguments[2] === undefined ? this._getViaCoordinates() : arguments[2]; + + var maxIterations = 10; + var iteration = 0; + var low = 0; + var high = 1; + var pos, angle, distanceToBorder, distanceToPoint, difference; + var threshold = 0.2; + var node = this.to; + var from = false; + if (nearNode.id === this.from.id) { + node = this.from; + from = true; } - } - }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this.resize(ctx, selected || hover); - this.left = x - this.width / 2; - this.top = y - this.height / 2; - // draw shadow if enabled - this.enableShadow(ctx); - this.labelModule.draw(ctx, x, y, selected || hover); + while (low <= high && iteration < maxIterations) { + var middle = (low + high) * 0.5; - // disable shadows for other elements. - this.disableShadow(ctx); + pos = this.getPoint(middle, viaNode); + angle = Math.atan2(node.y - pos.y, node.x - pos.x); + distanceToBorder = node.distanceToBorder(ctx, angle); + distanceToPoint = Math.sqrt(Math.pow(pos.x - node.x, 2) + Math.pow(pos.y - node.y, 2)); + difference = distanceToBorder - distanceToPoint; + if (Math.abs(difference) < threshold) { + break; // found + } else if (difference < 0) { + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (from === false) { + low = middle; + } else { + high = middle; + } + } else { + if (from === false) { + high = middle; + } else { + low = middle; + } + } - this.boundingBox.top = this.top; - this.boundingBox.left = this.left; - this.boundingBox.right = this.left + this.width; - this.boundingBox.bottom = this.top + this.height; + iteration++; + } + pos.t = middle; + + return pos; } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - return this._distanceToBorder(angle); + key: '_getDistanceToBezierEdge', + + /** + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @private + */ + value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via) { + // x3,y3 is the point + var xVia = undefined, + yVia = undefined; + xVia = via.x; + yVia = via.y; + var minDistance = 1000000000; + var distance = undefined; + var i = undefined, + t = undefined, + x = undefined, + y = undefined; + var lastX = x1; + var lastY = y1; + for (i = 1; i < 10; i++) { + t = 0.1 * i; + x = Math.pow(1 - t, 2) * x1 + 2 * t * (1 - t) * xVia + Math.pow(t, 2) * x2; + y = Math.pow(1 - t, 2) * y1 + 2 * t * (1 - t) * yVia + Math.pow(t, 2) * y2; + if (i > 0) { + distance = this._getDistanceToLine(lastX, lastY, x, y, x3, y3); + minDistance = distance < minDistance ? distance : minDistance; + } + lastX = x; + lastY = y; + } + + return minDistance; } }]); - return Text; - })(_NodeBase3['default']); + return BezierEdgeBase; + })(_EdgeBase3['default']); - exports['default'] = Text; + exports['default'] = BezierEdgeBase; module.exports = exports['default']; /***/ }, -/* 95 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + var _slicedToArray = function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - Object.defineProperty(exports, '__esModule', { value: true }); + var util = __webpack_require__(1); - var _ShapeBase2 = __webpack_require__(102); - - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); - - 'use strict'; - - var Triangle = (function (_ShapeBase) { - function Triangle(options, body, labelModule) { - _classCallCheck(this, Triangle); + var EdgeBase = (function () { + function EdgeBase(options, body, labelModule) { + _classCallCheck(this, EdgeBase); - _get(Object.getPrototypeOf(Triangle.prototype), 'constructor', this).call(this, options, body, labelModule); + this.body = body; + this.labelModule = labelModule; + this.setOptions(options); + this.colorDirty = true; + this.color = {}; + this.selectionWidth = 2; + this.hoverWidth = 1.5; } - _inherits(Triangle, _ShapeBase); - - _createClass(Triangle, [{ - key: 'resize', - value: function resize(ctx) { - this._resizeShape(); + _createClass(EdgeBase, [{ + key: 'setOptions', + value: function setOptions(options) { + this.options = options; + this.from = this.body.nodes[this.options.from]; + this.to = this.body.nodes[this.options.to]; + this.id = this.options.id; } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'triangle', 3, x, y, selected, hover); - } + key: 'togglePhysics', + + /** + * overloadable if the shape has to toggle the via node to disabled + * @param status + */ + value: function togglePhysics(status) {} }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); - } - }]); + key: 'drawLine', - return Triangle; - })(_ShapeBase3['default']); + /** + * Redraw a edge as a line + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private + */ + value: function drawLine(ctx, selected, hover) { + // set style + ctx.strokeStyle = this.getColor(ctx); + ctx.lineWidth = this.getLineWidth(selected, hover); + var via = undefined; + if (this.options.dashes.enabled === true) { + via = this._drawDashedLine(ctx); + } else { + via = this._drawLine(ctx); + } + return via; + } + }, { + key: '_drawLine', + value: function _drawLine(ctx) { + var via = undefined; + if (this.from != this.to) { + // draw line + via = this._line(ctx); + } else { + var _getCircleData = this._getCircleData(ctx); - exports['default'] = Triangle; - module.exports = exports['default']; + var _getCircleData2 = _slicedToArray(_getCircleData, 3); -/***/ }, -/* 96 */ -/***/ function(module, exports, __webpack_require__) { + var x = _getCircleData2[0]; + var y = _getCircleData2[1]; + var radius = _getCircleData2[2]; - 'use strict'; + this._circle(ctx, x, y, radius); + } + return via; + } + }, { + key: '_drawDashedLine', + value: function _drawDashedLine(ctx) { + var via = undefined; + ctx.lineCap = 'round'; + var pattern = [5, 5]; + if (this.options.dashes.pattern !== undefined) { + if (Array.isArray(this.options.dashes.pattern) === true) { + pattern = this.options.dashes.pattern; + } + } - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + // only firefox and chrome support this method, else we use the legacy one. + if (ctx.setLineDash !== undefined && this.options.dashes.altLength === undefined) { + ctx.save(); - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + // set dash settings for chrome or firefox + ctx.setLineDash(pattern); + ctx.lineDashOffset = 0; - 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; }; })(); + // draw the line + if (this.from != this.to) { + // draw line + via = this._line(ctx); + } else { + var _getCircleData3 = this._getCircleData(ctx); - var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + var _getCircleData32 = _slicedToArray(_getCircleData3, 3); - var _inherits = function (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) subClass.__proto__ = superClass; }; + var x = _getCircleData32[0]; + var y = _getCircleData32[1]; + var radius = _getCircleData32[2]; - Object.defineProperty(exports, '__esModule', { - value: true - }); + this._circle(ctx, x, y, radius); + } - var _ShapeBase2 = __webpack_require__(102); + // restore the dash settings. + ctx.setLineDash([0]); + ctx.lineDashOffset = 0; + ctx.restore(); + } else { + // unsupporting smooth lines - var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + if (this.from != this.to) { + // draw line + ctx.dashedLine(this.from.x, this.from.y, this.to.x, this.to.y, pattern); + } else { + var _getCircleData4 = this._getCircleData(ctx); - 'use strict'; + var _getCircleData42 = _slicedToArray(_getCircleData4, 3); - var TriangleDown = (function (_ShapeBase) { - function TriangleDown(options, body, labelModule) { - _classCallCheck(this, TriangleDown); + var x = _getCircleData42[0]; + var y = _getCircleData42[1]; + var radius = _getCircleData42[2]; - _get(Object.getPrototypeOf(TriangleDown.prototype), 'constructor', this).call(this, options, body, labelModule); - } + this._circle(ctx, x, y, radius); + } + // draw shadow if enabled + this.enableShadow(ctx); - _inherits(TriangleDown, _ShapeBase); + ctx.stroke(); - _createClass(TriangleDown, [{ - key: 'resize', - value: function resize(ctx) { - this._resizeShape(); + // disable shadows for other elements. + this.disableShadow(ctx); + } + return via; } }, { - key: 'draw', - value: function draw(ctx, x, y, selected, hover) { - this._drawShape(ctx, 'triangleDown', 3, x, y, selected, hover); + key: 'findBorderPosition', + value: function findBorderPosition(nearNode, ctx, options) { + if (this.from != this.to) { + return this._findBorderPosition(nearNode, ctx, options); + } else { + return this._findBorderPositionCircle(nearNode, ctx, options); + } } }, { - key: 'distanceToBorder', - value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); - } - }]); - - return TriangleDown; - })(_ShapeBase3['default']); - - exports['default'] = TriangleDown; - module.exports = exports['default']; - -/***/ }, -/* 97 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _BezierEdgeBase2 = __webpack_require__(103); - - var _BezierEdgeBase3 = _interopRequireWildcard(_BezierEdgeBase2); + key: 'findBorderPositions', + value: function findBorderPositions(ctx) { + var from = {}; + var to = {}; + if (this.from != this.to) { + from = this._findBorderPosition(this.from, ctx); + to = this._findBorderPosition(this.to, ctx); + } else { + var _getCircleData5 = this._getCircleData(ctx); - var BezierEdgeDynamic = (function (_BezierEdgeBase) { - function BezierEdgeDynamic(options, body, labelModule) { - _classCallCheck(this, BezierEdgeDynamic); + var _getCircleData52 = _slicedToArray(_getCircleData5, 3); - //this.via = undefined; // Here for completeness but not allowed to defined before super() is invoked. - _get(Object.getPrototypeOf(BezierEdgeDynamic.prototype), 'constructor', this).call(this, options, body, labelModule); // --> this calls the setOptions below - } + var x = _getCircleData52[0]; + var y = _getCircleData52[1]; + var radius = _getCircleData52[2]; - _inherits(BezierEdgeDynamic, _BezierEdgeBase); + from = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); + to = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.6, high: 0.8, direction: 1 }); + } + return { from: from, to: to }; + } + }, { + key: '_getCircleData', + value: function _getCircleData(ctx) { + var x = undefined, + y = undefined; + var node = this.from; + var radius = this.options.selfReferenceSize; - _createClass(BezierEdgeDynamic, [{ - key: 'setOptions', - value: function setOptions(options) { - this.options = options; - this.from = this.body.nodes[this.options.from]; - this.to = this.body.nodes[this.options.to]; - this.id = this.options.id; - this.setupSupportNode(); + if (ctx !== undefined) { + if (node.shape.width === undefined) { + node.shape.resize(ctx); + } + } - // fix weird behaviour - if (this.from.id === this.to.id) { - this.via.setOptions({ physics: false }); + // get circle coordinates + if (node.shape.width > node.shape.height) { + x = node.x + node.shape.width * 0.5; + y = node.y - radius; } else { - this.via.setOptions({ physics: true }); + x = node.x + radius; + y = node.y - node.shape.height * 0.5; } + return [x, y, radius]; } }, { - key: 'cleanup', - value: function cleanup() { - if (this.via !== undefined) { - delete this.body.nodes[this.via.id]; - this.via = undefined; - return true; - } - return false; + key: '_pointOnCircle', + + /** + * Get a point on a circle + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @param {Number} percentage. Value between 0 (line start) and 1 (line end) + * @return {Object} point + * @private + */ + value: function _pointOnCircle(x, y, radius, percentage) { + var angle = percentage * 2 * Math.PI; + return { + x: x + radius * Math.cos(angle), + y: y - radius * Math.sin(angle) + }; } }, { - key: 'togglePhysics', - value: function togglePhysics(status) { - this.via.setOptions({ physics: status }); + key: '_findBorderPositionCircle', + + /** + * This function uses binary search to look for the point where the circle crosses the border of the node. + * @param node + * @param ctx + * @param options + * @returns {*} + * @private + */ + value: function _findBorderPositionCircle(node, ctx, options) { + var x = options.x; + var y = options.y; + var low = options.low; + var high = options.high; + var direction = options.direction; + + var maxIterations = 10; + var iteration = 0; + var radius = this.options.selfReferenceSize; + var pos = undefined, + angle = undefined, + distanceToBorder = undefined, + distanceToPoint = undefined, + difference = undefined; + var threshold = 0.05; + var middle = (low + high) * 0.5; + + while (low <= high && iteration < maxIterations) { + middle = (low + high) * 0.5; + + pos = this._pointOnCircle(x, y, radius, middle); + angle = Math.atan2(node.y - pos.y, node.x - pos.x); + distanceToBorder = node.distanceToBorder(ctx, angle); + distanceToPoint = Math.sqrt(Math.pow(pos.x - node.x, 2) + Math.pow(pos.y - node.y, 2)); + difference = distanceToBorder - distanceToPoint; + if (Math.abs(difference) < threshold) { + break; // found + } else if (difference > 0) { + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (direction > 0) { + low = middle; + } else { + high = middle; + } + } else { + if (direction > 0) { + high = middle; + } else { + low = middle; + } + } + iteration++; + } + pos.t = middle; + + return pos; } }, { - key: 'setupSupportNode', + key: 'getLineWidth', /** - * Bezier curves require an anchor point to calculate the smooth flow. These points are nodes. These nodes are invisible but - * are used for the force calculation. - * - * The changed data is not called, if needed, it is returned by the main edge constructor. + * Get the line width of the edge. Depends on width and whether one of the + * connected nodes is selected. + * @return {Number} width * @private */ - value: function setupSupportNode() { - if (this.via === undefined) { - var nodeId = 'edgeId:' + this.id; - var node = this.body.functions.createNode({ - id: nodeId, - shape: 'circle', - physics: true, - hidden: true - }); - this.body.nodes[nodeId] = node; - this.via = node; - this.via.parentEdgeId = this.id; - this.positionBezierNode(); + value: function getLineWidth(selected, hover) { + if (selected === true) { + return Math.max(this.selectionWidth, 0.3 / this.body.view.scale); + } else { + if (hover === true) { + return Math.max(this.hoverWidth, 0.3 / this.body.view.scale); + } else { + return Math.max(this.options.width, 0.3 / this.body.view.scale); + } } } }, { - key: 'positionBezierNode', - value: function positionBezierNode() { - if (this.via !== undefined && this.from !== undefined && this.to !== undefined) { - this.via.x = 0.5 * (this.from.x + this.to.x); - this.via.y = 0.5 * (this.from.y + this.to.y); - } else if (this.via !== undefined) { - this.via.x = 0; - this.via.y = 0; + key: 'getColor', + value: function getColor(ctx) { + var colorOptions = this.options.color; + + if (colorOptions.inherit !== false) { + // when this is a loop edge, just use the 'from' method + if (colorOptions.inherit === 'both' && this.from.id !== this.to.id) { + var grd = ctx.createLinearGradient(this.from.x, this.from.y, this.to.x, this.to.y); + var fromColor = undefined, + toColor = undefined; + fromColor = this.from.options.color.highlight.border; + toColor = this.to.options.color.highlight.border; + + if (this.from.selected === false && this.to.selected === false) { + fromColor = util.overrideOpacity(this.from.options.color.border, this.options.color.opacity); + toColor = util.overrideOpacity(this.to.options.color.border, this.options.color.opacity); + } else if (this.from.selected === true && this.to.selected === false) { + toColor = this.to.options.color.border; + } else if (this.from.selected === false && this.to.selected === true) { + fromColor = this.from.options.color.border; + } + grd.addColorStop(0, fromColor); + grd.addColorStop(1, toColor); + + // -------------------- this returns -------------------- // + return grd; + } + + if (this.colorDirty === true) { + if (colorOptions.inherit === 'to') { + this.color.highlight = this.to.options.color.highlight.border; + this.color.hover = this.to.options.color.hover.border; + this.color.color = util.overrideOpacity(this.to.options.color.border, colorOptions.opacity); + } else { + // (this.options.color.inherit.source === "from") { + this.color.highlight = this.from.options.color.highlight.border; + this.color.hover = this.from.options.color.hover.border; + this.color.color = util.overrideOpacity(this.from.options.color.border, colorOptions.opacity); + } + } + } else if (this.colorDirty === true) { + this.color.highlight = colorOptions.highlight; + this.color.hover = colorOptions.hover; + this.color.color = util.overrideOpacity(colorOptions.color, colorOptions.opacity); + } + + // if color inherit is on and gradients are used, the function has already returned by now. + this.colorDirty = false; + + if (this.selected === true) { + return this.color.highlight; + } else if (this.hover === true) { + return this.color.hover; + } else { + return this.color.color; } } }, { - key: '_line', + key: '_circle', /** - * Draw a line between two nodes + * Draw a line from a node to itself, a circle * @param {CanvasRenderingContext2D} ctx + * @param {Number} x + * @param {Number} y + * @param {Number} radius * @private */ - value: function _line(ctx) { - // draw a straight line - ctx.beginPath(); - ctx.moveTo(this.from.x, this.from.y); - ctx.quadraticCurveTo(this.via.x, this.via.y, this.to.x, this.to.y); + value: function _circle(ctx, x, y, radius) { // draw shadow if enabled this.enableShadow(ctx); + + // draw a circle + ctx.beginPath(); + ctx.arc(x, y, radius, 0, 2 * Math.PI, false); ctx.stroke(); + + // disable shadows for other elements. this.disableShadow(ctx); - return this.via; } }, { - key: 'getPoint', + key: 'getDistanceToEdge', /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param via - * @returns {{x: number, y: number}} + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 * @private */ - value: function getPoint(percentage) { - var t = percentage; - var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * this.via.x + Math.pow(t, 2) * this.to.x; - var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * this.via.y + Math.pow(t, 2) * this.to.y; - - return { x: x, y: y }; - } - }, { - key: '_findBorderPosition', - value: function _findBorderPosition(nearNode, ctx) { - return this._findBorderPositionBezier(nearNode, ctx, this.via); - } - }, { - key: '_getDistanceToEdge', - value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { + value: function getDistanceToEdge(x1, y1, x2, y2, x3, y3, via) { // x3,y3 is the point - return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, this.via); - } - }]); - - return BezierEdgeDynamic; - })(_BezierEdgeBase3['default']); + var returnValue = 0; + if (this.from != this.to) { + returnValue = this._getDistanceToEdge(x1, y1, x2, y2, x3, y3, via); + } else { + var _getCircleData6 = this._getCircleData(); - exports['default'] = BezierEdgeDynamic; - module.exports = exports['default']; + var _getCircleData62 = _slicedToArray(_getCircleData6, 3); -/***/ }, -/* 98 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - - var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - - 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - - var _inherits = function (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) subClass.__proto__ = superClass; }; - - Object.defineProperty(exports, '__esModule', { - value: true - }); + var x = _getCircleData62[0]; + var y = _getCircleData62[1]; + var radius = _getCircleData62[2]; - var _BezierEdgeBase2 = __webpack_require__(103); + var dx = x - x3; + var dy = y - y3; + returnValue = Math.abs(Math.sqrt(dx * dx + dy * dy) - radius); + } - var _BezierEdgeBase3 = _interopRequireWildcard(_BezierEdgeBase2); + if (this.labelModule.size.left < x3 && this.labelModule.size.left + this.labelModule.size.width > x3 && this.labelModule.size.top < y3 && this.labelModule.size.top + this.labelModule.size.height > y3) { + return 0; + } else { + return returnValue; + } + } + }, { + key: '_getDistanceToLine', + value: function _getDistanceToLine(x1, y1, x2, y2, x3, y3) { + var px = x2 - x1; + var py = y2 - y1; + var something = px * px + py * py; + var u = ((x3 - x1) * px + (y3 - y1) * py) / something; - var BezierEdgeStatic = (function (_BezierEdgeBase) { - function BezierEdgeStatic(options, body, labelModule) { - _classCallCheck(this, BezierEdgeStatic); + if (u > 1) { + u = 1; + } else if (u < 0) { + u = 0; + } - _get(Object.getPrototypeOf(BezierEdgeStatic.prototype), 'constructor', this).call(this, options, body, labelModule); - } + var x = x1 + u * px; + var y = y1 + u * py; + var dx = x - x3; + var dy = y - y3; - _inherits(BezierEdgeStatic, _BezierEdgeBase); + //# Note: If the actual distance does not matter, + //# if you only want to compare what this function + //# returns to other results of this function, you + //# can just return the squared distance instead + //# (i.e. remove the sqrt) to gain a little performance - _createClass(BezierEdgeStatic, [{ - key: 'cleanup', - value: function cleanup() { - return false; + return Math.sqrt(dx * dx + dy * dy); } }, { - key: '_line', + key: 'drawArrowHead', /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private + * + * @param ctx + * @param position + * @param viaNode */ - value: function _line(ctx) { - // draw a straight line - ctx.beginPath(); - ctx.moveTo(this.from.x, this.from.y); - var via = this._getViaCoordinates(); - var returnValue = via; + value: function drawArrowHead(ctx, position, viaNode, selected, hover) { + // set style + ctx.strokeStyle = this.getColor(ctx); + ctx.fillStyle = ctx.strokeStyle; + ctx.lineWidth = this.getLineWidth(selected, hover); - // fallback to normal straight edges - if (via.x === undefined) { - ctx.lineTo(this.to.x, this.to.y); - returnValue = undefined; + // set lets + var angle = undefined; + var length = undefined; + var arrowPos = undefined; + var node1 = undefined; + var node2 = undefined; + var guideOffset = undefined; + var scaleFactor = undefined; + + if (position === 'from') { + node1 = this.from; + node2 = this.to; + guideOffset = 0.1; + scaleFactor = this.options.arrows.from.scaleFactor; + } else if (position === 'to') { + node1 = this.to; + node2 = this.from; + guideOffset = -0.1; + scaleFactor = this.options.arrows.to.scaleFactor; } else { - ctx.quadraticCurveTo(via.x, via.y, this.to.x, this.to.y); + node1 = this.to; + node2 = this.from; + scaleFactor = this.options.arrows.middle.scaleFactor; } - // draw shadow if enabled - this.enableShadow(ctx); - ctx.stroke(); - this.disableShadow(ctx); - return returnValue; - } - }, { - key: '_getViaCoordinates', - value: function _getViaCoordinates() { - var xVia = undefined; - var yVia = undefined; - var factor = this.options.smooth.roundness; - var type = this.options.smooth.type; - var dx = Math.abs(this.from.x - this.to.x); - var dy = Math.abs(this.from.y - this.to.y); - if (type === 'discrete' || type === 'diagonalCross') { - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y - factor * dy; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y - factor * dy; - } - } else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y + factor * dy; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y + factor * dy; - } - } - if (type === 'discrete') { - xVia = dx < factor * dy ? this.from.x : xVia; - } - } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y - factor * dx; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; - } - } else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y + factor * dx; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; - } - } - if (type === 'discrete') { - yVia = dy < factor * dx ? this.from.y : yVia; - } - } - } else if (type === 'straightCross') { - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { - // up - down - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1 - factor) * dy; - } else { - yVia = this.to.y + (1 - factor) * dy; - } - } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { - // left - right - if (this.from.x < this.to.x) { - xVia = this.to.x - (1 - factor) * dx; + + // if not connected to itself + if (node1 != node2) { + if (position !== 'middle') { + // draw arrow head + if (this.options.smooth.enabled === true) { + arrowPos = this.findBorderPosition(node1, ctx, { via: viaNode }); + var guidePos = this.getPoint(Math.max(0, Math.min(1, arrowPos.t + guideOffset)), viaNode); + angle = Math.atan2(arrowPos.y - guidePos.y, arrowPos.x - guidePos.x); } else { - xVia = this.to.x + (1 - factor) * dx; + angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); + arrowPos = this.findBorderPosition(node1, ctx); } - yVia = this.from.y; - } - } else if (type === 'horizontal') { - if (this.from.x < this.to.x) { - xVia = this.to.x - (1 - factor) * dx; - } else { - xVia = this.to.x + (1 - factor) * dx; - } - yVia = this.from.y; - } else if (type === 'vertical') { - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1 - factor) * dy; } else { - yVia = this.to.y + (1 - factor) * dy; + angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); + arrowPos = this.getPoint(0.6, viaNode); // this is 0.6 to account for the size of the arrow. } - } else if (type === 'curvedCW') { - dx = this.to.x - this.from.x; - dy = this.from.y - this.to.y; - var radius = Math.sqrt(dx * dx + dy * dy); - var pi = Math.PI; + // draw arrow at the end of the line + length = (10 + 5 * this.options.width) * scaleFactor; + ctx.arrow(arrowPos.x, arrowPos.y, angle, length); - var originalAngle = Math.atan2(dy, dx); - var myAngle = (originalAngle + (factor * 0.5 + 0.5) * pi) % (2 * pi); + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fill(); - xVia = this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle); - yVia = this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle); - } else if (type === 'curvedCCW') { - dx = this.to.x - this.from.x; - dy = this.from.y - this.to.y; - var radius = Math.sqrt(dx * dx + dy * dy); - var pi = Math.PI; + // disable shadows for other elements. + this.disableShadow(ctx); + ctx.stroke(); + } else { + // draw circle + var _angle = undefined, + point = undefined; - var originalAngle = Math.atan2(dy, dx); - var myAngle = (originalAngle + (-factor * 0.5 + 0.5) * pi) % (2 * pi); + var _getCircleData7 = this._getCircleData(ctx); - xVia = this.from.x + (factor * 0.5 + 0.5) * radius * Math.sin(myAngle); - yVia = this.from.y + (factor * 0.5 + 0.5) * radius * Math.cos(myAngle); - } else { - // continuous - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y - factor * dy; - xVia = this.to.x < xVia ? this.to.x : xVia; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y - factor * dy; - xVia = this.to.x > xVia ? this.to.x : xVia; - } - } else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y + factor * dy; - xVia = this.to.x < xVia ? this.to.x : xVia; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y + factor * dy; - xVia = this.to.x > xVia ? this.to.x : xVia; - } - } - } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y - factor * dx; - yVia = this.to.y > yVia ? this.to.y : yVia; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; - yVia = this.to.y > yVia ? this.to.y : yVia; - } - } else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y + factor * dx; - yVia = this.to.y < yVia ? this.to.y : yVia; - } else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; - yVia = this.to.y < yVia ? this.to.y : yVia; - } - } + var _getCircleData72 = _slicedToArray(_getCircleData7, 3); + + var x = _getCircleData72[0]; + var y = _getCircleData72[1]; + var radius = _getCircleData72[2]; + + if (position === 'from') { + point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); + _angle = point.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; + } else if (position === 'to') { + point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.6, high: 1, direction: 1 }); + _angle = point.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI; + } else { + point = this._pointOnCircle(x, y, radius, 0.175); + _angle = 3.9269908169872414; // === 0.175 * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; } - } - return { x: xVia, y: yVia }; - } - }, { - key: '_findBorderPosition', - value: function _findBorderPosition(nearNode, ctx) { - var options = arguments[2] === undefined ? {} : arguments[2]; - return this._findBorderPositionBezier(nearNode, ctx, options.via); + // draw the arrowhead + var _length = (10 + 5 * this.options.width) * scaleFactor; + ctx.arrow(point.x, point.y, _angle, _length); + + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fill(); + + // disable shadows for other elements. + this.disableShadow(ctx); + ctx.stroke(); + } } }, { - key: '_getDistanceToEdge', - value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { - var via = arguments[6] === undefined ? this._getViaCoordinates() : arguments[6]; - // x3,y3 is the point - return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via); + key: 'enableShadow', + value: function enableShadow(ctx) { + if (this.options.shadow.enabled === true) { + ctx.shadowColor = 'rgba(0,0,0,0.5)'; + ctx.shadowBlur = this.options.shadow.size; + ctx.shadowOffsetX = this.options.shadow.x; + ctx.shadowOffsetY = this.options.shadow.y; + } } }, { - key: 'getPoint', - - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param via - * @returns {{x: number, y: number}} - * @private - */ - value: function getPoint(percentage) { - var via = arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; - - var t = percentage; - var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * via.x + Math.pow(t, 2) * this.to.x; - var y = Math.pow(1 - t, 2) * this.from.y + 2 * t * (1 - t) * via.y + Math.pow(t, 2) * this.to.y; - - return { x: x, y: y }; + key: 'disableShadow', + value: function disableShadow(ctx) { + if (this.options.shadow.enabled === true) { + ctx.shadowColor = 'rgba(0,0,0,0)'; + ctx.shadowBlur = 0; + ctx.shadowOffsetX = 0; + ctx.shadowOffsetY = 0; + } } }]); - return BezierEdgeStatic; - })(_BezierEdgeBase3['default']); + return EdgeBase; + })(); - exports['default'] = BezierEdgeStatic; + exports['default'] = EdgeBase; module.exports = exports['default']; /***/ }, -/* 99 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36795,164 +37549,168 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _EdgeBase2 = __webpack_require__(104); + var _NodeBase2 = __webpack_require__(106); - var _EdgeBase3 = _interopRequireWildcard(_EdgeBase2); + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - var StraightEdge = (function (_EdgeBase) { - function StraightEdge(options, body, labelModule) { - _classCallCheck(this, StraightEdge); + 'use strict'; - _get(Object.getPrototypeOf(StraightEdge.prototype), 'constructor', this).call(this, options, body, labelModule); + var Box = (function (_NodeBase) { + function Box(options, body, labelModule) { + _classCallCheck(this, Box); + + _get(Object.getPrototypeOf(Box.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(StraightEdge, _EdgeBase); + _inherits(Box, _NodeBase); - _createClass(StraightEdge, [{ - key: 'cleanup', - value: function cleanup() { - return false; + _createClass(Box, [{ + key: 'resize', + value: function resize(ctx, selected) { + if (this.width === undefined) { + var margin = 5; + var textSize = this.labelModule.getTextSize(ctx, selected); + this.width = textSize.width + 2 * margin; + this.height = textSize.height + 2 * margin; + } } }, { - key: '_line', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx, selected); + this.left = x - this.width / 2; + this.top = y - this.height / 2; + + var borderWidth = this.options.borderWidth; + var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; + + ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; + ctx.lineWidth = selected ? selectionLineWidth : borderWidth; + ctx.lineWidth /= this.body.view.scale; + ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + + ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + + ctx.roundRect(this.left, this.top, this.width, this.height, this.options.size); - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private - */ - value: function _line(ctx) { - // draw a straight line - ctx.beginPath(); - ctx.moveTo(this.from.x, this.from.y); - ctx.lineTo(this.to.x, this.to.y); // draw shadow if enabled this.enableShadow(ctx); - ctx.stroke(); - this.disableShadow(ctx); - return undefined; - } - }, { - key: 'getPoint', + ctx.fill(); - /** - * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way - * @param percentage - * @param via - * @returns {{x: number, y: number}} - * @private - */ - value: function getPoint(percentage) { - return { - x: (1 - percentage) * this.from.x + percentage * this.to.x, - y: (1 - percentage) * this.from.y + percentage * this.to.y - }; - } - }, { - key: '_findBorderPosition', - value: function _findBorderPosition(nearNode, ctx) { - var node1 = this.to; - var node2 = this.from; - if (nearNode.id === this.from.id) { - node1 = this.from; - node2 = this.to; - } + // disable shadows for other elements. + this.disableShadow(ctx); - var angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); - var dx = node1.x - node2.x; - var dy = node1.y - node2.y; - var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); - var toBorderDist = nearNode.distanceToBorder(ctx, angle); - var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + ctx.stroke(); - var borderPos = {}; - borderPos.x = (1 - toBorderPoint) * node2.x + toBorderPoint * node1.x; - borderPos.y = (1 - toBorderPoint) * node2.y + toBorderPoint * node1.y; + this.boundingBox.top = this.top; + this.boundingBox.left = this.left; + this.boundingBox.right = this.left + this.width; + this.boundingBox.bottom = this.top + this.height; - return borderPos; + this.labelModule.draw(ctx, x, y, selected); } }, { - key: '_getDistanceToEdge', - value: function _getDistanceToEdge(x1, y1, x2, y2, x3, y3) { - // x3,y3 is the point - return this._getDistanceToLine(x1, y1, x2, y2, x3, y3); + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + var a = this.width / 2; + var b = this.height / 2; + var w = Math.sin(angle) * a; + var h = Math.cos(angle) * b; + return a * b / Math.sqrt(w * w + h * h); } }]); - return StraightEdge; - })(_EdgeBase3['default']); + return Box; + })(_NodeBase3['default']); - exports['default'] = StraightEdge; + exports['default'] = Box; module.exports = exports['default']; /***/ }, -/* 100 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + Object.defineProperty(exports, '__esModule', { value: true }); - var NodeBase = (function () { - function NodeBase(options, body, labelModule) { - _classCallCheck(this, NodeBase); + var _CircleImageBase2 = __webpack_require__(107); - this.body = body; - this.labelModule = labelModule; - this.setOptions(options); - this.top = undefined; - this.left = undefined; - this.height = undefined; - this.boundingBox = { top: 0, left: 0, right: 0, bottom: 0 }; - } + var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); - _createClass(NodeBase, [{ - key: 'setOptions', - value: function setOptions(options) { - this.options = options; - } - }, { - key: '_distanceToBorder', - value: function _distanceToBorder(angle) { - var borderWidth = 1; - return Math.min(Math.abs(this.width / 2 / Math.cos(angle)), Math.abs(this.height / 2 / Math.sin(angle))) + borderWidth; + 'use strict'; + + var Circle = (function (_CircleImageBase) { + function Circle(options, body, labelModule) { + _classCallCheck(this, Circle); + + _get(Object.getPrototypeOf(Circle.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Circle, _CircleImageBase); + + _createClass(Circle, [{ + key: 'resize', + value: function resize(ctx, selected) { + if (this.width === undefined) { + var margin = 5; + var textSize = this.labelModule.getTextSize(ctx, selected); + var diameter = Math.max(textSize.width, textSize.height) + 2 * margin; + this.options.size = diameter / 2; + + this.width = diameter; + this.height = diameter; + } } }, { - key: 'enableShadow', - value: function enableShadow(ctx) { - if (this.options.shadow.enabled === true) { - ctx.shadowColor = 'rgba(0,0,0,0.5)'; - ctx.shadowBlur = this.options.shadow.size; - ctx.shadowOffsetX = this.options.shadow.x; - ctx.shadowOffsetY = this.options.shadow.y; - } + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx, selected); + this.left = x - this.width / 2; + this.top = y - this.height / 2; + + this._drawRawCircle(ctx, x, y, selected, hover, this.options.size); + + this.boundingBox.top = y - this.options.size; + this.boundingBox.left = x - this.options.size; + this.boundingBox.right = x + this.options.size; + this.boundingBox.bottom = y + this.options.size; + + this.labelModule.draw(ctx, x, y, selected); } }, { - key: 'disableShadow', - value: function disableShadow(ctx) { - if (this.options.shadow.enabled === true) { - ctx.shadowColor = 'rgba(0,0,0,0)'; - ctx.shadowBlur = 0; - ctx.shadowOffsetX = 0; - ctx.shadowOffsetY = 0; - } + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + var a = this.width / 2; + var b = this.height / 2; + var w = Math.sin(angle) * a; + var h = Math.cos(angle) * b; + return a * b / Math.sqrt(w * w + h * h); } }]); - return NodeBase; - })(); + return Circle; + })(_CircleImageBase3['default']); - exports['default'] = NodeBase; + exports['default'] = Circle; module.exports = exports['default']; /***/ }, -/* 101 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -36971,109 +37729,89 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _NodeBase2 = __webpack_require__(100); + var _CircleImageBase2 = __webpack_require__(107); - var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); - var CircleImageBase = (function (_NodeBase) { - function CircleImageBase(options, body, labelModule) { - _classCallCheck(this, CircleImageBase); + 'use strict'; - _get(Object.getPrototypeOf(CircleImageBase.prototype), 'constructor', this).call(this, options, body, labelModule); + var CircularImage = (function (_CircleImageBase) { + function CircularImage(options, body, labelModule, imageObj) { + _classCallCheck(this, CircularImage); + + _get(Object.getPrototypeOf(CircularImage.prototype), 'constructor', this).call(this, options, body, labelModule); + this.imageObj = imageObj; + this._swapToImageResizeWhenImageLoaded = true; } - _inherits(CircleImageBase, _NodeBase); + _inherits(CircularImage, _CircleImageBase); - _createClass(CircleImageBase, [{ - key: '_resizeImage', - value: function _resizeImage() { - if (!this.width || !this.height) { - // undefined or 0 - var width, height, ratio; - if (this.imageObj.width && this.imageObj.height) { - // not undefined or 0 - width = 0; - height = 0; + _createClass(CircularImage, [{ + key: 'resize', + value: function resize() { + if (this.imageObj.src === undefined || this.imageObj.width === undefined || this.imageObj.height === undefined) { + if (!this.width) { + var diameter = this.options.size * 2; + this.width = diameter; + this.height = diameter; + this._swapToImageResizeWhenImageLoaded = true; } - if (this.imageObj.width > this.imageObj.height) { - ratio = this.imageObj.width / this.imageObj.height; - width = this.options.size * 2 * ratio || this.imageObj.width; - height = this.options.size * 2 || this.imageObj.height; - } else { - ratio = this.imageObj.height / this.imageObj.width; - width = this.options.size * 2 || this.imageObj.width; - height = this.options.size * 2 * ratio || this.imageObj.height; + } else { + if (this._swapToImageResizeWhenImageLoaded) { + this.width = undefined; + this.height = undefined; + this._swapToImageResizeWhenImageLoaded = false; } - this.width = width; - this.height = height; + this._resizeImage(); } } }, { - key: '_drawRawCircle', - value: function _drawRawCircle(ctx, x, y, selected, hover, size) { - var borderWidth = this.options.borderWidth; - var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(); - ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; + this.left = x - this.width / 2; + this.top = y - this.height / 2; - ctx.lineWidth = selected ? selectionLineWidth : borderWidth; - ctx.lineWidth *= this.networkScaleInv; - ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + var size = Math.min(0.5 * this.height, 0.5 * this.width); + this._drawRawCircle(ctx, x, y, selected, hover, size); - ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + ctx.save(); ctx.circle(x, y, size); + ctx.stroke(); + ctx.clip(); - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); + this._drawImageAtPosition(ctx); - // disable shadows for other elements. - this.disableShadow(ctx); + ctx.restore(); - ctx.stroke(); - } - }, { - key: '_drawImageAtPosition', - value: function _drawImageAtPosition(ctx) { - if (this.imageObj.width != 0) { - // draw the image - ctx.globalAlpha = 1; + this.boundingBox.top = y - this.options.size; + this.boundingBox.left = x - this.options.size; + this.boundingBox.right = x + this.options.size; + this.boundingBox.bottom = y + this.options.size; - // draw shadow if enabled - this.enableShadow(ctx); - ctx.drawImage(this.imageObj, this.left, this.top, this.width, this.height); + this._drawImageLabel(ctx, x, y, selected); - // disable shadows for other elements. - this.disableShadow(ctx); - } + this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); + this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); + this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); } }, { - key: '_drawImageLabel', - value: function _drawImageLabel(ctx, x, y, selected) { - var yLabel; - var offset = 0; - - if (this.height !== undefined) { - offset = this.height * 0.5; - var labelDimensions = this.labelModule.getTextSize(ctx); - if (labelDimensions.lineCount >= 1) { - offset += labelDimensions.height / 2; - } - } - - yLabel = y + offset; - this.labelModule.draw(ctx, x, yLabel, selected, 'hanging'); + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + return this._distanceToBorder(angle); } }]); - return CircleImageBase; - })(_NodeBase3['default']); + return CircularImage; + })(_CircleImageBase3['default']); - exports['default'] = CircleImageBase; + exports['default'] = CircularImage; module.exports = exports['default']; /***/ }, -/* 102 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -37092,33 +37830,36 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _NodeBase2 = __webpack_require__(100); + var _NodeBase2 = __webpack_require__(106); var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - var ShapeBase = (function (_NodeBase) { - function ShapeBase(options, body, labelModule) { - _classCallCheck(this, ShapeBase); + 'use strict'; - _get(Object.getPrototypeOf(ShapeBase.prototype), 'constructor', this).call(this, options, body, labelModule); + var Database = (function (_NodeBase) { + function Database(options, body, labelModule) { + _classCallCheck(this, Database); + + _get(Object.getPrototypeOf(Database.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(ShapeBase, _NodeBase); + _inherits(Database, _NodeBase); - _createClass(ShapeBase, [{ - key: '_resizeShape', - value: function _resizeShape() { + _createClass(Database, [{ + key: 'resize', + value: function resize(ctx, selected) { if (this.width === undefined) { - var size = 2 * this.options.size; + var margin = 5; + var textSize = this.labelModule.getTextSize(ctx, selected); + var size = textSize.width + 2 * margin; this.width = size; this.height = size; } } }, { - key: '_drawShape', - value: function _drawShape(ctx, shape, sizeMultiplier, x, y, selected, hover) { - this._resizeShape(); - + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx, selected); this.left = x - this.width / 2; this.top = y - this.height / 2; @@ -37126,11 +37867,12 @@ return /******/ (function(modules) { // webpackBootstrap var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - ctx.lineWidth = selected ? selectionLineWidth : borderWidth; - ctx.lineWidth /= this.body.view.scale; + ctx.lineWidth = this.selected ? selectionLineWidth : borderWidth; + ctx.lineWidth *= this.networkScaleInv; ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; - ctx[shape](x, y, this.options.size); + ctx.database(x - this.width / 2, y - this.height * 0.5, this.width, this.height); // draw shadow if enabled this.enableShadow(ctx); @@ -37141,29 +37883,33 @@ return /******/ (function(modules) { // webpackBootstrap ctx.stroke(); - this.boundingBox.top = y - this.options.size; - this.boundingBox.left = x - this.options.size; - this.boundingBox.right = x + this.options.size; - this.boundingBox.bottom = y + this.options.size; + this.boundingBox.top = this.top; + this.boundingBox.left = this.left; + this.boundingBox.right = this.left + this.width; + this.boundingBox.bottom = this.top + this.height; - if (this.options.label !== undefined) { - var yLabel = y + 0.5 * this.height + 3; // the + 3 is to offset it a bit below the node. - this.labelModule.draw(ctx, x, yLabel, selected, 'hanging'); - this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); - this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); - this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); - } + this.labelModule.draw(ctx, x, y, selected); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + var a = this.width / 2; + var b = this.height / 2; + var w = Math.sin(angle) * a; + var h = Math.cos(angle) * b; + return a * b / Math.sqrt(w * w + h * h); } }]); - return ShapeBase; + return Database; })(_NodeBase3['default']); - exports['default'] = ShapeBase; + exports['default'] = Database; module.exports = exports['default']; /***/ }, -/* 103 */ +/* 96 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -37182,692 +37928,737 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _EdgeBase2 = __webpack_require__(104); + var _ShapeBase2 = __webpack_require__(108); - var _EdgeBase3 = _interopRequireWildcard(_EdgeBase2); + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); - var BezierEdgeBase = (function (_EdgeBase) { - function BezierEdgeBase(options, body, labelModule) { - _classCallCheck(this, BezierEdgeBase); + 'use strict'; - _get(Object.getPrototypeOf(BezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule); + var Diamond = (function (_ShapeBase) { + function Diamond(options, body, labelModule) { + _classCallCheck(this, Diamond); + + _get(Object.getPrototypeOf(Diamond.prototype), 'constructor', this).call(this, options, body, labelModule); } - _inherits(BezierEdgeBase, _EdgeBase); + _inherits(Diamond, _ShapeBase); - _createClass(BezierEdgeBase, [{ - key: '_findBorderPositionBezier', + _createClass(Diamond, [{ + key: 'resize', + value: function resize(ctx) { + this._resizeShape(); + } + }, { + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'diamond', 4, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + return this._distanceToBorder(angle); + } + }]); - /** - * This function uses binary search to look for the point where the bezier curve crosses the border of the node. - * - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode - */ - value: function _findBorderPositionBezier(nearNode, ctx) { - var viaNode = arguments[2] === undefined ? this._getViaCoordinates() : arguments[2]; + return Diamond; + })(_ShapeBase3['default']); - var maxIterations = 10; - var iteration = 0; - var low = 0; - var high = 1; - var pos, angle, distanceToBorder, distanceToPoint, difference; - var threshold = 0.2; - var node = this.to; - var from = false; - if (nearNode.id === this.from.id) { - node = this.from; - from = true; - } + exports['default'] = Diamond; + module.exports = exports['default']; - while (low <= high && iteration < maxIterations) { - var middle = (low + high) * 0.5; +/***/ }, +/* 97 */ +/***/ function(module, exports, __webpack_require__) { - pos = this.getPoint(middle, viaNode); - angle = Math.atan2(node.y - pos.y, node.x - pos.x); - distanceToBorder = node.distanceToBorder(ctx, angle); - distanceToPoint = Math.sqrt(Math.pow(pos.x - node.x, 2) + Math.pow(pos.y - node.y, 2)); - difference = distanceToBorder - distanceToPoint; - if (Math.abs(difference) < threshold) { - break; // found - } else if (difference < 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (from === false) { - low = middle; - } else { - high = middle; - } - } else { - if (from === false) { - high = middle; - } else { - low = middle; - } - } + 'use strict'; - iteration++; - } - pos.t = middle; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - return pos; - } - }, { - key: '_getDistanceToBezierEdge', + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @private - */ - value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via) { - // x3,y3 is the point - var xVia = undefined, - yVia = undefined; - xVia = via.x; - yVia = via.y; - var minDistance = 1000000000; - var distance = undefined; - var i = undefined, - t = undefined, - x = undefined, - y = undefined; - var lastX = x1; - var lastY = y1; - for (i = 1; i < 10; i++) { - t = 0.1 * i; - x = Math.pow(1 - t, 2) * x1 + 2 * t * (1 - t) * xVia + Math.pow(t, 2) * x2; - y = Math.pow(1 - t, 2) * y1 + 2 * t * (1 - t) * yVia + Math.pow(t, 2) * y2; - if (i > 0) { - distance = this._getDistanceToLine(lastX, lastY, x, y, x3, y3); - minDistance = distance < minDistance ? distance : minDistance; - } - lastX = x; - lastY = y; - } + 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; }; })(); - return minDistance; + var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _ShapeBase2 = __webpack_require__(108); + + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + + 'use strict'; + + var Dot = (function (_ShapeBase) { + function Dot(options, body, labelModule) { + _classCallCheck(this, Dot); + + _get(Object.getPrototypeOf(Dot.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Dot, _ShapeBase); + + _createClass(Dot, [{ + key: 'resize', + value: function resize(ctx) { + this._resizeShape(); + } + }, { + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'circle', 2, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + return this.options.size + this.options.borderWidth; } }]); - return BezierEdgeBase; - })(_EdgeBase3['default']); + return Dot; + })(_ShapeBase3['default']); - exports['default'] = BezierEdgeBase; + exports['default'] = Dot; module.exports = exports['default']; /***/ }, -/* 104 */ +/* 98 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var _slicedToArray = function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i['return']) _i['return'](); } finally { if (_d) throw _e; } } return _arr; } else { throw new TypeError('Invalid attempt to destructure non-iterable instance'); } }; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + Object.defineProperty(exports, '__esModule', { value: true }); - var util = __webpack_require__(1); - var EdgeBase = (function () { - function EdgeBase(options, body, labelModule) { - _classCallCheck(this, EdgeBase); + var _NodeBase2 = __webpack_require__(106); - this.body = body; - this.labelModule = labelModule; - this.setOptions(options); - this.colorDirty = true; - this.color = {}; - this.selectionWidth = 2; - this.hoverWidth = 1.5; + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + + 'use strict'; + + var Ellipse = (function (_NodeBase) { + function Ellipse(options, body, labelModule) { + _classCallCheck(this, Ellipse); + + _get(Object.getPrototypeOf(Ellipse.prototype), 'constructor', this).call(this, options, body, labelModule); } - _createClass(EdgeBase, [{ - key: 'setOptions', - value: function setOptions(options) { - this.options = options; - this.from = this.body.nodes[this.options.from]; - this.to = this.body.nodes[this.options.to]; - this.id = this.options.id; + _inherits(Ellipse, _NodeBase); + + _createClass(Ellipse, [{ + key: 'resize', + value: function resize(ctx, selected) { + if (this.width === undefined) { + var textSize = this.labelModule.getTextSize(ctx, selected); + + this.width = textSize.width * 1.5; + this.height = textSize.height * 2; + if (this.width < this.height) { + this.width = this.height; + } + } } }, { - key: 'togglePhysics', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx, selected); + this.left = x - this.width / 2; + this.top = y - this.height / 2; - /** - * overloadable if the shape has to toggle the via node to disabled - * @param status - */ - value: function togglePhysics(status) {} - }, { - key: 'drawLine', + var borderWidth = this.options.borderWidth; + var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - /** - * Redraw a edge as a line - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private - */ - value: function drawLine(ctx, selected, hover) { - // set style - ctx.strokeStyle = this.getColor(ctx); - ctx.lineWidth = this.getLineWidth(selected, hover); - var via = undefined; - if (this.options.dashes.enabled === true) { - via = this._drawDashedLine(ctx); - } else { - via = this._drawLine(ctx); - } - return via; - } - }, { - key: '_drawLine', - value: function _drawLine(ctx) { - var via = undefined; - if (this.from != this.to) { - // draw line - via = this._line(ctx); - } else { - var _getCircleData = this._getCircleData(ctx); + ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - var _getCircleData2 = _slicedToArray(_getCircleData, 3); + ctx.lineWidth = selected ? selectionLineWidth : borderWidth; + ctx.lineWidth /= this.body.view.scale; + ctx.lineWidth = Math.min(this.width, ctx.lineWidth); - var x = _getCircleData2[0]; - var y = _getCircleData2[1]; - var radius = _getCircleData2[2]; + ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + ctx.ellipse(this.left, this.top, this.width, this.height); - this._circle(ctx, x, y, radius); - } - return via; + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fill(); + + // disable shadows for other elements. + this.disableShadow(ctx); + + ctx.stroke(); + + this.boundingBox.left = this.left; + this.boundingBox.top = this.top; + this.boundingBox.bottom = this.top + this.height; + this.boundingBox.right = this.left + this.width; + + this.labelModule.draw(ctx, x, y, selected); } }, { - key: '_drawDashedLine', - value: function _drawDashedLine(ctx) { - var via = undefined; - ctx.lineCap = 'round'; - var pattern = [5, 5]; - if (this.options.dashes.pattern !== undefined) { - if (Array.isArray(this.options.dashes.pattern) === true) { - pattern = this.options.dashes.pattern; - } - } + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + var a = this.width / 2; + var b = this.height / 2; + var w = Math.sin(angle) * a; + var h = Math.cos(angle) * b; + return a * b / Math.sqrt(w * w + h * h); + } + }]); - // only firefox and chrome support this method, else we use the legacy one. - if (ctx.setLineDash !== undefined && this.options.dashes.altLength === undefined) { - ctx.save(); + return Ellipse; + })(_NodeBase3['default']); - // set dash settings for chrome or firefox - ctx.setLineDash(pattern); - ctx.lineDashOffset = 0; + exports['default'] = Ellipse; + module.exports = exports['default']; - // draw the line - if (this.from != this.to) { - // draw line - via = this._line(ctx); - } else { - var _getCircleData3 = this._getCircleData(ctx); +/***/ }, +/* 99 */ +/***/ function(module, exports, __webpack_require__) { - var _getCircleData32 = _slicedToArray(_getCircleData3, 3); + 'use strict'; - var x = _getCircleData32[0]; - var y = _getCircleData32[1]; - var radius = _getCircleData32[2]; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - this._circle(ctx, x, y, radius); - } + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - // restore the dash settings. - ctx.setLineDash([0]); - ctx.lineDashOffset = 0; - ctx.restore(); - } else { - // unsupporting smooth lines + 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; }; })(); - if (this.from != this.to) { - // draw line - ctx.dashedLine(this.from.x, this.from.y, this.to.x, this.to.y, pattern); - } else { - var _getCircleData4 = this._getCircleData(ctx); + var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - var _getCircleData42 = _slicedToArray(_getCircleData4, 3); + var _inherits = function (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) subClass.__proto__ = superClass; }; - var x = _getCircleData42[0]; - var y = _getCircleData42[1]; - var radius = _getCircleData42[2]; + Object.defineProperty(exports, '__esModule', { + value: true + }); - this._circle(ctx, x, y, radius); - } - // draw shadow if enabled - this.enableShadow(ctx); + var _NodeBase2 = __webpack_require__(106); - ctx.stroke(); + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - // disable shadows for other elements. - this.disableShadow(ctx); + 'use strict'; + + var Icon = (function (_NodeBase) { + function Icon(options, body, labelModule) { + _classCallCheck(this, Icon); + + _get(Object.getPrototypeOf(Icon.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Icon, _NodeBase); + + _createClass(Icon, [{ + key: 'resize', + value: function resize(ctx) { + if (this.width === undefined) { + var margin = 5; + var iconSize = { + width: Number(this.options.icon.size), + height: Number(this.options.icon.size) + }; + this.width = iconSize.width + 2 * margin; + this.height = iconSize.height + 2 * margin; } - return via; } }, { - key: 'findBorderPosition', - value: function findBorderPosition(nearNode, ctx, options) { - if (this.from != this.to) { - return this._findBorderPosition(nearNode, ctx, options); - } else { - return this._findBorderPositionCircle(nearNode, ctx, options); + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx); + this.options.icon.size = this.options.icon.size || 50; + + this.left = x - this.width * 0.5; + this.top = y - this.height * 0.5; + this._icon(ctx, x, y, selected); + + this.boundingBox.top = y - this.options.icon.size * 0.5; + this.boundingBox.left = x - this.options.icon.size * 0.5; + this.boundingBox.right = x + this.options.icon.size * 0.5; + this.boundingBox.bottom = y + this.options.icon.size * 0.5; + + if (this.options.label !== undefined) { + var iconTextSpacing = 5; + this.labelModule.draw(ctx, x, y + this.height * 0.5 + iconTextSpacing, selected); + this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); + this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); + this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); } } }, { - key: 'findBorderPositions', - value: function findBorderPositions(ctx) { - var from = {}; - var to = {}; - if (this.from != this.to) { - from = this._findBorderPosition(this.from, ctx); - to = this._findBorderPosition(this.to, ctx); - } else { - var _getCircleData5 = this._getCircleData(ctx); + key: '_icon', + value: function _icon(ctx, x, y, selected) { + var iconSize = Number(this.options.icon.size); - var _getCircleData52 = _slicedToArray(_getCircleData5, 3); + if (this.options.icon.code !== undefined) { + ctx.font = (selected ? 'bold ' : '') + iconSize + 'px ' + this.options.icon.face; - var x = _getCircleData52[0]; - var y = _getCircleData52[1]; - var radius = _getCircleData52[2]; + // draw icon + ctx.fillStyle = this.options.icon.color || 'black'; + ctx.textAlign = 'center'; + ctx.textBaseline = 'middle'; - from = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); - to = this._findBorderPositionCircle(this.from, ctx, { x: x, y: y, low: 0.6, high: 0.8, direction: 1 }); + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fillText(this.options.icon.code, x, y); + + // disable shadows for other elements. + this.disableShadow(ctx); + } else { + console.error('When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.'); } - return { from: from, to: to }; } }, { - key: '_getCircleData', - value: function _getCircleData(ctx) { - var x = undefined, - y = undefined; - var node = this.from; - var radius = this.options.selfReferenceSize; + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + this._distanceToBorder(angle); + } + }]); - if (ctx !== undefined) { - if (node.shape.width === undefined) { - node.shape.resize(ctx); - } - } + return Icon; + })(_NodeBase3['default']); - // get circle coordinates - if (node.shape.width > node.shape.height) { - x = node.x + node.shape.width * 0.5; - y = node.y - radius; - } else { - x = node.x + radius; - y = node.y - node.shape.height * 0.5; - } - return [x, y, radius]; + exports['default'] = Icon; + module.exports = exports['default']; + +/***/ }, +/* 100 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _CircleImageBase2 = __webpack_require__(107); + + var _CircleImageBase3 = _interopRequireWildcard(_CircleImageBase2); + + 'use strict'; + + var Image = (function (_CircleImageBase) { + function Image(options, body, labelModule, imageObj) { + _classCallCheck(this, Image); + + _get(Object.getPrototypeOf(Image.prototype), 'constructor', this).call(this, options, body, labelModule); + this.imageObj = imageObj; + } + + _inherits(Image, _CircleImageBase); + + _createClass(Image, [{ + key: 'resize', + value: function resize() { + this._resizeImage(); } }, { - key: '_pointOnCircle', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(); + this.left = x - this.width / 2; + this.top = y - this.height / 2; - /** - * Get a point on a circle - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @param {Number} percentage. Value between 0 (line start) and 1 (line end) - * @return {Object} point - * @private - */ - value: function _pointOnCircle(x, y, radius, percentage) { - var angle = percentage * 2 * Math.PI; - return { - x: x + radius * Math.cos(angle), - y: y - radius * Math.sin(angle) - }; + this._drawImageAtPosition(ctx); + + this.boundingBox.top = this.top; + this.boundingBox.left = this.left; + this.boundingBox.right = this.left + this.width; + this.boundingBox.bottom = this.top + this.height; + + this._drawImageLabel(ctx, x, y, selected || hover); + this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); + this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); + this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); } }, { - key: '_findBorderPositionCircle', + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + var a = this.width / 2; + var b = this.height / 2; + var w = Math.sin(angle) * a; + var h = Math.cos(angle) * b; + return a * b / Math.sqrt(w * w + h * h); + } + }]); - /** - * This function uses binary search to look for the point where the circle crosses the border of the node. - * @param node - * @param ctx - * @param options - * @returns {*} - * @private - */ - value: function _findBorderPositionCircle(node, ctx, options) { - var x = options.x; - var y = options.y; - var low = options.low; - var high = options.high; - var direction = options.direction; + return Image; + })(_CircleImageBase3['default']); - var maxIterations = 10; - var iteration = 0; - var radius = this.options.selfReferenceSize; - var pos = undefined, - angle = undefined, - distanceToBorder = undefined, - distanceToPoint = undefined, - difference = undefined; - var threshold = 0.05; - var middle = (low + high) * 0.5; + exports['default'] = Image; + module.exports = exports['default']; - while (low <= high && iteration < maxIterations) { - middle = (low + high) * 0.5; +/***/ }, +/* 101 */ +/***/ function(module, exports, __webpack_require__) { - pos = this._pointOnCircle(x, y, radius, middle); - angle = Math.atan2(node.y - pos.y, node.x - pos.x); - distanceToBorder = node.distanceToBorder(ctx, angle); - distanceToPoint = Math.sqrt(Math.pow(pos.x - node.x, 2) + Math.pow(pos.y - node.y, 2)); - difference = distanceToBorder - distanceToPoint; - if (Math.abs(difference) < threshold) { - break; // found - } else if (difference > 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (direction > 0) { - low = middle; - } else { - high = middle; - } - } else { - if (direction > 0) { - high = middle; - } else { - low = middle; - } - } - iteration++; - } - pos.t = middle; + 'use strict'; - return pos; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _ShapeBase2 = __webpack_require__(108); + + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + + 'use strict'; + + var Square = (function (_ShapeBase) { + function Square(options, body, labelModule) { + _classCallCheck(this, Square); + + _get(Object.getPrototypeOf(Square.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Square, _ShapeBase); + + _createClass(Square, [{ + key: 'resize', + value: function resize() { + this._resizeShape(); } }, { - key: 'getLineWidth', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'square', 2, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + return this._distanceToBorder(angle); + } + }]); - /** - * Get the line width of the edge. Depends on width and whether one of the - * connected nodes is selected. - * @return {Number} width - * @private - */ - value: function getLineWidth(selected, hover) { - if (selected === true) { - return Math.max(this.selectionWidth, 0.3 / this.body.view.scale); - } else { - if (hover === true) { - return Math.max(this.hoverWidth, 0.3 / this.body.view.scale); - } else { - return Math.max(this.options.width, 0.3 / this.body.view.scale); - } - } + return Square; + })(_ShapeBase3['default']); + + exports['default'] = Square; + module.exports = exports['default']; + +/***/ }, +/* 102 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _ShapeBase2 = __webpack_require__(108); + + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + + 'use strict'; + + var Star = (function (_ShapeBase) { + function Star(options, body, labelModule) { + _classCallCheck(this, Star); + + _get(Object.getPrototypeOf(Star.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Star, _ShapeBase); + + _createClass(Star, [{ + key: 'resize', + value: function resize(ctx) { + this._resizeShape(); } }, { - key: 'getColor', - value: function getColor(ctx) { - var colorOptions = this.options.color; + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'star', 4, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + return this._distanceToBorder(angle); + } + }]); - if (colorOptions.inherit !== false) { - // when this is a loop edge, just use the 'from' method - if (colorOptions.inherit === 'both' && this.from.id !== this.to.id) { - var grd = ctx.createLinearGradient(this.from.x, this.from.y, this.to.x, this.to.y); - var fromColor = undefined, - toColor = undefined; - fromColor = this.from.options.color.highlight.border; - toColor = this.to.options.color.highlight.border; + return Star; + })(_ShapeBase3['default']); - if (this.from.selected === false && this.to.selected === false) { - fromColor = util.overrideOpacity(this.from.options.color.border, this.options.color.opacity); - toColor = util.overrideOpacity(this.to.options.color.border, this.options.color.opacity); - } else if (this.from.selected === true && this.to.selected === false) { - toColor = this.to.options.color.border; - } else if (this.from.selected === false && this.to.selected === true) { - fromColor = this.from.options.color.border; - } - grd.addColorStop(0, fromColor); - grd.addColorStop(1, toColor); + exports['default'] = Star; + module.exports = exports['default']; - // -------------------- this returns -------------------- // - return grd; - } +/***/ }, +/* 103 */ +/***/ function(module, exports, __webpack_require__) { - if (this.colorDirty === true) { - if (colorOptions.inherit === 'to') { - this.color.highlight = this.to.options.color.highlight.border; - this.color.hover = this.to.options.color.hover.border; - this.color.color = util.overrideOpacity(this.to.options.color.border, colorOptions.opacity); - } else { - // (this.options.color.inherit.source === "from") { - this.color.highlight = this.from.options.color.highlight.border; - this.color.hover = this.from.options.color.hover.border; - this.color.color = util.overrideOpacity(this.from.options.color.border, colorOptions.opacity); - } - } - } else if (this.colorDirty === true) { - this.color.highlight = colorOptions.highlight; - this.color.hover = colorOptions.hover; - this.color.color = util.overrideOpacity(colorOptions.color, colorOptions.opacity); - } + 'use strict'; - // if color inherit is on and gradients are used, the function has already returned by now. - this.colorDirty = false; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - if (this.selected === true) { - return this.color.highlight; - } else if (this.hover === true) { - return this.color.hover; - } else { - return this.color.color; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _NodeBase2 = __webpack_require__(106); + + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); + + 'use strict'; + + var Text = (function (_NodeBase) { + function Text(options, body, labelModule) { + _classCallCheck(this, Text); + + _get(Object.getPrototypeOf(Text.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Text, _NodeBase); + + _createClass(Text, [{ + key: 'resize', + value: function resize(ctx, selected) { + if (this.width === undefined) { + var margin = 5; + var textSize = this.labelModule.getTextSize(ctx, selected); + this.width = textSize.width + 2 * margin; + this.height = textSize.height + 2 * margin; } } }, { - key: '_circle', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this.resize(ctx, selected || hover); + this.left = x - this.width / 2; + this.top = y - this.height / 2; - /** - * Draw a line from a node to itself, a circle - * @param {CanvasRenderingContext2D} ctx - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @private - */ - value: function _circle(ctx, x, y, radius) { // draw shadow if enabled this.enableShadow(ctx); - - // draw a circle - ctx.beginPath(); - ctx.arc(x, y, radius, 0, 2 * Math.PI, false); - ctx.stroke(); + this.labelModule.draw(ctx, x, y, selected || hover); // disable shadows for other elements. this.disableShadow(ctx); + + this.boundingBox.top = this.top; + this.boundingBox.left = this.left; + this.boundingBox.right = this.left + this.width; + this.boundingBox.bottom = this.top + this.height; } }, { - key: 'getDistanceToEdge', + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + this.resize(ctx); + return this._distanceToBorder(angle); + } + }]); - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @private - */ - value: function getDistanceToEdge(x1, y1, x2, y2, x3, y3, via) { - // x3,y3 is the point - var returnValue = 0; - if (this.from != this.to) { - returnValue = this._getDistanceToEdge(x1, y1, x2, y2, x3, y3, via); - } else { - var _getCircleData6 = this._getCircleData(); + return Text; + })(_NodeBase3['default']); - var _getCircleData62 = _slicedToArray(_getCircleData6, 3); + exports['default'] = Text; + module.exports = exports['default']; - var x = _getCircleData62[0]; - var y = _getCircleData62[1]; - var radius = _getCircleData62[2]; +/***/ }, +/* 104 */ +/***/ function(module, exports, __webpack_require__) { - var dx = x - x3; - var dy = y - y3; - returnValue = Math.abs(Math.sqrt(dx * dx + dy * dy) - radius); - } + 'use strict'; - if (this.labelModule.size.left < x3 && this.labelModule.size.left + this.labelModule.size.width > x3 && this.labelModule.size.top < y3 && this.labelModule.size.top + this.labelModule.size.height > y3) { - return 0; - } else { - return returnValue; - } - } - }, { - key: '_getDistanceToLine', - value: function _getDistanceToLine(x1, y1, x2, y2, x3, y3) { - var px = x2 - x1; - var py = y2 - y1; - var something = px * px + py * py; - var u = ((x3 - x1) * px + (y3 - y1) * py) / something; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; - if (u > 1) { - u = 1; - } else if (u < 0) { - u = 0; - } + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - var x = x1 + u * px; - var y = y1 + u * py; - var dx = x - x3; - var dy = y - y3; + 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; }; })(); - //# Note: If the actual distance does not matter, - //# if you only want to compare what this function - //# returns to other results of this function, you - //# can just return the squared distance instead - //# (i.e. remove the sqrt) to gain a little performance + var _get = function get(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; - return Math.sqrt(dx * dx + dy * dy); + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _ShapeBase2 = __webpack_require__(108); + + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + + 'use strict'; + + var Triangle = (function (_ShapeBase) { + function Triangle(options, body, labelModule) { + _classCallCheck(this, Triangle); + + _get(Object.getPrototypeOf(Triangle.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(Triangle, _ShapeBase); + + _createClass(Triangle, [{ + key: 'resize', + value: function resize(ctx) { + this._resizeShape(); } }, { - key: 'drawArrowHead', + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'triangle', 3, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + return this._distanceToBorder(angle); + } + }]); - /** - * - * @param ctx - * @param position - * @param viaNode - */ - value: function drawArrowHead(ctx, position, viaNode, selected, hover) { - // set style - ctx.strokeStyle = this.getColor(ctx); - ctx.fillStyle = ctx.strokeStyle; - ctx.lineWidth = this.getLineWidth(selected, hover); + return Triangle; + })(_ShapeBase3['default']); - // set lets - var angle = undefined; - var length = undefined; - var arrowPos = undefined; - var node1 = undefined; - var node2 = undefined; - var guideOffset = undefined; - var scaleFactor = undefined; + exports['default'] = Triangle; + module.exports = exports['default']; - if (position === 'from') { - node1 = this.from; - node2 = this.to; - guideOffset = 0.1; - scaleFactor = this.options.arrows.from.scaleFactor; - } else if (position === 'to') { - node1 = this.to; - node2 = this.from; - guideOffset = -0.1; - scaleFactor = this.options.arrows.to.scaleFactor; - } else { - node1 = this.to; - node2 = this.from; - scaleFactor = this.options.arrows.middle.scaleFactor; - } +/***/ }, +/* 105 */ +/***/ function(module, exports, __webpack_require__) { - // if not connected to itself - if (node1 != node2) { - if (position !== 'middle') { - // draw arrow head - if (this.options.smooth.enabled === true) { - arrowPos = this.findBorderPosition(node1, ctx, { via: viaNode }); - var guidePos = this.getPoint(Math.max(0, Math.min(1, arrowPos.t + guideOffset)), viaNode); - angle = Math.atan2(arrowPos.y - guidePos.y, arrowPos.x - guidePos.x); - } else { - angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); - arrowPos = this.findBorderPosition(node1, ctx); - } - } else { - angle = Math.atan2(node1.y - node2.y, node1.x - node2.x); - arrowPos = this.getPoint(0.6, viaNode); // this is 0.6 to account for the size of the arrow. - } - // draw arrow at the end of the line - length = (10 + 5 * this.options.width) * scaleFactor; - ctx.arrow(arrowPos.x, arrowPos.y, angle, length); + 'use strict'; + + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; + + 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _ShapeBase2 = __webpack_require__(108); + + var _ShapeBase3 = _interopRequireWildcard(_ShapeBase2); + + 'use strict'; + + var TriangleDown = (function (_ShapeBase) { + function TriangleDown(options, body, labelModule) { + _classCallCheck(this, TriangleDown); + + _get(Object.getPrototypeOf(TriangleDown.prototype), 'constructor', this).call(this, options, body, labelModule); + } + + _inherits(TriangleDown, _ShapeBase); + + _createClass(TriangleDown, [{ + key: 'resize', + value: function resize(ctx) { + this._resizeShape(); + } + }, { + key: 'draw', + value: function draw(ctx, x, y, selected, hover) { + this._drawShape(ctx, 'triangleDown', 3, x, y, selected, hover); + } + }, { + key: 'distanceToBorder', + value: function distanceToBorder(ctx, angle) { + return this._distanceToBorder(angle); + } + }]); + + return TriangleDown; + })(_ShapeBase3['default']); - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); + exports['default'] = TriangleDown; + module.exports = exports['default']; - // disable shadows for other elements. - this.disableShadow(ctx); - ctx.stroke(); - } else { - // draw circle - var _angle = undefined, - point = undefined; +/***/ }, +/* 106 */ +/***/ function(module, exports, __webpack_require__) { - var _getCircleData7 = this._getCircleData(ctx); + 'use strict'; - var _getCircleData72 = _slicedToArray(_getCircleData7, 3); + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; - var x = _getCircleData72[0]; - var y = _getCircleData72[1]; - var radius = _getCircleData72[2]; + 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; }; })(); - if (position === 'from') { - point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.25, high: 0.6, direction: -1 }); - _angle = point.t * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; - } else if (position === 'to') { - point = this.findBorderPosition(this.from, ctx, { x: x, y: y, low: 0.6, high: 1, direction: 1 }); - _angle = point.t * -2 * Math.PI + 1.5 * Math.PI - 1.1 * Math.PI; - } else { - point = this._pointOnCircle(x, y, radius, 0.175); - _angle = 3.9269908169872414; // === 0.175 * -2 * Math.PI + 1.5 * Math.PI + 0.1 * Math.PI; - } + Object.defineProperty(exports, '__esModule', { + value: true + }); - // draw the arrowhead - var _length = (10 + 5 * this.options.width) * scaleFactor; - ctx.arrow(point.x, point.y, _angle, _length); + var NodeBase = (function () { + function NodeBase(options, body, labelModule) { + _classCallCheck(this, NodeBase); - // draw shadow if enabled - this.enableShadow(ctx); - ctx.fill(); + this.body = body; + this.labelModule = labelModule; + this.setOptions(options); + this.top = undefined; + this.left = undefined; + this.height = undefined; + this.boundingBox = { top: 0, left: 0, right: 0, bottom: 0 }; + } - // disable shadows for other elements. - this.disableShadow(ctx); - ctx.stroke(); - } + _createClass(NodeBase, [{ + key: 'setOptions', + value: function setOptions(options) { + this.options = options; + } + }, { + key: '_distanceToBorder', + value: function _distanceToBorder(angle) { + var borderWidth = 1; + return Math.min(Math.abs(this.width / 2 / Math.cos(angle)), Math.abs(this.height / 2 / Math.sin(angle))) + borderWidth; } }, { key: 'enableShadow', @@ -37891,403 +38682,221 @@ return /******/ (function(modules) { // webpackBootstrap } }]); - return EdgeBase; + return NodeBase; })(); - exports['default'] = EdgeBase; + exports['default'] = NodeBase; module.exports = exports['default']; /***/ }, -/* 105 */ +/* 107 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + Object.defineProperty(exports, '__esModule', { value: true }); - var util = __webpack_require__(1); - var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(44); - var keycharm = __webpack_require__(79); - - var NavigationHandler = (function () { - function NavigationHandler(body, canvas) { - var _this = this; - - _classCallCheck(this, NavigationHandler); - this.body = body; - this.canvas = canvas; + var _NodeBase2 = __webpack_require__(106); - this.iconsCreated = false; - this.navigationHammers = []; - this.boundFunctions = {}; - this.touchTime = 0; - this.activated = false; + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - this.body.emitter.on('release', this._stopMovement.bind(this)); - this.body.emitter.on('activate', function () { - _this.activated = true;_this.configureKeyboardBindings(); - }); - this.body.emitter.on('deactivate', function () { - _this.activated = false;_this.configureKeyboardBindings(); - }); - this.body.emitter.on('destroy', function () { - if (_this.keycharm !== undefined) { - _this.keycharm.destroy(); - } - }); + var CircleImageBase = (function (_NodeBase) { + function CircleImageBase(options, body, labelModule) { + _classCallCheck(this, CircleImageBase); - this.options = {}; + _get(Object.getPrototypeOf(CircleImageBase.prototype), 'constructor', this).call(this, options, body, labelModule); } - _createClass(NavigationHandler, [{ - key: 'setOptions', - value: function setOptions(options) { - if (options !== undefined) { - this.options = options; - this.create(); - } - } - }, { - key: 'create', - value: function create() { - if (this.options.navigationButtons === true) { - if (this.iconsCreated === false) { - this.loadNavigationElements(); - } - } else if (this.iconsCreated === true) { - this.cleanNavigation(); - } + _inherits(CircleImageBase, _NodeBase); - this.configureKeyboardBindings(); - } - }, { - key: 'cleanNavigation', - value: function cleanNavigation() { - // clean hammer bindings - if (this.navigationHammers.length != 0) { - for (var i = 0; i < this.navigationHammers.length; i++) { - this.navigationHammers[i].destroy(); + _createClass(CircleImageBase, [{ + key: '_resizeImage', + value: function _resizeImage() { + if (!this.width || !this.height) { + // undefined or 0 + var width, height, ratio; + if (this.imageObj.width && this.imageObj.height) { + // not undefined or 0 + width = 0; + height = 0; } - this.navigationHammers = []; - } - - this._navigationReleaseOverload = function () {}; - - // clean up previous navigation items - if (this.navigationDOM && this.navigationDOM.wrapper && this.navigationDOM.wrapper.parentNode) { - this.navigationDOM.wrapper.parentNode.removeChild(this.navigationDOM.wrapper); + if (this.imageObj.width > this.imageObj.height) { + ratio = this.imageObj.width / this.imageObj.height; + width = this.options.size * 2 * ratio || this.imageObj.width; + height = this.options.size * 2 || this.imageObj.height; + } else { + ratio = this.imageObj.height / this.imageObj.width; + width = this.options.size * 2 || this.imageObj.width; + height = this.options.size * 2 * ratio || this.imageObj.height; + } + this.width = width; + this.height = height; } - - this.iconsCreated = false; } }, { - key: 'loadNavigationElements', - - /** - * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation - * they have a triggerFunction which is called on click. If the position of the navigation controls is dependent - * on this.frame.canvas.clientWidth or this.frame.canvas.clientHeight, we flag horizontalAlignLeft and verticalAlignTop false. - * This means that the location will be corrected by the _relocateNavigation function on a size change of the canvas. - * - * @private - */ - value: function loadNavigationElements() { - this.cleanNavigation(); + key: '_drawRawCircle', + value: function _drawRawCircle(ctx, x, y, selected, hover, size) { + var borderWidth = this.options.borderWidth; + var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - this.navigationDOM = {}; - var navigationDivs = ['up', 'down', 'left', 'right', 'zoomIn', 'zoomOut', 'zoomExtends']; - var navigationDivActions = ['_moveUp', '_moveDown', '_moveLeft', '_moveRight', '_zoomIn', '_zoomOut', '_fit']; + ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; - this.navigationDOM.wrapper = document.createElement('div'); - this.navigationDOM.wrapper.className = 'vis-navigation'; - this.canvas.frame.appendChild(this.navigationDOM.wrapper); + ctx.lineWidth = selected ? selectionLineWidth : borderWidth; + ctx.lineWidth *= this.networkScaleInv; + ctx.lineWidth = Math.min(this.width, ctx.lineWidth); - for (var i = 0; i < navigationDivs.length; i++) { - this.navigationDOM[navigationDivs[i]] = document.createElement('div'); - this.navigationDOM[navigationDivs[i]].className = 'vis-button vis-' + navigationDivs[i]; - this.navigationDOM.wrapper.appendChild(this.navigationDOM[navigationDivs[i]]); + ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + ctx.circle(x, y, size); - var hammer = new Hammer(this.navigationDOM[navigationDivs[i]]); - if (navigationDivActions[i] === '_fit') { - hammerUtil.onTouch(hammer, this._fit.bind(this)); - } else { - hammerUtil.onTouch(hammer, this.bindToRedraw.bind(this, navigationDivActions[i])); - } + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fill(); - this.navigationHammers.push(hammer); - } + // disable shadows for other elements. + this.disableShadow(ctx); - this.iconsCreated = true; - } - }, { - key: 'bindToRedraw', - value: function bindToRedraw(action) { - if (this.boundFunctions[action] === undefined) { - this.boundFunctions[action] = this[action].bind(this); - this.body.emitter.on('initRedraw', this.boundFunctions[action]); - this.body.emitter.emit('_startRendering'); - } - } - }, { - key: 'unbindFromRedraw', - value: function unbindFromRedraw(action) { - if (this.boundFunctions[action] !== undefined) { - this.body.emitter.off('initRedraw', this.boundFunctions[action]); - this.body.emitter.emit('_stopRendering'); - delete this.boundFunctions[action]; - } + ctx.stroke(); } }, { - key: '_fit', + key: '_drawImageAtPosition', + value: function _drawImageAtPosition(ctx) { + if (this.imageObj.width != 0) { + // draw the image + ctx.globalAlpha = 1; - /** - * this stops all movement induced by the navigation buttons - * - * @private - */ - value: function _fit() { - if (new Date().valueOf() - this.touchTime > 700) { - // TODO: fix ugly hack to avoid hammer's double fireing of event (because we use release?) - this.body.emitter.emit('fit', { duration: 700 }); - this.touchTime = new Date().valueOf(); - } - } - }, { - key: '_stopMovement', + // draw shadow if enabled + this.enableShadow(ctx); + ctx.drawImage(this.imageObj, this.left, this.top, this.width, this.height); - /** - * this stops all movement induced by the navigation buttons - * - * @private - */ - value: function _stopMovement() { - for (var boundAction in this.boundFunctions) { - if (this.boundFunctions.hasOwnProperty(boundAction)) { - this.body.emitter.off('initRedraw', this.boundFunctions[boundAction]); - this.body.emitter.emit('_stopRendering'); - } + // disable shadows for other elements. + this.disableShadow(ctx); } - this.boundFunctions = {}; - } - }, { - key: '_moveUp', - value: function _moveUp() { - this.body.view.translation.y += this.options.keyboard.speed.y; - } - }, { - key: '_moveDown', - value: function _moveDown() { - this.body.view.translation.y -= this.options.keyboard.speed.y; - } - }, { - key: '_moveLeft', - value: function _moveLeft() { - this.body.view.translation.x += this.options.keyboard.speed.x; } }, { - key: '_moveRight', - value: function _moveRight() { - this.body.view.translation.x -= this.options.keyboard.speed.x; - } - }, { - key: '_zoomIn', - value: function _zoomIn() { - this.body.view.scale *= 1 + this.options.keyboard.speed.zoom; - } - }, { - key: '_zoomOut', - value: function _zoomOut() { - this.body.view.scale /= 1 + this.options.keyboard.speed.zoom; - } - }, { - key: 'configureKeyboardBindings', - - /** - * bind all keys using keycharm. - */ - value: function configureKeyboardBindings() { - if (this.keycharm !== undefined) { - this.keycharm.destroy(); - } - - if (this.options.keyboard.enabled === true) { - - if (this.options.keyboard.bindToWindow === true) { - this.keycharm = keycharm({ container: window, preventDefault: false }); - } else { - this.keycharm = keycharm({ container: this.canvas.frame, preventDefault: false }); - } - - this.keycharm.reset(); - - if (this.activated === true) { - this.keycharm.bind('up', this.bindToRedraw.bind(this, '_moveUp'), 'keydown'); - this.keycharm.bind('down', this.bindToRedraw.bind(this, '_moveDown'), 'keydown'); - this.keycharm.bind('left', this.bindToRedraw.bind(this, '_moveLeft'), 'keydown'); - this.keycharm.bind('right', this.bindToRedraw.bind(this, '_moveRight'), 'keydown'); - this.keycharm.bind('=', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); - this.keycharm.bind('num+', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); - this.keycharm.bind('num-', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); - this.keycharm.bind('-', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); - this.keycharm.bind('[', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); - this.keycharm.bind(']', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); - this.keycharm.bind('pageup', this.bindToRedraw.bind(this, '_zoomIn'), 'keydown'); - this.keycharm.bind('pagedown', this.bindToRedraw.bind(this, '_zoomOut'), 'keydown'); + key: '_drawImageLabel', + value: function _drawImageLabel(ctx, x, y, selected) { + var yLabel; + var offset = 0; - this.keycharm.bind('up', this.unbindFromRedraw.bind(this, '_moveUp'), 'keyup'); - this.keycharm.bind('down', this.unbindFromRedraw.bind(this, '_moveDown'), 'keyup'); - this.keycharm.bind('left', this.unbindFromRedraw.bind(this, '_moveLeft'), 'keyup'); - this.keycharm.bind('right', this.unbindFromRedraw.bind(this, '_moveRight'), 'keyup'); - this.keycharm.bind('=', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); - this.keycharm.bind('num+', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); - this.keycharm.bind('num-', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); - this.keycharm.bind('-', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); - this.keycharm.bind('[', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); - this.keycharm.bind(']', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); - this.keycharm.bind('pageup', this.unbindFromRedraw.bind(this, '_zoomIn'), 'keyup'); - this.keycharm.bind('pagedown', this.unbindFromRedraw.bind(this, '_zoomOut'), 'keyup'); + if (this.height !== undefined) { + offset = this.height * 0.5; + var labelDimensions = this.labelModule.getTextSize(ctx); + if (labelDimensions.lineCount >= 1) { + offset += labelDimensions.height / 2; } } + + yLabel = y + offset; + this.labelModule.draw(ctx, x, yLabel, selected, 'hanging'); } }]); - return NavigationHandler; - })(); + return CircleImageBase; + })(_NodeBase3['default']); - exports['default'] = NavigationHandler; + exports['default'] = CircleImageBase; module.exports = exports['default']; /***/ }, -/* 106 */ +/* 108 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; + var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }; + var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; 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(object, property, receiver) { var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { return get(parent, property, receiver); } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } }; + + var _inherits = function (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) subClass.__proto__ = superClass; }; + Object.defineProperty(exports, '__esModule', { value: true }); - /** - * Popup is a class to create a popup window with some text - * @param {Element} container The container object. - * @param {Number} [x] - * @param {Number} [y] - * @param {String} [text] - * @param {Object} [style] An object containing borderColor, - * backgroundColor, etc. - */ - var Popup = (function () { - function Popup(container) { - _classCallCheck(this, Popup); + var _NodeBase2 = __webpack_require__(106); - this.container = container; + var _NodeBase3 = _interopRequireWildcard(_NodeBase2); - this.x = 0; - this.y = 0; - this.padding = 5; - this.hidden = false; + var ShapeBase = (function (_NodeBase) { + function ShapeBase(options, body, labelModule) { + _classCallCheck(this, ShapeBase); - // create the frame - this.frame = document.createElement('div'); - this.frame.className = 'vis-network-tooltip'; - this.container.appendChild(this.frame); + _get(Object.getPrototypeOf(ShapeBase.prototype), 'constructor', this).call(this, options, body, labelModule); } - _createClass(Popup, [{ - key: 'setPosition', - - /** - * @param {number} x Horizontal position of the popup window - * @param {number} y Vertical position of the popup window - */ - value: function setPosition(x, y) { - this.x = parseInt(x); - this.y = parseInt(y); - } - }, { - key: 'setText', + _inherits(ShapeBase, _NodeBase); - /** - * Set the content for the popup window. This can be HTML code or text. - * @param {string | Element} content - */ - value: function setText(content) { - if (content instanceof Element) { - this.frame.innerHTML = ''; - this.frame.appendChild(content); - } else { - this.frame.innerHTML = content; // string containing text or HTML + _createClass(ShapeBase, [{ + key: '_resizeShape', + value: function _resizeShape() { + if (this.width === undefined) { + var size = 2 * this.options.size; + this.width = size; + this.height = size; } } }, { - key: 'show', + key: '_drawShape', + value: function _drawShape(ctx, shape, sizeMultiplier, x, y, selected, hover) { + this._resizeShape(); - /** - * Show the popup window - * @param {boolean} [doShow] Show or hide the window - */ - value: function show(doShow) { - if (doShow === undefined) { - doShow = true; - } + this.left = x - this.width / 2; + this.top = y - this.height / 2; - if (doShow === true) { - var height = this.frame.clientHeight; - var width = this.frame.clientWidth; - var maxHeight = this.frame.parentNode.clientHeight; - var maxWidth = this.frame.parentNode.clientWidth; + var borderWidth = this.options.borderWidth; + var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - var top = this.y - height; - if (top + height + this.padding > maxHeight) { - top = maxHeight - height - this.padding; - } - if (top < this.padding) { - top = this.padding; - } + ctx.strokeStyle = selected ? this.options.color.highlight.border : hover ? this.options.color.hover.border : this.options.color.border; + ctx.lineWidth = selected ? selectionLineWidth : borderWidth; + ctx.lineWidth /= this.body.view.scale; + ctx.lineWidth = Math.min(this.width, ctx.lineWidth); + ctx.fillStyle = selected ? this.options.color.highlight.background : hover ? this.options.color.hover.background : this.options.color.background; + ctx[shape](x, y, this.options.size); - var left = this.x; - if (left + width + this.padding > maxWidth) { - left = maxWidth - width - this.padding; - } - if (left < this.padding) { - left = this.padding; - } + // draw shadow if enabled + this.enableShadow(ctx); + ctx.fill(); - this.frame.style.left = left + 'px'; - this.frame.style.top = top + 'px'; - this.frame.style.visibility = 'visible'; - this.hidden = false; - } else { - this.hide(); - } - } - }, { - key: 'hide', + // disable shadows for other elements. + this.disableShadow(ctx); - /** - * Hide the popup window - */ - value: function hide() { - this.hidden = true; - this.frame.style.visibility = 'hidden'; + ctx.stroke(); + + this.boundingBox.top = y - this.options.size; + this.boundingBox.left = x - this.options.size; + this.boundingBox.right = x + this.options.size; + this.boundingBox.bottom = y + this.options.size; + + if (this.options.label !== undefined) { + var yLabel = y + 0.5 * this.height + 3; // the + 3 is to offset it a bit below the node. + this.labelModule.draw(ctx, x, yLabel, selected, 'hanging'); + this.boundingBox.left = Math.min(this.boundingBox.left, this.labelModule.size.left); + this.boundingBox.right = Math.max(this.boundingBox.right, this.labelModule.size.left + this.labelModule.size.width); + this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelModule.size.height); + } } }]); - return Popup; - })(); + return ShapeBase; + })(_NodeBase3['default']); - exports['default'] = Popup; + exports['default'] = ShapeBase; module.exports = exports['default']; /***/ } diff --git a/dist/vis.map b/dist/vis.map index 0ac1a4e9..bd18e93f 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","Hammer","isNumber","object","Number","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","protoExtend","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteTop","top","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","slice","parseColor","isValidRGB","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","f","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","labelObj","point","drawPoints","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","currentTime","customTime","itemSet","itemsData","groupsData","setGroups","setItems","_redraw","Core","markDirty","refreshItems","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","e","getItemRange","dataset","minItem","maxStartItem","maxEndItem","linegraph","getLegend","groupId","isGroupVisible","visibility","convertHiddenOptions","repeat","dateItem","updateHiddenDates","centerContainer","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","time","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","deltaX","deltaY","diffRange","safeStart","safeEnd","pointer","pageX","pageY","pointerDate","_pointerToDate","zoom","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","snap","getLabelMinor","getLabelMajor","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","lang","toLowerCase","parent","selected","displayed","dirty","select","unselect","setParent","hide","show","isVisible","repositionX","repositionY","_repaintDeleteButton","anchor","editable","deleteButton","title","removeFromDataSet","stopPropagation","_updateContents","template","Element","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","box","getComputedStyle","onTop","itemSubgroup","subgroupIndex","foreground","align","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","updateTime","dragLeft","dragLeftItem","dragRight","dragRightItem","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","backgroundVertical","toUpperCase","substring","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","drag","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","marker","getLabelWidth","restack","_updateVisibleItems","markerHeight","lastMarkerHeight","_calculateHeight","offsetTop","offsetLeft","ii","resetSubgroups","labelSet","orderSubgroups","_checkIfVisible","sortArray","sortField","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","groupOrder","selectable","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","isFirst","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","itemFromTarget","itemProps","initialX","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","srcEvent","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","gesture","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","majorTexts","minorTexts","lineTop","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","cur","prevLine","xPrev","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_initializeMixinLoaders","initializing","triggerFunctions","edit","editEdge","connect","del","customScalingFunction","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","fontDrawThreshold","scaleFontWithValue","fontSizeMin","fontSizeMax","fontSizeMaxVisible","level","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","labelAlignment","arrowScaleFactor","dash","gap","altLength","inheritColor","useGradients","configurePhysics","navigation","keyboard","speed","bindToWindow","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","smoothCurves","dynamic","roundness","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","useDefaultGroups","constants","nodeIndices","supportNodes","supportNodeIndices","functions","createNode","_createNode","createEdge","_createEdge","once","eventListeners","onTap","onTouch","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onMouseWheel","onPinch","onMouseMove","onRelease","view","View","renderer","CanvasRenderer","clustering","ClusterEngine","physics","PhysicsEngine","Canvas","touchHandler","TouchEventHandler","setCanvas","hoverObj","controlNodesActive","navigationHammers","manipulationHammers","images","setOnloadCallback","_requestRedraw","xIncrement","yIncrement","zoomIncrement","_loadSelectionSystem","cachedFunctions","startedStabilization","stabilized","stabilizationIterations","draggingNodes","pointerPosition","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","renderTimer","_setupHierarchicalLayout","stabilize","zoomExtent","_updateNodeIndexList","_updateCalculationNodes","_markAllEdgesAsDirty","_createBezierNodes","MixinLoader","Activator","properties","disableStart","_unselectAll","_createManipulatorBar","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_resetLevels","startSimulation","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_bindHammer","_cleanupPhysicsConfiguration","keycharm","reset","dispose","_recursiveDOMDelete","DOMobject","_checkShowPopup","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","previousPopupObjId","popupObj","nodeUnderCursor","popupType","overlappingNodes","node","isOverlappingWith","getTitle","overlappingEdges","edge","connected","popup","popupTargetType","popupTargetId","setPosition","setText","_checkHidePopup","pointerObj","stillOnObj","overNode","_getNodeAt","oldNodesData","_updateSelection","xFixed","yFixed","angle","_reconnectEdges","_updateValueRange","changedData","setProperties","edgeId","colorDirty","selectionObj","_removeFromSelection","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","via","valueTotal","setValueRange","_setTranslation","offsetX","offsetY","_getTranslation","_getScale","_handleNavigation","_zoom","freezeSimulation","freeze","freezeSimulationEnabled","_configureSmoothCurves","nodeId","parentEdgeId","specificEdges","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","isActive","active","isCluster","getCenterCoordinates","DOMtoCanvas","getBoundingBox","boundingBox","getConnectedNodes","nodeList","nodeObj","toId","fromId","getEdgesFromNode","edgesList","generateColorObject","networkConstants","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","fromArray","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","springLength","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","widthDiff","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","fromColor","toColor","grd","createLinearGradient","addColorStop","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","factor","pi","originalAngle","atan2","myAngle","quadraticCurveTo","lineCount","measureText","save","translate","_rotateForLabelAlignment","_drawLabelRect","_drawLabelText","restore","angleInDegrees","rotate","lineMargin","fillRect","lineJoin","strokeText","setLineDash","pattern","lineDashOffset","lineCap","dashedLine","percentage","arrow","_pointOnBezier","_findBorderPosition","distanceToBorder","distanceToNodes","difference","threshold","arrowPos","guidePos","edgeSegmentLength","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","_drawControlNodes","nodeIdFrom","nodeIdTo","damping","maxNodeSizeIncrements","nodeScaling","getControlNodeFromPosition","getControlNodeToPosition","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","controlnodeFromPos","fromBorderDist","fromBorderPoint","controlnodeToPos","defaultIndex","groupsArray","groupIndex","DEFAULT","groupName","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","error","src","imagelist","grouplist","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","predefinedPosition","previousState","vx","vy","fixedData","networkScale","canvasTopLeft","canvasBottomRight","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawCircularImage","_resizeCircularImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_drawIcon","_resizeIcon","_reset","clearSizeCache","w","isFixed","isSelected","getDistance","radiusDiff","fontDiff","_drawImageAtPosition","globalAlpha","drawImage","_drawImageLabel","getTextSize","_swapToImageResizeWhenImageLoaded","diameter","centerX","centerY","_drawRawCircle","circle","clip","textSize","selectionLineWidth","roundRect","database","ellipse","_drawShape","radiusMultiplier","_icon","iconTextSpacing","relativeIconSize","iconFontFace","iconColor","baseline","labelUnderNode","relativeFontSize","strokecolor","inArea","setScaleAndPos","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fontFamily","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","propagating","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","touchAction","set","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","barId","addCustomTime","numIds","customBarId","ts","customBarIds","removeCustomTime","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","_setScrollTop","_getScrollTop","inputHandler","isFinal","offTouch","offRelease","en","en_EN","en_US","nl","custom","nl_NL","nl_BE","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadPhysicsSystem","PhysicsMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","_loadManipulationSystem","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_loadNavigationControls","_cleanNavigation","_loadNavigationElements","_loadHierarchySystem","overlay","prevent_default","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_prototypeProperties","child","staticProps","instanceProps","defineProperties","_classCallCheck","instance","Constructor","BarnesHutSolver","Repulsion","HierarchicalRepulsion","SpringSolver","HierarchicalSpringSolver","CentralGravitySolver","_this","physicsBody","calculationNodes","calculationNodeIndices","forces","velocities","viewFunction","simulationInterval","requiresTimeout","previousStates","barnesHut","thetaInverted","gravitationalConstant","centralGravity","springConstant","repulsion","nodeDistance","hierarchicalRepulsion","model","timestep","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","init","writable","configurable","nodesSolver","edgesSolver","gravitySolver","modelOptions","runSimulation","simulationStep","startTime","physicsTick","physicsTime","runDoubleSpeed","calculateForces","moveNodes","revert","supportNodeId","nodeIds","nodesPresent","vminCorrected","nodeVelocity","_performStep","totalVelocity","solve","_freezeNodes","_restoreFrozenNodes","stabilizationSteps","_stabilizationBatch","steps","_finalizeStabilization","defineProperty","clusteredNodes","clusterByConnectionCount","hubsize","_getHubSize","tyepof","_checkOptions","nodesToCluster","clusterByConnection","clusterByNodeData","doNotUpdateCalculationNodes","joinCondition","childNodesObj","childEdgesObj","clonedOptions","_cloneOptions","_cluster","clusterOutliers","clusters","childNodeId","_getConnectedId","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","objId","amountOfConnections","_createClusterEdges","newEdges","childNode","childKeys","otherNodeId","otherOnTo","clusterEdgeProperties","clusterId","processProperties","childNodesOptions","childEdgesOptions","_getClusterPosition","clusterNode","containedNodes","containedEdges","viaId","minX","maxX","minY","maxY","lenght","openCluster","clusterNodeId","_connectEdge","edgeIds","clusterStack","_getClusterStack","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","redrawRequested","continueRendering","renderRequests","startRendering","_determineBrowserMethod","renderStep","setTransform","pixelRatio","_drawEdges","_drawNodes","alwaysShow","sMax","browserType","tabIndex","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","pinch","hammerFrame","emitEvent","oldWidth","oldHeight","_XconvertCanvasToDOM","_YconvertCanvasToDOM","canvasToDOM","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","releaseNode","_getRange","specificNodes","_findCenter","zoomLevel","initialZoom","positionDefined","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","animationOptions","animation","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_lockedRedraw","finished","SelectionHandler","selectionHandler","pinched","selectOnPoint","_callbacks","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","monthDiff","anchor2","adjust","wholeMonthDiff","meridiemFixWrap","meridiem","isPm","meridiemHour","isPM","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","updateInProgress","updateOffset","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","_milliseconds","_days","_months","_locale","_bubble","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","targetLength","forceSign","output","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","setTime","rawSetter","rawGetter","rawMonthSetter","input","compareArrays","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","getter","results","utc","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","bigHour","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","hasModule","local","removeFormattingTokens","makeFormatFunction","formattingTokens","formatTokenFunctions","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","getParseRegexForToken","parseTokenOneDigit","parseTokenThreeDigits","parseTokenFourDigits","parseTokenOneToFourDigits","parseTokenSignedNumber","parseTokenSixDigits","parseTokenOneToSixDigits","parseTokenTwoDigits","parseTokenOneToThreeDigits","parseTokenWord","_meridiemParse","parseTokenOffsetMs","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","_ordinalParse","_ordinalParseLenient","RegExp","regexpEscape","unescapeFormat","utcOffsetFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_meridiem","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dateFromConfig","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","getUTCFullYear","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","makeDateFromInput","aspNetJsonRegex","ms","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","relativeTimeThresholds","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","dayOfMonth","unit","makeAccessor","keepTime","daysToYears","yearsToDays","makeDurationGetter","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","SS","SSS","SSSS","Z","utcOffset","ZZ","zoneAbbr","zz","zoneName","unix","lists","DDDD","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","firstDayOfYear","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","relativeTimeThreshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateUtcOffset","inputString","asFloat","that","zoneDiff","humanize","fromNow","sod","startOf","isDST","getDay","endOf","inputMs","isBetween","zone","localAdjust","_changeInProgress","isLocal","isUtcOffset","isUtc","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","isUTC","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","_firstTarget","propagatedHandler","_handled","stopped","firstTarget","_handlers","Manager","PropagatingHammer","_on","_off","_emit","_destroy","handler","eventType","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","arg","each","iterator","dest","inherit","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","hasParent","inStr","str","find","inArray","findByKey","uniqueArray","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","computeDeltaXY","offsetDirection","getDirection","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","defaults","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","barnesHutTree","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","gravityForce","fx","fy","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_debug","_drawBranch","branch","RepulsionSolver","repulsingForce","node1","node2","HierarchicalRepulsionSolver","steepness","edgeLength","node3","_calculateSpringForce","springForce","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","gravity","selectConnectedEdges","_getSelectedObjectCount","selectObject","_generateClickEvent","DOM","_selectConnectedEdges","_getEdgeAt","_addToSelection","_getNodesOverlappingWith","_getAllNodesOverlappingWith","_pointerToPositionObject","canvasPos","positionObject","_getEdgesOverlappingWith","_getAllEdgesOverlappingWith","_addToHover","doNotTrigger","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_selectionIsEmpty","_clusterInSelection","clusterSize","_hoverConnectedEdges","_unselectConnectedEdges","_blurObject","_hoverObject","_handleDoubleTap","areaCenter","_handleOnHold","_selectObject","getSelectedNodes","getSelectedEdges","idArray","selectNodes","highlightEdges","RangeError","selectEdges","_unselectClusters","append","overrideSelectable","_handleTouch","_handleTap","_handleOnRelease","_manipulationReleaseOverload","_navigationReleaseOverload","_clearManipulatorBar","manipulationDOM","_cleanManipulatorHammers","sectors","support","targetNode","targetViaNode","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","_bindHammerToDiv","boundFunction","edgeBeingEdited","selectedControlNode","addNodeSpan","addNodeLabelSpan","seperatorLineDiv1","addEdgeSpan","addEdgeLabelSpan","seperatorLineDiv2","editNodeSpan","editNodeLabelSpan","seperatorLineDiv3","editEdgeSpan","editEdgeLabelSpan","seperatorLineDiv4","deleteSpan","deleteLabelSpan","editModeSpan","editModeLabelSpan","domElement","funct","_createAddNodeToolbar","backSpan","backLabelSpan","descriptionSpan","descriptionLabelSpan","_addNode","_createAddEdgeToolbar","_handleConnect","_handleDragStart","_handleDragEnd","_finishConnect","_createEditEdgeToolbar","_handleOnDrag","_selectControlNode","_controlNodeDrag","_releaseControlNode","_getPointer","newNode","_editEdge","alert","connectionEdge","connectFromId","defaultData","finalizedData","sourceNodeId","targetNodeId","_editNode","_deleteSelected","selectedNodes","selectedEdges","navigationDOM","wrapper","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","_xStopMoving","_yStopMoving","_stopZoom","_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","_stabilize","maxCount","_setLevel","firstNode","minLevel","_setLevelDirected","parentId","parentLevel","nodeMoved","_restoreNodes","webpackContext","req","resolve","webpackPolyfill","paths","__webpack_amd_options__"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Images","dotparser","gephiParser","Graph","Error","moment","hammer","Hammer","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","floor","random","toString","assignAllKeys","obj","prop","hasOwnProperty","fillIfDefined","parentObj","newObj","undefined","protoExtend","a","b","i","arguments","length","other","extend","selectiveExtend","props","Array","isArray","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","slice","parseColor","isValidRGB","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","labelObj","point","drawPoints","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","args","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","customTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Core","markDirty","refreshItems","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","itemFromTarget","groupFromTarget","pageX","gesture","pageY","centerContainer","snap","time","snappedTime","what","foreground","labelSet","groupId","linegraph","getLegend","isGroupVisible","visibility","yAxisLeft","yAxisRight","legendLeft","legendRight","hidden","screenToValue","convertHiddenOptions","repeat","dateItem","updateHiddenDates","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","_cancelAnimation","initStart","initEnd","initTime","anyChanged","_next","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","deltaX","deltaY","diffRange","safeStart","safeEnd","pointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","getLabelMajor","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","lang","toLowerCase","selected","displayed","dirty","select","unselect","groupChanged","_moveToGroup","setParent","hide","show","isVisible","repositionX","repositionY","_repaintDeleteButton","anchor","editable","deleteButton","title","removeFromDataSet","stopPropagation","_updateContents","template","_contentToString","Element","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","outerHTML","emptyContent","baseClassName","box","getComputedStyle","onTop","itemSubgroup","subgroupIndex","totalHeight","newHeight","align","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","limitSize","contentLeft","parentWidth","boxWidth","updateTime","dragLeft","dragLeftItem","dragRight","dragRightItem","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","backgroundVertical","warned","en","toUpperCase","substring","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","drag","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","marker","getLabelWidth","restack","markerHeight","lastMarkerHeight","customOrderedItems","_updateVisibleItems","_calculateHeight","offsetTop","offsetLeft","ii","resetSubgroups","orderSubgroups","_checkIfVisible","sortArray","sortField","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","groupOrder","selectable","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","isFirst","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldSubGroupId","oldGroup","_constructByEndArray","itemProps","initialX","srcEvent","ctrlKey","_onDragStartAddItem","xAbs","newItem","initial","initialStart","initialEnd","changes","shiftKey","oldSelection","newSelection","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarGraphFunctions","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","majorTexts","minorTexts","lineTop","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","cur","prevLine","xPrev","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_this","clickToUse","nodes","nodeIndices","edges","edgeIndices","functions","createNode","createEdge","once","eventListeners","onTap","onTouch","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onMouseWheel","onPinch","onMouseMove","onRelease","onContext","view","bindEventListeners","images","_Groups2","_Canvas2","selectionHandler","_SelectionHandler2","interactionHandler","_InteractionHandler2","_View2","renderer","_CanvasRenderer2","physics","_PhysicsEngine2","layoutEngine","_LayoutEngine2","clustering","_ClusterEngine2","manipulation","_ManipulationSystem2","nodesHandler","_NodesHandler2","edgesHandler","_EdgesHandler2","configurationSystem","_ConfigurationSystem2","_interopRequireWildcard","__esModule","default","_Groups","_NodesHandler","_EdgesHandler","_PhysicsEngine","_ClusterEngine","_CanvasRenderer","_Canvas","_View","_InteractionHandler","_SelectionHandler","_LayoutEngine","_ManipulationSystem","_ConfigurationSystem","_Validator","_Validator2","Activator","errorFound","validate","error","layout","rendering","interaction","activator","_createKeyBinds","_updateVisibleIndices","nodeId","edgeId","_this2","updatePhysicsIndices","_updateValueRange","unselectAll","dotData","DOTToGraph","gephi","gephiData","parseGephi","valueTotal","setValueRange","isActive","active","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","src","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","node","graphs","attr","addEdge","edge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","image","shape","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","allowedToMove","gEdges","gNodes","gEdge","source","gNode","allowedToMoveX","allowedToMoveY","propagating","mixin","_callbacks","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","hammerUtil","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","properties","_redrawTimer","set","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","barId","addCustomTime","numIds","customBarId","ts","customBarIds","removeCustomTime","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","inputHandler","isTouching","isFinal","isReleasing","offTouch","offRelease","en_EN","en_US","nl","nl_NL","nl_BE","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","_classCallCheck","instance","Constructor","_createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","Groups","defaultIndex","groupsArray","groupIndex","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_Node","_Node2","_Label","_Label2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","code","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","parseOptions","updateShape","updateLabelModule","_reset","doNotEmit","oldNodesData","newNodes","_properties","positionInitially","changedData","dataChanged","constants","constructorClass","dataArray","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_Edge","_Edge2","EdgesHandler","edgesListeners","arrows","scaleFactor","inherit","dashes","pattern","hoverWidth","selectionWidth","selfReferenceSize","smooth","dynamic","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","via","supportNodes","edgeType","colorDirty","_BarnesHutSolver","_BarnesHutSolver2","_Repulsion","_Repulsion2","_HierarchicalRepulsion","_HierarchicalRepulsion2","_SpringSolver","_SpringSolver2","_HierarchicalSpringSolver","_HierarchicalSpringSolver2","_CentralGravitySolver","_CentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","freezeCache","renderTimer","stabilized","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","solver","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","initPhysics","stopSimulation","startSimulation","init","nodesSolver","edgesSolver","gravitySolver","modelOptions","stabilize","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","startedStabilization","calculateForces","moveNodes","revert","nodeIds","vx","vy","nodesPresent","vminCorrected","nodeVelocity","_performStep","totalVelocity","solve","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","_Cluster","_Cluster2","ClusterEngine","clusteredNodes","hubsize","_getHubSize","tyepof","_checkOptions","nodesToCluster","clusterByConnection","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","_cloneOptions","_cluster","clusters","childNodeId","_getConnectedId","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","objId","amountOfConnections","newEdges","childNode","childKeys","otherNodeId","otherOnTo","clusterEdgeProperties","clusterId","processProperties","childNodesOptions","childEdgesOptions","_getClusterPosition","clusterNode","isCluster","containedNodes","containedEdges","_createClusterEdges","togglePhysics","minX","maxX","minY","maxY","lenght","clusterNodeId","containedNode","cleanup","clusterStack","findNode","fromArray","average","averageSquared","hubCounter","largestHub","letiance","standardDeviation","hubThreshold","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","pixelRatio","allowRedrawRequests","_requestRedraw","_startRendering","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_renderStep","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","w","save","translate","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","restore","alwaysShow","isSelected","connected","browserType","Canvas","onresize","_prepareValue","tabIndex","_bindHammer","pinch","hammerFrame","emitEvent","oldWidth","oldHeight","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","releaseNode","specificNodes","zoomLevel","initialZoom","positionDefined","predefinedPosition","_getRange","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","animation","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","DOMtoCanvas","distanceFromCenter","_lockedRedraw","finished","_NavigationHandler","_NavigationHandler2","_Popup","_Popup2","InteractionHandler","navigationHandler","hoverObj","popup","popupObj","popupTimer","dragNodes","dragView","zoomView","hoverEnabled","navigationButtons","tooltipDelay","keyboard","speed","bindToWindow","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdges","selectedNodes","getNodeAt","selectObject","selectionObj","xFixed","yFixed","_handleDragStart","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","canvasToDOM","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","getEdgeAt","hoverObject","Node","Edge","blurObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","SelectionHandler","selectConnectedEdges","updateSelection","selectionChanged","deselectObject","eventType","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","clusterSize","_addToHover","_hoverConnectedEdges","getSelectedNodes","edgeIds","getSelectedEdges","idArray","RangeError","LayoutEngine","initialRandomSeed","randomSeed","optionsBackup","hierarchical","levelSeparation","sortMethod","hierarchicalLevels","setupHierarchicalLayout","allOptions","prevHierarchicalState","adaptAllOptions","nodesArray","isFixed","angle","seededRandom","definedLevel","undefinedLevel","nodeSpacing","_determineLevelsByHubsize","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","positionedNodes","_placeBranchNodes","hubSize","_setLevel","minLevel","_setLevelDirected","parentId","parentLevel","childNodeLevel","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","functionality","editNode","editEdge","deleteNode","deleteEdge","handlerFunctions","controlNodeStyle","_clean","_restore","enableEditMode","disableEditMode","_setup","_bindHammerToDiv","toggleEditMode","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_temporaryBindEvent","_createBackButton","_createDescription","addDescription","_performAddNode","_getSelectedNode","finalizedData","alert","editClusterError","edgeDescription","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","editEdgeDescription","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","positions","findBorderPositions","_this3","deleteFunction","deleteClusterError","_createWrappers","_removeManipulationDOM","_createButton","edit","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","addNodeMode","addEdgeMode","editNodeMode","editEdgeMode","del","deleteSelected","back","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","createEdgeError","_performEditEdge","targetNode","connectionEdge","connectFromId","_performCreateEdge","clickData","_this4","defaultData","sourceNodeId","targetNodeId","_this5","_this6","_ColorPicker","_ColorPicker2","ConfigurationSystem","changedOptions","possibleOptions","actualOptions","configure","configureContainer","domElements","colorPicker","wrapper","config","optionObj","_makeItem","_makeHeader","_handleObject","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","base","newPath","_len","_key","div","objectLabel","selectedValue","_update","_makeLabel","input","oninput","checkbox","checked","defaultColor","_showColorPicker","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","subObj","_addToPath","_getValue","_handleArray","_handleString","_makeCheckbox","enabledPath","enabledValue","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","_allOptions","_allOptions2","Validator","subObject","usedOptions","referenceOptions","check","__any__","getSuggestion","refOptionType","__type__","checkFields","optionType","referenceOption","recursive","print","printLocation","closestMatch","threshold","op","levenshteinDistance","str","matrix","CanvasRenderingContext2D","circle","square","s2","ir","triangleDown","star","n","diamond","roundRect","r2d","ellipse","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","database","wEllipse","hEllipse","ymb","yeb","arrow","xt","yt","xi","yi","xl","yl","xr","yr","dashedLine","x2","y2","patternLength","slope","distRemaining","patternIndex","dashLength","overlay","_onTapOverlay","bodyHammer","prevent_default","_hasParent","deactivate","keycharm","escListener","activate","unbind","global","utils_hooks__hooks","hookCallback","setHookCallback","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","res","hasOwnProp","create_utc__createUTC","createLocalOrUTC","utc","valid__isValid","_isValid","getTime","_pf","_strict","bigHour","valid__createInvalid","flags","NaN","copyConfig","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","updateInProgress","updateOffset","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","dontConvert","lengthDiff","diffs","Locale","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","globalLocale","_abbr","locale_locales__getSetGlobalLocale","locale_locales__getLocale","defineLocale","abbr","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","number","targetLength","forceSign","output","addFormatToken","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","dayOfMonth","monthsParse","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","l","string","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","ms","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","local__createLocal","week","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","daysToAdd","getUTCDay","getSetDayOfYear","startOf","defaults","currentDateArray","_useUTC","getUTCFullYear","getUTCMonth","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","years","quarters","quarter","weeks","days","_milliseconds","_days","_bubble","isDuration","separator","utcOffset","offsetFromString","matches","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","isAfter","isBefore","createAdder","period","dur","tmp","isAdding","moment_calendar__calendar","sod","calendar","inputMs","endOf","isBetween","absFloor","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","moment_format__toISOString","inputString","postformat","withoutSuffix","humanize","fromNow","newLocaleData","isoWeekday","to_type__valueOf","unix","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","getter","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","localeMeridiem","isLower","millisecond__milliseconds","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","lists__get","setter","list","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","bubble","daysToYears","yearsToDays","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","limit","withSuffix","iso_string__toISOString","Y","iso_string__abs","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","isoWeekYear","getSetDayOfMonth","invalidWeekday","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_get__milliseconds","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","_processing","propagatedHandler","_handled","stopped","firstTarget","_handlers","Manager","PropagatingHammer","_on","_off","_emit","_destroy","pointerType","handler","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","arg","each","iterator","dest","child","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","find","inArray","findByKey","uniqueArray","results","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","_Box","_Box2","_Circle","_Circle2","_CircularImage","_CircularImage2","_Database","_Database2","_Diamond","_Diamond2","_Dot","_Dot2","_Ellipse","_Ellipse2","_Icon","_Icon2","_Image","_Image2","_Square","_Square2","_Star","_Star2","_Text","_Text2","_Triangle","_Triangle2","_TriangleDown","_TriangleDown2","imagelist","grouplist","globalOptions","baseSize","baseFontSize","labelModule","status","groupObj","imageObj","distanceToBorder","sizeDiff","fontDiff","resize","parentOptions","newOptions","parsedColor","_slicedToArray","Symbol","_arr","_n","_e","_s","err","Label","yLine","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fillRect","fontSize","_getColor","_getColor2","fontColor","_setAlignment","_setAlignment2","lineJoin","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_BezierEdgeDynamic","_BezierEdgeDynamic2","_BezierEdgeStatic","_BezierEdgeStatic2","_StraightEdge","_StraightEdge2","baseWidth","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","node1","node2","getPoint","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","BarnesHutSolver","barnesHutTree","thetaInversed","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","MAX_VALUE","minimumTreeSize","rootSize","halfRootSize","centerX","centerY","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","gravity","_get","receiver","desc","getOwnPropertyDescriptor","getPrototypeOf","_inherits","subClass","superClass","__proto__","_Node3","Cluster","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","_stopMovement","configureKeyboardBindings","loadNavigationElements","cleanNavigation","_navigationReleaseOverload","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","boundAction","unbindFromRedraw","Popup","doShow","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","rgbObj","_setColor","_generateHueCircle","storePrevious","_hide","_updatePicker","angleConvert","colorPickerSelector","colorPickerCanvas","putImageData","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","_moveSelector","sat","hfac","sfac","getImageData","newLeft","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","webpackContext","req","resolve","webpackPolyfill","paths","__webpack_amd_options__","_NodeBase2","_NodeBase3","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","enableShadow","disableShadow","_CircleImageBase2","_CircleImageBase3","Circle","_CircleImageBase","diameter","_drawRawCircle","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","Database","networkScaleInv","_ShapeBase2","_ShapeBase3","Diamond","_ShapeBase","_resizeShape","_drawShape","Dot","Ellipse","Icon","_icon","iconTextSpacing","Square","Star","Text","Triangle","TriangleDown","_BezierEdgeBase2","_BezierEdgeBase3","BezierEdgeDynamic","_BezierEdgeBase","setupSupportNode","parentEdgeId","positionBezierNode","quadraticCurveTo","nearNode","_findBorderPositionBezier","x1","y1","x3","y3","_getDistanceToBezierEdge","BezierEdgeStatic","_getViaCoordinates","xVia","yVia","pi","originalAngle","myAngle","_EdgeBase2","_EdgeBase3","StraightEdge","_EdgeBase","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_getDistanceToLine","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","CircleImageBase","ratio","globalAlpha","drawImage","labelDimensions","ShapeBase","sizeMultiplier","BezierEdgeBase","distanceToPoint","difference","minDistance","lastX","lastY","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData","_getCircleData2","_circle","lineCap","setLineDash","altLength","lineDashOffset","_getCircleData3","_getCircleData32","_getCircleData4","_getCircleData42","_findBorderPosition","_findBorderPositionCircle","_getCircleData5","_getCircleData52","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData6","_getCircleData62","px","py","something","u","arrowPos","guideOffset","findBorderPosition","guidePos","_angle","_getCircleData7","_getCircleData72","_length","boolean","undef","configuration"],"mappings":"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Q,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAC3IC,OAAQ,UAAWD,WAAY,UAAWE,WAAaD,OAAQ,UAAWD,WAAY,WAAaG,OAASF,OAAQ,UAAWD,WAAY,aAE3IC,OAAQ,UAAWD,WAAY,UA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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 25fb8075..8c56513d 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 4.0.0-SNAPSHOT - * @date 2015-03-02 + * @date 2015-04-24 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -22,18 +22,25 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var s=i[o]={exports:{},id:o,loaded:!1};return t[o].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(2),e.DataSet=i(3),e.DataView=i(4),e.Queue=i(5),e.Graph3d=i(6),e.graph3d={Camera:i(7),Filter:i(8),Point2d:i(9),Point3d:i(10),Slider:i(11),StepNumber:i(12)},e.Timeline=i(13),e.Graph2d=i(14),e.timeline={DateUtil:i(15),DataStep:i(16),Range:i(17),stack:i(18),TimeStep:i(19),components:{items:{Item:i(20),BackgroundItem:i(21),BoxItem:i(22),PointItem:i(23),RangeItem:i(24)},Component:i(25),CurrentTime:i(26),CustomTime:i(27),DataAxis:i(28),GraphGroup:i(29),Group:i(30),BackgroundGroup:i(31),ItemSet:i(32),Legend:i(33),LineGraph:i(34),TimeAxis:i(35)}},e.Network=i(36),e.network={Edge:i(37),Groups:i(38),Images:i(39),Node:i(40),Popup:i(41),dotparser:i(42),gephiParser:i(43)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(44),e.hammer=i(45),e.Hammer=i(45)},function(t,e,i){var o=i(44);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.giveRange=function(t,e,i,o){if(e==t)return.5;var s=1/(e-t);return Math.max(0,(o-t)*s)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=s.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},e.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},e.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var o=arguments[e];for(var s in o)o.hasOwnProperty(s)&&(t[s]=o[s])}return t},e.selectiveExtend=function(t,e){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var i=2;ii;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0===t)return void 0;if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(o.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])):o(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return o(t);if(t instanceof Date)return o(t.valueOf());if(o.isMoment(t))return o(t);if(e.isString(t))return n=s.exec(t),o(n?Number(n[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(o.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){n=s.exec(t);var r;return r=n?new Date(Number(n[1])).valueOf():new Date(t).valueOf(),"/Date("+r+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}};var s=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),o=i.indexOf(e);-1!=o&&(i.splice(o,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)){if(e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",");t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)){var s=e.hexToHSV(t),n={h:s.h,s:.45*s.s,v:Math.min(1,1.05*s.v)},r={h:s.h,s:Math.min(1,1.25*s.v),v:.6*s.v},a=e.HSVToHex(r.h,r.h,r.v),h=e.HSVToHex(n.h,n.s,n.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||"white",i.border=t.border||i.background,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||i.background,i.highlight.border=t.highlight&&t.highlight.border||i.border),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||i.background,i.hover.border=t.hover&&t.hover.border||i.border);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),s=Math.max(t,Math.max(e,i));if(o==s)return{h:0,s:0,v:o};var n=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-n/(s-o))/360,h=(s-o)/s,d=s;return{h:a,s:h,v:d}};var n={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),s=i[1].trim();e[o]=s}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=n.split(t.style.cssText),s=n.split(i),r=e.extend(o,s);t.style.cssText=n.join(r)},e.removeCssText=function(t,e){var i=n.split(t.style.cssText),o=n.split(e);for(var s in o)o.hasOwnProperty(s)&&delete i[s];t.style.cssText=n.join(i)},e.HSVToRGB=function(t,e,i){var o,s,n,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,s=l,n=h;break;case 1:o=d,s=i,n=h;break;case 2:o=h,s=i,n=l;break;case 3:o=h,s=d,n=i;break;case 4:o=l,s=h,n=i;break;case 5:o=i,s=h,n=d}return{r:Math.floor(255*o),g:Math.floor(255*s),b:Math.floor(255*n)}},e.HSVToHex=function(t,i,o){var s=e.HSVToRGB(t,i,o);return e.RGBToHex(s.r,s.g,s.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var o=Object.create(i),s=0;s=r&&s>n;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,n++}return-1},e.binarySearchValue=function(t,e,i,o){for(var s,n,r,a,h=1e4,d=0,l=0,c=t.length-1;c>=l&&h>d;){if(a=Math.floor(.5*(c+l)),s=t[Math.max(0,a-1)][i],n=t[a][i],r=t[Math.min(t.length-1,a+1)][i],n==e)return a;if(e>s&&n>e)return"before"==o?Math.max(0,a-1):a;if(e>n&&r>e)return"before"==o?a:Math.min(t.length-1,a+1);e>n?l=a+1:c=a-1,d++}return-1},e.easeInOutQuad=function(t,e,i,o){var s=i-e;return t/=o/2,1>t?s/2*t*t+e:(t--,-s/2*(t*(t-2)-1)+e)},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var s;return e.hasOwnProperty(t)?e[t].redundant.length>0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElement(t),void 0!==o?i.insertBefore(s,o):i.appendChild(s)):(s=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(s,o):i.appendChild(s)),e[t].used.push(s),s},e.drawPoint=function(t,i,o,s,n,r){var a;"circle"==o.options.drawPoints.style?(a=e.getSVGElement("circle",s,n),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.options.drawPoints.size)):(a=e.getSVGElement("rect",s,n),a.setAttributeNS(null,"x",t-.5*o.options.drawPoints.size),a.setAttributeNS(null,"y",i-.5*o.options.drawPoints.size),a.setAttributeNS(null,"width",o.options.drawPoints.size),a.setAttributeNS(null,"height",o.options.drawPoints.size)),void 0!==o.options.drawPoints.styles&&a.setAttributeNS(null,"style",o.group.options.drawPoints.styles),a.setAttributeNS(null,"class",o.className+" point");var h=e.getSVGElement("text",s,n);return r&&(r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" label")),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i),a},e.drawBar=function(t,i,o,s,n,r,a){if(0!=s){0>s&&(s*=-1,i-=s);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*o),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",s),h.setAttributeNS(null,"class",n)}}},function(t,e,i){function o(t,e){if(!t||Array.isArray(t)||s.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var o=this._options.type[i];this._type[i]="Date"==o||"ISODate"==o||"ASPDate"==o?"Date":o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var s=i(1),n=i(5);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=n.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=o.prototype.on,o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=o.prototype.off,o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var s=0;sr;r++)i=n._addItem(t[r]),o.push(i);else if(s.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var c={},u=0,p=h.length;p>u;u++){var f=h[u];c[f]=t.getValue(d,u)}i=n._addItem(c),o.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),o.push(e),n.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(s.isDataTable(t))for(var c=this._getColumnNames(t),u=0,p=t.getNumberOfRows();p>u;u++){for(var f={},m=0,g=c.length;g>m;m++){var v=c[m];f[v]=t.getValue(u,m)}h(f)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),o.length&&this._trigger("update",{items:o,data:n},e),i.concat(o)},o.prototype.get=function(){var t,e,i,o,n=this,r=s.getType(arguments[0]);"String"==r||"Number"==r?(t=arguments[0],i=arguments[1],o=arguments[2]):"Array"==r?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a;if(i&&i.returnType){var h=["DataTable","Array","Object"];if(a=-1==h.indexOf(i.returnType)?"Array":i.returnType,o&&a!=s.getType(o))throw new Error('Type of parameter "data" ('+s.getType(o)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==a&&!s.isDataTable(o))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else a=o&&"DataTable"==s.getType(o)?"DataTable":"Array";var d,l,c,u,p=i&&i.type||this._options.type,f=i&&i.filter,m=[];if(void 0!=t)d=n._getItem(t,p),f&&!f(d)&&(d=null);else if(void 0!=e)for(c=0,u=e.length;u>c;c++)d=n._getItem(e[c],p),(!f||f(d))&&m.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=n._getItem(l,p),(!f||f(d))&&m.push(d));if(i&&i.order&&void 0==t&&this._sort(m,i.order),i&&i.fields){var g=i.fields;if(void 0!=t)d=this._filterFields(d,g);else for(c=0,u=m.length;u>c;c++)m[c]=this._filterFields(m[c],g)}if("DataTable"==a){var v=this._getColumnNames(o);if(void 0!=t)n._appendRow(o,v,d);else for(c=0;cc;c++)o.push(m[c]);return o}return m},o.prototype.getIds=function(t){var e,i,o,s,n,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){n=[];for(o in r)r.hasOwnProperty(o)&&(s=this._getItem(o,d),a(s)&&n.push(s));for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(s=this._getItem(o,d),a(s)&&l.push(s[this._fieldId]));else if(h){n=[];for(o in r)r.hasOwnProperty(o)&&n.push(r[o]);for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(s=r[o],l.push(s[this._fieldId]));return l},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,s=e&&e.filter,n=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],o=i[this._fieldId],t(i,o);else for(o in r)r.hasOwnProperty(o)&&(i=this._getItem(o,n),(!s||s(i))&&t(i,o))},o.prototype.map=function(t,e){var i,o=e&&e.filter,s=e&&e.type||this._options.type,n=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,s),(!o||o(i))&&n.push(t(i,a)));return e&&e.order&&this._sort(n,e.order),n},o.prototype._filterFields=function(t,e){if(!t)return t;var i={};for(var o in t)t.hasOwnProperty(o)&&-1!=e.indexOf(o)&&(i[o]=t[o]);return i},o.prototype._sort=function(t,e){if(s.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],s=e[i];return o>s?1:s>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,s,n=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)s=this._remove(t[i]),null!=s&&n.push(s);else s=this._remove(t),null!=s&&n.push(s);return n.length&&this._trigger("remove",{items:n},e),n},o.prototype._remove=function(t){if(s.isNumber(t)||s.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e=this._data,i=null,o=null;for(var s in e)if(e.hasOwnProperty(s)){var n=e[s],r=n[t];null!=r&&(!i||r>o)&&(i=n,o=r)}return i},o.prototype.min=function(t){var e=this._data,i=null,o=null;for(var s in e)if(e.hasOwnProperty(s)){var n=e[s],r=n[t];null!=r&&(!i||o>r)&&(i=n,o=r)}return i},o.prototype.distinct=function(t){var e,i=this._data,o=[],n=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(o[e]==d){l=!0;break}l||void 0===d||(o[r]=d,r++)}if(n)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},o.prototype._appendRow=function(t,e,i){for(var o=t.addRow(),s=0,n=e.length;n>s;s++){var r=e[s];t.setValue(o,s,i[r])}},t.exports=o},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var s=i(1),n=i(3);o.prototype.setData=function(t){var e,i,o;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var s in this._ids)this._ids.hasOwnProperty(s)&&e.push(s);this._ids={},this.length=0,this._trigger("remove",{items:e})}if(this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),i=0,o=e.length;o>i;i++)s=e[i],this._ids[s]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},o=[],s=[],n=0;no;o++)n=a[o],r=this.get(n),r&&(this._ids[n]=!0,d.push(n));break;case"update":for(o=0,s=a.length;s>o;o++)n=a[o],r=this.get(n),r?this._ids[n]?l.push(n):(this._ids[n]=!0,d.push(n)):this._ids[n]&&(delete this._ids[n],c.push(n));break;case"remove":for(o=0,s=a.length;s>o;o++)n=a[o],this._ids[n]&&(delete this._ids[n],c.push(n))}this.length+=d.length-c.length,d.length&&this._trigger("add",{items:d},i),l.length&&this._trigger("update",{items:l},i),c.length&&this._trigger("remove",{items:c},i)}},o.prototype.on=n.prototype.on,o.prototype.off=n.prototype.off,o.prototype._trigger=n.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t){function e(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}e.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},e.extend=function(t,i){var o=new e(i);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var s=[{name:"flush",original:void 0}];if(i&&i.replace)for(var n=0;nthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},e.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=e},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var s=function(t){return t};this.xValueLabel=s,this.yValueLabel=s,this.zValueLabel=s,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new u,this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.colorAxis="#4D4D4D",this.colorGrid="#D3D3D3",this.colorDot="#7DC1FF",this.colorDotBorder="#3267D2",this.create(),this.setOptions(i),e&&this.setData(e)}function s(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function n(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(62),a=i(3),h=i(4),d=i(1),l=i(10),c=i(9),u=i(7),p=i(8),f=i(11),m=i(12);r(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-u)/(p-u),g=240*f,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===o.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new m(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,s=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*w)>0?(g.textAlign="center",g.textBaseline="top",s.y+=b):Math.sin(2*w)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",s.x,s.y),i.next()}for(g.lineWidth=1,o=void 0===this.defaultYStep,i=new m(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,s=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(g.textAlign="center",g.textBaseline="top",s.y+=b):Math.sin(2*w)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",s.x,s.y),i.next();for(g.lineWidth=1,o=void 0===this.defaultZStep,i=new m(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,u=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(u.x,u.y),g.lineTo(p.x,p.y),g.stroke(),u=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(u.x,u.y),g.lineTo(p.x,p.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var _=this.xLabel;_.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-c:this.yMax+c,s=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*w)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*w)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(_,s.x,s.y));var M=this.yLabel;M.length>0&&(d=.1/this.scale.x,n=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,s=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*w)<0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*w)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(M,s.x,s.y));var D=this.zLabel;D.length>0&&(h=30,n=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,s=this._convert3Dto2D(new l(n,r,a)),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(D,s.x-h,s.y))},o.prototype._hsv2rgb=function(t,e,i){var o,s,n,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,s=h,n=0;break;case 1:o=h,s=r,n=0;break;case 2:o=0,s=r,n=h;break;case 3:o=0,s=h,n=r;break;case 4:o=h,s=0,n=r;break;case 5:o=r,s=0,n=h;break;default:o=0,s=0,n=0}return"RGB("+parseInt(255*o)+","+parseInt(255*s)+","+parseInt(255*n)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,s,n,r,a,h,d,c,u,p,f,m=this.frame.canvas,g=m.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(f=(t.point.z+e.point.z+i.point.z+s.point.z)/4,c=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),u=1,this.showShadow?(p=Math.min(1+M.x/D/2,1),a=this._hsv2rgb(c,u,p),h=a):(p=1,a=this._hsv2rgb(c,u,p),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,g.lineWidth=d,g.fillStyle=a,g.strokeStyle=h,g.beginPath(),g.moveTo(t.screen.x,t.screen.y),g.lineTo(e.screen.x,e.screen.y),g.lineTo(s.screen.x,s.screen.y),g.lineTo(i.screen.x,i.screen.y),g.closePath(),g.fill(),g.stroke()}}else for(n=0;nu&&(u=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.colorDot,m=this.colorDotBorder):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=1,i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,u,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,s,n=this.frame.canvas,r=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],o.lineWidth=1,o.strokeStyle="blue",o.beginPath(),o.moveTo(t.screen.x,t.screen.y)),e=1;e0&&o.stroke()}},o.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=s(t),this.startMouseY=n(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},o.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(s(t))-this.startMouseX,i=parseFloat(n(t))-this.startMouseY,o=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(o))0?1:0>t?-1:0}var o=e[0],s=e[1],n=e[2],r=i((s.x-o.x)*(t.y-o.y)-(s.y-o.y)*(t.x-o.x)),a=i((n.x-s.x)*(t.y-s.y)-(n.y-s.y)*(t.x-s.x)),h=i((o.x-n.x)*(t.y-n.y)-(o.y-n.y)*(t.x-n.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,s=100,n=null,r=null,a=null,h=new c(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var d=n.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var u=d[l],p=u.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return n}}else for(i=0;ib)&&s>b&&(a=b,r=n)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var s=e.offsetWidth,n=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-s/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-s),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-n+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e,i){function o(){this.armLocation=new s,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new s,this.cameraRotation=new s(.5*Math.PI,0,0),this.calculateCameraOrientation()}var s=i(10);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var s=i(4);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t]; -else{var i={};i.column=this.column,i.value=this.values[t];var o=new s(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),s.preventDefault()},o.prototype._onMouseUp=function(){this.frame.style.cursor="auto",s.removeEventListener(document,"mousemove",this.onmousemove),s.removeEventListener(document,"mouseup",this.onmouseup),s.preventDefault()},t.exports=o},function(t){function e(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}e.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},e.prototype.setStep=function(t,i){void 0===t||0>=t||(void 0!==i&&(this.prettyStep=i),this._step=this.prettyStep===!0?e.calculatePrettyStep(t):t)},e.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),s=5*Math.pow(10,Math.round(e(t/5))),n=i;return Math.abs(o-t)<=Math.abs(n-t)&&(n=o),Math.abs(s-t)<=Math.abs(n-t)&&(n=s),0>=n&&(n=1),n},e.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},e.prototype.getStep=function(){return this._step},e.prototype.start=function(){this._current=this._start-this._start%this._step},e.prototype.next=function(){this._current+=this._step},e.prototype.end=function(){return this._current>this._end},t.exports=e},function(t,e,i){function o(t,e,i,h){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n||i instanceof r)&&i instanceof Object){var p=h;h=i,i=p}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return f.timeAxis.step.scale},getStep:function(){return f.timeAxis.step.step},toScreen:f._toScreen.bind(f),toGlobalScreen:f._toGlobalScreen.bind(f),toTime:f._toTime.bind(f),toGlobalTime:f._toGlobalTime.bind(f)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new u(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var s=(i(62),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),u=i(32);o.prototype=new h,o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var o=this._getDataRange();var s=void 0!=this.options.start?this.options.start:o.start,a=void 0!=this.options.end?this.options.end:o.end;this.setWindow(s,a,{animate:!1})}else this.fit({animate:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),s=null,n=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===s||s>e)&&(s=e),(null===n||i>n)&&(n=i)}),null!==s&&null!==n){var r=(s+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-s)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var o=t.min("start");e=o?s.convert(o.start,"Date").valueOf():null;var n=t.max("start");n&&(i=s.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?s.convert(r.end,"Date").valueOf():Math.max(i,s.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},t.exports=o},function(t,e,i){function o(t,e,i,o){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=o;o=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new u(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,o&&this.setOptions(o),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var s=(i(62),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),u=i(34);o.prototype=new h,o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var o=void 0!=this.options.start?this.options.start:null,s=void 0!=this.options.end?this.options.end:null;this.setWindow(o,s,{animate:!1})}else this.fit({animate:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},o.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},o.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},o.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var o=0;or?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},t.exports=o},function(t,e,i){var o=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var u=0,p=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(u=1),d.dayOfYear(s.dayOfYear()),d.year(s.year()),d.subtract(7,"days"),l.dayOfYear(s.dayOfYear()),l.year(s.year()),l.subtract(7-u,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(s.date()),d.month(s.month()),d.year(s.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(u=1),d.month(s.month()),d.year(s.year()),d.subtract(1,"months"),l.month(s.month()),l.year(s.year()),l.subtract(1,"months"),l.add(u,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(u=1),d.year(s.year()),d.subtract(1,"years"),l.year(s.year()),l.subtract(1,"years"),l.add(u,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;p>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[s].end<=e[o].end?e[s].remove=!0:e[s].start>=e[o].start&&e[s].start<=e[o].end?(e[o].end=e[s].end,e[s].remove=!0):e[s].end>=e[o].start&&e[s].end<=e[o].end&&(e[o].start=e[s].start,e[s].remove=!0));for(var o=0;o=r&&a>s){i=!0;break}}if(1==i&&s=e&&i>r&&(o+=r-n)}return o},e.correctTimeForHidden=function(t,i,s){return s=o(s).toDate().valueOf(),s-=e.getHiddenDurationBefore(t,i,s)},e.getHiddenDurationBefore=function(t,e,i){var s=0;i=o(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(s+=a-r)}return s},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,s=0,n=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,s){var n=e.isHidden(i,t);return 1==n.hidden?0>o?1==s?n.startDate-(n.endDate-i)-1:n.startDate-1:1==s?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&s>t)return{hidden:!0,startDate:o,endDate:s}}return{hidden:!1,startDate:o,endDate:s}}},function(t){function e(t,e,i,o,s,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,o,s)}e.prototype.setRange=function(t,e,i,o,s){this._start=void 0===s.min?t:s.min,this._end=void 0===s.max?e:s.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,o),this.setFirst(s)},e.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,o=1.2*i,s=t*(o/e),n=Math.round(Math.log(o)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=s){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},e.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},e.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},e.prototype.hasNext=function(){return this.current>=this.marginStart},e.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},e.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},e.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;o--){if("0"!=i[o]){if("."==i[o]||","==i[o]){i=i.slice(0,o);break}break}i=i.slice(0,o)}}else{var s="",n=i.indexOf("e");if(-1!=n&&(s=i.slice(n),i=i.slice(0,n)),n=Math.max(i.indexOf(","),i.indexOf(".")),-1===n?(0!==t&&(i+="."),n=i.length+t):0!==t&&(n+=t+1),n>i.length)for(var r=n-i.length;r>0;r--)i+="0";else i=i.slice(0,n);i+=s}return i},e.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=e},function(t,e,i){function o(t,e){var i=a().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("press",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function s(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}}var r=i(1),a=(i(47),i(44)),h=i(25),d=i(15);o.prototype=new h,o.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},o.prototype.setRange=function(t,e,i,o){o!==!0&&(o=!1);var s=void 0!=t?r.convert(t,"Date").valueOf():null,n=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,l=this.end,c="number"==typeof i?i:500,u=(new Date).valueOf(),p=!1,f=function(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-u,i=e>c,g=i||null===s?s:r.easeInOutQuad(e,h,s,c),v=i||null===n?n:r.easeInOutQuad(e,l,n,c);m=a._applyRange(g,v),d.updateHiddenDates(a.body,a.options.hiddenDates),p=p||m,m&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),i?p&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animateTimer=setTimeout(f,20)}};return f()}var m=this._applyRange(s,n);if(d.updateHiddenDates(this.body,this.options.hiddenDates),m){var g={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",g),this.body.emitter.emit("rangechanged",g)}},o.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,s=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(s)||null===s)throw new Error('Invalid end "'+e+'"');if(o>s&&(s=o),null!==a&&a>o&&(i=a-o,o+=i,s+=i,null!=n&&s>n&&(s=n)),null!==n&&s>n&&(i=s-n,o-=i,s-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>s-o&&(this.end-this.start===h&&o>this.start&&sd&&(d=0),s-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,s=this.end):(i=s-o-d,o+=i/2,s-=i/2))}var l=this.start!=o||this.end!=s;return o>=this.start&&o<=this.end||s>=this.start&&s<=this.end||this.start>=o&&this.start<=s||this.end>=o&&this.end<=s||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=s,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"),t.preventDefault())},o.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;s(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,n=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*o,h=this.props.touch.start+a,l=this.props.touch.end+a,c=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(c!=h||u!=l)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=u,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0}),t.preventDefault()}},o.prototype._onDragEnd=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=n({x:t.pageX,y:t.pageY},this.body.dom.center),s=this._pointerToDate(o);this.zoom(i,s,e)}t.preventDefault()}},o.prototype._onTouch=function(){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onHold=function(){this.props.touch.allowDragging=!1},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=n(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=d.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=o-s,a=i-s+(this.props.touch.start-(i-s))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var l=d.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=d.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(l!=a||c!=h)&&(this.props.touch.start=l,this.props.touch.end=c,this.scaleOffset=1-t.scale,a=l,h=c),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0,t.preventDefault()}},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(s(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),s=d.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=o-s,r=e-s+(this.start-(e-s))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||l!=a)&&(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,s=this.end-i;this.setRange(o,s)},t.exports=o},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,o="end"in e.data?e.data.end:e.data.start;return i-o})},e.stack=function(t,i,o){var s,n;if(o)for(s=0,n=t.length;n>s;s++)t[s].top=null;for(s=0,n=t.length;n>s;s++){var r=t[s];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,s,n;for(o=0,s=t.length;s>o;o++)if(void 0!==t[o].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-o.vertical+ie.top}},function(t,e,i){function o(t,e,i,s){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,this.hiddenDates=s,void 0===s&&(this.hiddenDates=[]),this.format=o.FORMAT}var s=i(44),n=i(15),r=i(1);o.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},o.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case"month":this.current.setDate(1);case"day":case"weekday":this.current.setHours(0);case"hour":this.current.setMinutes(0);case"minute":this.current.setSeconds(0);case"second":this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step); -break;case"hour":this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case"month":this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current=new Date(this.current.valueOf()+1e3*this.step);break;case"minute":this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case"hour":this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()+this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()+this.step);break;case"hour":this.current.setHours(this.current.getHours()+this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.getMilliseconds()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,s=36e5,n=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*s>t&&(this.scale="hour",this.step=4),s>t&&(this.scale="hour",this.step=1),15*n>t&&(this.scale="minute",this.step=15),10*n>t&&(this.scale="minute",this.step=10),5*n>t&&(this.scale="minute",this.step=5),n>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=new Date(t.valueOf());if("year"==e){var s=o.getFullYear()+Math.round(o.getMonth()/12);o.setFullYear(Math.round(s/i)*i),o.setMonth(0),o.setDate(0),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("month"==e)o.getDate()>15?(o.setDate(1),o.setMonth(o.getMonth()+1)):o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.setHours(24*Math.round(o.getHours()/24));break;default:o.setHours(12*Math.round(o.getHours()/12))}o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.setHours(12*Math.round(o.getHours()/12));break;default:o.setHours(6*Math.round(o.getHours()/6))}o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("hour"==e){switch(i){case 4:o.setMinutes(60*Math.round(o.getMinutes()/60));break;default:o.setMinutes(30*Math.round(o.getMinutes()/30))}o.setSeconds(0),o.setMilliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.setMinutes(5*Math.round(o.getMinutes()/5)),o.setSeconds(0);break;case 5:o.setSeconds(60*Math.round(o.getSeconds()/60));break;default:o.setSeconds(30*Math.round(o.getSeconds()/30))}o.setMilliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.setSeconds(5*Math.round(o.getSeconds()/5)),o.setMilliseconds(0);break;case 5:o.setMilliseconds(1e3*Math.round(o.getMilliseconds()/1e3));break;default:o.setMilliseconds(500*Math.round(o.getMilliseconds()/500))}else if("millisecond"==e){var n=i>5?i/2:1;o.setMilliseconds(Math.round(o.getMilliseconds()/n)*n)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}switch(this.scale){case"millisecond":return 0==this.current.getMilliseconds();case"second":return 0==this.current.getSeconds();case"minute":return 0==this.current.getHours()&&0==this.current.getMinutes();case"hour":return 0==this.current.getHours();case"weekday":case"day":return 1==this.current.getDate();case"month":return 0==this.current.getMonth();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?s(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?s(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(s().add(1,"day"),"day")?" tomorrow":t.isSame(s().add(-1,"day"),"day")?" yesterday":""}function i(t){return t.isSame(new Date,"week")?" current-week":""}function o(t){return t.isSame(new Date,"month")?" current-month":""}function n(t){return t.isSame(new Date,"year")?" current-year":""}var r=s(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"h"+d+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"day"+l+" "+c+o(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var u=a.year();return"year"+u+n(a)+t(u);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null}var s=i(45),n=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",new s(i).on("tap",function(t){e.parent.removeFromDataSet(e),t.stopPropagation(),t.preventDefault()}),t.appendChild(i),this.dom.deleteButton=i}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;it.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,s=this.parent.subgroups,r=s[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in s)s.hasOwnProperty(h)&&1==s[h].visible&&s[h].indexr&&(a+=s[h].height+t.item.vertical);i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);s.call(this,t,e,i)}{var s=i(20);i(1)}o.prototype=new s(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},o.prototype.repositionX=function(){var t,e,i=this.parent.width,o=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);-i>o&&(o=-i),s>2*i&&(s=2*i);var n=Math.max(s-o,1);switch(this.overflow?(this.left=o,this.width=n+this.props.content.width,e=this.props.content.width):(this.left=o,this.width=n,e=Math.min(s-o-2*this.options.padding,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(n-e-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((n-e-2*this.options.padding)/2,0)+"px";break;default:t=this.overflow?s>0?Math.max(-o,0):-e:0>o?Math.min(-o,s-o-e-2*this.options.padding):0,this.dom.content.style.left=t+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t){function e(){this.options=null,this.props=null}e.prototype.setOptions=function(t){t&&util.extend(this.options,t)},e.prototype.redraw=function(){return!1},e.prototype.destroy=function(){},e.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=e},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=s.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var s=i(1),n=i(25),r=i(44),a=i(48);o.prototype=new n,o.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&s.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=new Date((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale],s=o.current+" "+o.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=i+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;30>o&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=s.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en",id:0},this.options=n.extend({},this.defaultOptions),this.customTime=e&&e.time?e.time:new Date,this.eventParams={},this._create(),this.setOptions(e)}var s=i(45),n=i(1),r=i(25),a=i(44),h=i(48);o.prototype=new r,o.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showCustomTime","locale","locales","id"],this.options,t),this.options.id&&this.redraw())},o.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=new s(e),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.on("pan",function(t){t.preventDefault()})},o.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},o.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],o=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=e+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},o.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},o.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},o.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},o.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=this.body.util.toScreen(this.eventParams.customTime)+t.deltaX,i=this.body.util.toTime(e);this.setCustomTime(i),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},o.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=s.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=s.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var s=i(1),n=i(2),r=i(25),a=i(16);o.prototype=new r,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];s.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,o=4,s=o+.5*i;t="left"==this.options.orientation?o:this.width-e-o;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,s,this.svgElements,this.svg,e,i),s+=i+o));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var o=this.props,s=this.dom.frame;s.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"==n?(s.style.top="0",s.style.left="0",s.style.bottom="",s.style.width=this.width+"px",s.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(s.style.top="",s.style.bottom="0",s.style.left="0",s.style.width=this.width+"px",s.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n) -}return t},o.prototype._redrawLabels=function(){var t=!1;n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var e=this.options.orientation,i=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,o=new a(this.range.start,this.range.end,i,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=o;var s=(this.dom.frame.offsetHeight-o.deadSpace*(this.dom.frame.offsetHeight/o.marginRange))/((o.marginRange-o.deadSpace)/o.step);this.stepPixels=s;var r=this.height/s,h=0;if(0==this.master){s=this.stepPixelsForced,h=Math.round(this.dom.frame.offsetHeight/s-r);for(var d=0;.5*h>d;d++)o.previous();if(r=this.height/s,-1!=this.zeroCrossing&&1==this.options.alignZeros){var l=o.marginEnd/o.step-this.zeroCrossing;if(l>0)for(var d=0;l>d;d++)o.next();else if(0>l)for(var d=0;-l>d;d++)o.previous()}}else r+=.25;this.valueAtZero=o.marginEnd;var c,u=0,p=1;void 0!==this.options.format[e]&&(c=this.options.format[e].decimals),this.maxLabelSize=0;for(var f=0;p=0&&this._redrawLabel(f-2,o.getCurrent(c),e,"yAxis major",this.props.majorCharHeight),this._redrawLine(f,e,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(f,e,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==o.current&&(this.zeroCrossing=p),p++}this.conversionFactor=0==this.master?f/(this.valueAtZero-o.current):this.dom.frame.offsetHeight/o.marginRange;var g=0;void 0!==this.options.title[e]&&void 0!==this.options.title[e].text&&(g=this.props.titleCharHeight);var v=1==this.options.icons?Math.max(this.options.iconWidth,g)+this.options.labelOffsetX+15:g+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-v&&1==this.options.visible?(this.width=this.maxLabelSize+v,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+v),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),t=!1),t},o.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},o.prototype._redrawLabel=function(t,e,i,o,s){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*s+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSized;d++){var c=this.visibleItems[d];c.repositionY(e)}return o},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var o=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(s.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(o.subgroups[t.data.subgroup].height=Math.max(o.subgroups[t.data.subgroup].height,t.height),o.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,s.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=t.axis+t.item.vertical;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!s(n));r--)void 0===o[n.id]&&(o[n.id]=!0,i.push(n));for(r=t+1;ro;o++){var n=this.visibleItems[o];n.repositionY(e)}return i},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},snap:h.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var s=i(45),n=i(1),r=i(3),a=i(4),h=i(19),d=i(25),l=i(30),c=i(31),u=i(22),p=i(23),f=i(24),m=i(21),g="__ungrouped__",v="__background__";o.prototype=new d,o.types={background:m,box:u,range:f,point:p},o.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="axis",this.dom.axis=o;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new c(v,null,this);r.show(),this.groups[v]=r,this.hammer=new s(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},o.prototype.setOptions=function(t){if(t){var e=["type","align","orientation","padding","stack","selectable","groupOrder","dataAttributes","template","hide","snap"];n.selectiveExtend(e,this.options,t),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},o.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},o.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},o.prototype.setSelection=function(t){var e,i,o,s;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)o=this.selection[e],s=this.items[o],s&&s.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],s=this.items[o],s&&(this.selection.push(o),s.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),o=[];for(var s in this.groups)if(this.groups.hasOwnProperty(s))for(var n=this.groups[s],r=n.visibleItems,a=0;ae&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,o=this.options,s=o.orientation,r=!1,a=this.dom.frame,h=o.editable.updateTime||o.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,u=this._firstGroup(),p={item:t.item,axis:t.axis},f={item:t.item,axis:t.item.vertical/2},m=0,g=t.axis+t.item.vertical;return this.groups[v].redraw(e,f,c),n.forEach(this.groups,function(t){var i=t==u?p:f,o=t.redraw(e,i,c);r=o||r,m+=t.height}),m=Math.max(m,g),this.stackDirty=!1,a.style.height=i(m),this.props.width=a.offsetWidth,this.props.height=m,this.dom.axis.style.top=i("top"==s?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},o.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[g];return i||null},o.prototype._updateUngrouped=function(){{var t,e,i=this.groups[g];this.groups[v]}if(this.groupsData){if(i){i.hide(),delete this.groups[g];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),s=this.groups[o];s&&s.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new l(n,r,this),this.groups[g]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(n.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var s=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,s)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?v:this.groupsData?t.group:g},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),s=e.items[t],n=e._getType(i),r=o.types[n];if(s&&(r&&s instanceof r?e._updateItem(s,i):(e._removeItem(s),s=null)),!s){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');s=new r(i,e.conversion,e.options),s.id=t,e._addItem(s)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},o.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==g||t==v)throw new Error("Illegal group id. "+t+" is a reserved id.");var s=Object.create(e.options);n.extend(s,{height:null}),o=new l(t,i,e),e.groups[t]=o;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var o=this.groups[i];o&&o.remove(t);var s=this._getGroupId(t.data),n=this.groups[s];n&&n.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||s.length>0)&&this.body.emitter.emit("select",{items:a})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,s=o.itemFromTarget(t);if(s){var r=e.itemsData.get(s.id);this.options.onUpdate(r,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var a=n.getAbsoluteLeft(this.dom.frame),h=t.center.x-a,d=this.body.util.toTime(h),l=this.body.util.getScale(),c=this.body.util.getStep(),u={start:i?i(d,l,c):d,content:"new item"};if("range"===this.options.type){var p=this.body.util.toTime(h+this.props.width/5);u.end=i?i(p,l,c):p}u[this.itemsData._fieldId]=n.randomUUID();var f=this.groupFromTarget(t);f&&(u.group=f.groupId),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=o.itemFromTarget(t);if(i){e=this.getSelection();var s=t.srcEvent&&t.srcEvent.shiftKey||!1;if(s){e.push(i.id);var n=o._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start) -}),{min:i,max:e}},o.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.gesture.center.clientY,i=0;ia&&ea)return s}else if(0===i&&e"));this.dom.textArea.innerHTML=o,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,o=this.options.iconSize,s=.75*this.options.iconSize,r=e+.5*s+3;this.svg.style.width=o+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,o,s),r+=s+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=o},function(t,e,i){function o(t,e){this.id=s.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=s.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=s.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var s=i(1),n=i(2),r=i(3),a=i(4),h=i(25),d=i(28),l=i(29),c=i(33),u=i(50),p="__ungrouped__";o.prototype=new h,o.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;ep&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;ro){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var o=0;o0){var n=1,r=s.length,a=this.body.util.toGlobalScreen(s[s.length-1].x)-this.body.util.toGlobalScreen(s[0].x),h=r/a;n=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=n)d.push(s[l]);e[t[o]]=d}}},o.prototype._getYRanges=function(t,e,i){var o,s,n,r,a=[],h=[];if(t.length>0){for(n=0;n0&&(s=this.groups[t[n]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(s.getYRange(o)):h=h.concat(s.getYRange(o)):i[t[n]]=s.getYRange(o,t[n]));u.getStackedBarYRange(a,i,t,"__barchartLeft","left"),u.getStackedBarYRange(h,i,t,"__barchartRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,s=!1,n=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==n&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return s=this._toggleAxisVisiblity(n,this.yAxisLeft)||s,s=this._toggleAxisVisiblity(r,this.yAxisRight)||s,1==r&&1==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,s=this.yAxisLeft.redraw()||s,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,s=this.yAxisRight.redraw()||s):s=this.yAxisRight.redraw()||s,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),s},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e,i,o=[],s=this.body.util.toScreen,n=0;ny;)y++,l=h.getCurrent(),c=h.isMajor(),p=h.getClassName(),m=f,f=this.body.util.toScreen(l),g=f-m,u&&(u.style.width=g+"px"),this.options.showMinorLabels&&this._repaintMinorText(f,h.getLabelMinor(),t,p),c&&this.options.showMajorLabels?(f>0&&(void 0==v&&(v=f),this._repaintMajorText(f,h.getLabelMajor(),t,p)),u=this._repaintMajorLine(f,t,p)):u=this._repaintMinorLine(f,t,p),h.next();if(this.options.showMajorLabels){var b=this.body.util.toTime(0),w=h.getLabelMajor(b),x=w.length*(this.props.majorCharWidth||10)+10;(void 0==v||v>x)&&this._repaintMajorText(0,w,t,p)}s.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var s=this.dom.redundant.minorTexts.shift();if(!s){var n=document.createTextNode("");s=document.createElement("div"),s.appendChild(n),this.dom.foreground.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?this.props.majorLabelHeight+"px":"0",s.style.left=t+"px",s.className="text minor "+o},o.prototype._repaintMajorText=function(t,e,i,o){var s=this.dom.redundant.majorTexts.shift();if(!s){var n=document.createTextNode(e);s=document.createElement("div"),s.appendChild(n),this.dom.foreground.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,s.className="text major "+o,s.style.top="top"==i?"0":this.props.minorLabelHeight+"px",s.style.left=t+"px"},o.prototype._repaintMinorLine=function(t,e,i){var o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);var s=this.props;return o.style.top="top"==e?s.majorLabelHeight+"px":this.body.domProps.top.height+"px",o.style.height=s.minorLineHeight+"px",o.style.left=t-s.minorLineWidth/2+"px",o.className="grid vertical minor "+i,o},o.prototype._repaintMajorLine=function(t,e,i){var o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);var s=this.props;return o.style.top="top"==e?"0":this.body.domProps.top.height+"px",o.style.left=t-s.majorLineWidth/2+"px",o.style.height=s.majorLineHeight+"px",o.className="grid vertical major "+i,o},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this._initializeMixinLoaders(),this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null};var s=function(t,e,i,o){if(e==t)return.5;var s=1/(e-t);return Math.max(0,(o-t)*s)};this.defaultOptions={nodes:{customScalingFunction:s,mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,fontStrokeWidth:0,fontStrokeColor:"#ffffff",fontDrawThreshold:3,scaleFontWithValue:!1,fontSizeMin:14,fontSizeMax:30,fontSizeMaxVisible:30,value:1,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{customScalingFunction:s,widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,value:1,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},opacity:1,fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",fontStrokeWidth:0,fontStrokeColor:"white",labelAlignment:"horizontal",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from",useGradients:!1},configurePhysics:!1,navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150,nodeSpacing:100,direction:"UD",layout:"hubsize"},smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},locale:"en",locales:v,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0,useDefaultGroups:!0},this.constants=n.extend({},this.defaultOptions),this.body={nodes:{},nodeIndices:[],supportNodes:{},supportNodeIndices:[],edges:{},data:{nodes:null,edges:null},functions:{createNode:this._createNode.bind(this),createEdge:this._createEdge.bind(this)},emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){}},container:t},this.view=new _(this.body),this.renderer=new w(this.body),this.clustering=new b(this.body),this.physics=new y(this.body),this.canvas=new x(this.body),this.touchHandler=new M(this.body),this.renderer.setCanvas(this.canvas),this.view.setCanvas(this.canvas),this.touchHandler.setCanvas(this.canvas),this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers=[],this.manipulationHammers=[];var r=this;this.groups=new l,this.images=new c,this.images.setOnloadCallback(function(){r._requestRedraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadSelectionSystem(),this.setOptions(i),this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.pointerPosition={x:0,y:0},this.scale=1,this.nodesListeners={add:function(t,e){r._addNodes(e.items),r.start()},update:function(t,e){r._updateNodes(e.items,e.data),r.start()},remove:function(t,e){r._removeNodes(e.items),r.start()}},this.edgesListeners={add:function(t,e){r._addEdges(e.items),r.start()},update:function(t,e){r._updateEdges(e.items),r.start()},remove:function(t,e){r._removeEdges(e.items),r.start()}},this.moving=!0,this.renderTimer=void 0,this.setData(e,this.constants.hierarchicalLayout.enabled),1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent({duration:0},!0,this.constants.clustering.enabled),0==this.constants.stabilize&&(this.initializing=!1);var r=this;this.on("_dataChanged",function(){r._updateNodeIndexList(),r.physics._updateCalculationNodes(),r._markAllEdgesAsDirty(),r.initializing!==!0&&(r.moving=!0,r.start())}),this.on("_newEdgesCreated",this._createBezierNodes.bind(this))}var s=i(62),n=(i(45),i(63),i(1)),r=(i(47),i(3)),a=i(4),h=i(42),d=i(43),l=i(38),c=i(39),u=i(40),p=i(37),f=i(41),m=i(52),g=i(53),v=i(54);i(55);var y=i(56).PhysicsEngine,b=i(57).ClusterEngine,w=i(58).CanvasRenderer,x=i(59).Canvas,_=i(60).View,M=i(61).TouchEventHandler;s(o.prototype),o.prototype._createNode=function(t){return new u(t,this.images,this.groups,this.constants)},o.prototype._createEdge=function(t){return new p(t,this.body,this.constants)},o.prototype._updateNodeIndexList=function(){this.body.supportNodeIndices=Object.keys(this.body.supportNodes),this.body.nodeIndices=Object.keys(this.body.nodes)},o.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this._unselectAll(!0),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(1==this.constants.dataManipulation.enabled&&this._createManipulatorBar(),this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=h.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var o=d.parseGephi(t.gephi);return void this.setData(o)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);0==e?1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):this.physics.startSimulation():this.initializing=!1},o.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(n.selectiveNotDeepExtend(i,this.constants,t),n.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),n.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),this.groups.useDefaultGroups=this.constants.useDefaultGroups,this.physics.setOptions(t.physics),this.canvas.setOptions(this.constants),t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),n.mergeOptions(this.constants,t,"smoothCurves"),n.mergeOptions(this.constants,t,"hierarchicalLayout"),n.mergeOptions(this.constants,t,"clustering"),n.mergeOptions(this.constants,t,"navigation"),n.mergeOptions(this.constants,t,"keyboard"),n.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(n.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover)),this.constants.edges.inheritColor=!1),t.edges.fontColor||void 0!==t.edges.color&&(n.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var o=n.parseColor(t.nodes.color); -this.constants.nodes.color.background=o.background,this.constants.nodes.color.border=o.border,this.constants.nodes.color.highlight.background=o.highlight.background,this.constants.nodes.color.highlight.border=o.highlight.border,this.constants.nodes.color.hover.background=o.hover.background,this.constants.nodes.color.hover.border=o.hover.border}if(t.groups)for(var s in t.groups)if(t.groups.hasOwnProperty(s)){var r=t.groups[s];this.groups.add(s,r)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=n.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new g(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.');this.canvas._bindHammer(),this._markAllEdgesAsDirty(),this.canvas.setSize(this.constants.width,this.constants.height),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.initializing!==!0&&(this.moving=!0,this.start())}},o.prototype._createKeyBinds=function(){},o.prototype.destroy=function(){this.start=function(){},this.redraw=function(){},this.renderTimer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off(),this._recursiveDOMDelete(this.containerElement)},o.prototype._recursiveDOMDelete=function(t){for(;1==t.hasChildNodes();)this._recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},o.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},o=void 0===this.popupObj?"":this.popupObj.id,s=!1,n="node";if(void 0==this.popupObj){var r=this.body.nodes,a=[];for(e in r)if(r.hasOwnProperty(e)){var h=r[e];h.isOverlappingWith(i)&&void 0!==h.getTitle()&&a.push(e)}a.length>0&&(this.popupObj=this.body.nodes[a[a.length-1]],s=!0)}if(void 0===this.popupObj&&0==s){var d=this.body.edges,l=[];for(e in d)if(d.hasOwnProperty(e)){var c=d[e];c.connected===!0&&void 0!==c.getTitle()&&c.isOverlappingWith(i)&&l.push(e)}l.length>0&&(this.popupObj=this.body.edges[l[l.length-1]],n="edge")}this.popupObj?this.popupObj.id!=o&&(void 0===this.popup&&(this.popup=new f(this.frame,this.constants.tooltip)),this.popup.popupTargetType=n,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show()):this.popup&&this.popup.hide()},o.prototype._checkHidePopup=function(t){var e={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},i=!1;if("node"==this.popup.popupTargetType){if(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0){var o=this._getNodeAt(t);i=o.id==this.popup.popupTargetId}}else null===this._getNodeAt(t)&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide())},o.prototype._setNodes=function(t){var e=this.body.data.nodes;if(t instanceof r||t instanceof a)this.body.data.nodes=t;else if(Array.isArray(t))this.body.data.nodes=new r,this.body.data.nodes.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.nodes=new r}if(e&&n.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.body.nodes={},this.body.data.nodes){var i=this;n.forEach(this.nodesListeners,function(t,e){i.body.data.nodes.on(e,t)});var o=this.body.data.nodes.getIds();this._addNodes(o)}this._updateSelection()},o.prototype._addNodes=function(t){for(var e,i=0,o=t.length;o>i;i++){e=t[i];var s=this.body.data.nodes.get(e),n=new u(s,this.images,this.groups,this.constants);if(this.body.nodes[e]=n,!(0!=n.xFixed&&0!=n.yFixed||null!==n.x&&null!==n.y)){var r=1*t.length+10,a=2*Math.PI*Math.random();0==n.xFixed&&(n.x=r*Math.cos(a)),0==n.yFixed&&(n.y=r*Math.sin(a))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.physics._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.body.nodes)},o.prototype._updateNodes=function(t,e){for(var i=this.body.nodes,o=0,s=t.length;s>o;o++){var n=t[o],r=i[n],a=e[o];r?r.setProperties(a,this.constants):(r=new u(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i),this._markAllEdgesAsDirty()},o.prototype._markAllEdgesAsDirty=function(){for(var t in this.body.edges)this.body.edges[t].colorDirty=!0},o.prototype._removeNodes=function(t){for(var e=this.body.nodes,i=0,o=t.length;o>i;i++)void 0!==this.selectionObj.nodes[t[i]]&&(this.body.nodes[t[i]].unselect(),this._removeFromSelection(this.body.nodes[t[i]]));for(var i=0,o=t.length;o>i;i++){var s=t[i];delete e[s]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.physics._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},o.prototype._setEdges=function(t){var e=this.body.data.edges;if(t instanceof r||t instanceof a)this.body.data.edges=t;else if(Array.isArray(t))this.body.data.edges=new r,this.body.data.edges.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.body.data.edges=new r}if(e&&n.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.body.edges={},this.body.data.edges){var i=this;n.forEach(this.edgesListeners,function(t,e){i.body.data.edges.on(e,t)});var o=this.body.data.edges.getIds();this._addEdges(o)}this._reconnectEdges()},o.prototype._addEdges=function(t){for(var e=this.body.edges,i=this.body.data.edges,o=0,s=t.length;s>o;o++){var n=t[o],r=e[n];r&&r.disconnect();var a=i.get(n,{showInternalIds:!0});e[n]=new p(a,this.body,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this.physics._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},o.prototype._updateEdges=function(t){for(var e=this.body.edges,i=this.body.data.edges,o=0,s=t.length;s>o;o++){var n=t[o],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r),a.connect()):(a=new p(r,this.body,this.constants),this.body.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},o.prototype._removeEdges=function(t){for(var e=this.body.edges,i=0,o=t.length;o>i;i++)void 0!==this.selectionObj.edges[t[i]]&&(e[t[i]].unselect(),this._removeFromSelection(e[t[i]]));for(var i=0,o=t.length;o>i;i++){var s=t[i],n=e[s];n&&(null!=n.via&&delete this.body.supportNodes[n.via.id],n.disconnect(),delete e[s])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.physics._updateCalculationNodes()},o.prototype._reconnectEdges=function(){var t,e=this.body.nodes,i=this.body.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[]);for(t in i)if(i.hasOwnProperty(t)){var o=i[t];o.from=null,o.to=null,o.connect()}},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,s=0;for(e in t)if(t.hasOwnProperty(e)){var n=t[e].getValue();void 0!==n&&(i=void 0===i?n:Math.min(n,i),o=void 0===o?n:Math.max(n,o),s+=n)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,s)},o.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},o.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},o.prototype._setScale=function(t){this.scale=t},o.prototype._getScale=function(){return this.scale},o.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},o.prototype.freezeSimulation=function(t){1==t?(this.freezeSimulationEnabled=!0,this.moving=!1):(this.freezeSimulationEnabled=!1,this.moving=!0,this.start())},o.prototype._configureSmoothCurves=function(){var t=void 0===arguments[0]?!0:arguments[0];if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes();for(var e=0;eh}return!1},o.prototype._getColor=function(t){var e=this.options.color;if(1==this.options.useGradients){var i,o,n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);return i=this.from.options.color.highlight.border,o=this.to.options.color.highlight.border,0==this.from.selected&&0==this.to.selected?(i=s.overrideOpacity(this.from.options.color.border,this.options.opacity),o=s.overrideOpacity(this.to.options.color.border,this.options.opacity)):1==this.from.selected&&0==this.to.selected?o=this.to.options.color.border:0==this.from.selected&&1==this.to.selected&&(i=this.from.options.color.border),n.addColorStop(0,i),n.addColorStop(1,o),n}return this.colorDirty===!0&&("to"==this.options.inheritColor?e={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:s.overrideOpacity(this.from.options.color.border,this.options.opacity)}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(e={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:s.overrideOpacity(this.from.options.color.border,this.options.opacity)}),this.options.color=e,this.colorDirty=!1),1==this.selected?e.highlight:1==this.hover?e.hover:e.color},o.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var o=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),s=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:o,y:s}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},o.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},o.prototype._getViaCoordinates=function(){if(1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled)return this.via;if(0==this.options.smoothCurves.enabled)return{x:0,y:0};var t=null,e=null,i=this.options.smoothCurves.roundness,o=this.options.smoothCurves.type,s=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);if("discrete"==o||"diagonalCross"==o)Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==o&&(t=i*n>s?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"==o&&(e=i*s>n?this.from.y:e));else if("straightCross"==o)Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,u=i-h/2,p=o-c/2;this.labelDimensions={top:p,left:u,width:h,height:c,yLine:s}}var s=this.labelDimensions.yLine;t.save(),"horizontal"!=this.options.labelAlignment&&(t.translate(i,s),this._rotateForLabelAlignment(t),i=0,s=0),this._drawLabelRect(t),this._drawLabelText(t,i,s,n,r,a),t.restore()}},o.prototype._rotateForLabelAlignment=function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)},o.prototype._drawLabelRect=function(t){if(void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill){t.fillStyle=this.options.fontFill;var e=2;"line-center"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,.5*-this.labelDimensions.height,this.labelDimensions.width,this.labelDimensions.height):"line-above"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,-(this.labelDimensions.height+e),this.labelDimensions.width,this.labelDimensions.height):"line-below"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,e,this.labelDimensions.width,this.labelDimensions.height):t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)}},o.prototype._drawLabelText=function(t,e,i,o,s,n){if(t.fillStyle=this.options.fontColor||"black",t.textAlign="center","horizontal"!=this.options.labelAlignment){var r=2;"line-above"==this.options.labelAlignment?(t.textBaseline="alphabetic",i-=2*r):"line-below"==this.options.labelAlignment?(t.textBaseline="hanging",i+=2*r):t.textBaseline="middle"}else t.textBaseline="middle";this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=this.options.fontStrokeColor,t.lineJoin="round");for(var a=0;s>a;a++)this.options.fontStrokeWidth>0&&t.strokeText(o[a],e,i),t.fillText(o[a],e,i),i+=n},o.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.setLineDash){t.save();var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],t.setLineDash(i),t.lineDashOffset=0,e=this._line(t),t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var o;if(1==this.options.smoothCurves.enabled&&null!=e){var s=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));o={x:s,y:n}}else o=this._pointOnLine(.5);this._label(t,this.label,o.x,o.y)}},o.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},o.prototype._pointOnCircle=function(t,e,i,o){var s=2*(o-3/8)*Math.PI;return{x:t+i*Math.cos(s),y:e-i*Math.sin(s)}},o.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),o=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,o,s),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var o=.2*Math.PI,s=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,o,s),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},o.prototype._pointOnBezier=function(t){var e=this._getViaCoordinates(),i=Math.pow(1-t,2)*this.from.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.to.x,o=Math.pow(1-t,2)*this.from.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.to.y;return{x:i,y:o}},o.prototype._findBorderPosition=function(t,e){var i,o,s,n,r,a=10,h=0,d=0,l=1,c=.2,u=this.to;for(1==t&&(u=this.from);l>=d&&a>h;){var p=.5*(d+l);if(i=this._pointOnBezier(p),o=Math.atan2(u.y-i.y,u.x-i.x),s=u.distanceToBorder(e,o),n=Math.sqrt(Math.pow(i.x-u.x,2)+Math.pow(i.y-u.y,2)),r=s-n,Math.abs(r)r?0==t?d=p:l=p:0==t?l=p:d=p,h++}return i.t=p,i},o.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i,o;if(this.from!=this.to){if(this._line(t),1==this.options.smoothCurves.enabled){var s=this._getViaCoordinates();o=this._findBorderPosition(!1,t);var n=this._pointOnBezier(Math.max(0,o.t-.1));e=Math.atan2(o.y-n.y,o.x-n.x)}else{e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var r=this.to.x-this.from.x,a=this.to.y-this.from.y,h=Math.sqrt(r*r+a*a),d=this.to.distanceToBorder(t,e),l=(h-d)/h;o={},o.x=(1-l)*this.from.x+l*this.to.x,o.y=(1-l)*this.from.y+l*this.to.y}if(i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(o.x,o.y,e,i),t.fill(),t.stroke(),this.label){var c;c=1==this.options.smoothCurves.enabled&&null!=s?this._pointOnBezier(.5):this._pointOnLine(.5),this._label(t,this.label,c.x,c.y)}}else{var u,p,f,m=this.from,g=.25*Math.max(100,this.physics.springLength);m.width||m.resize(t),m.width>m.height?(u=m.x+.5*m.width,p=m.y-g,f={x:u,y:m.y,angle:.9*Math.PI}):(u=m.x+g,p=m.y-.5*m.height,f={x:m.x,y:p,angle:.6*Math.PI}),t.beginPath(),t.arc(u,p,g,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(f.x,f.y,f.angle,i),t.fill(),t.stroke(),this.label&&(c=this._pointOnCircle(u,p,g,.5),this._label(t,this.label,c.x,c.y))}},o.prototype._getDistanceToEdge=function(t,e,i,o,s,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,u,p,f,m,g,v=1e9;for(c=0;10>c;c++)u=.1*c,p=Math.pow(1-u,2)*t+2*u*(1-u)*a+Math.pow(u,2)*i,f=Math.pow(1-u,2)*e+2*u*(1-u)*h+Math.pow(u,2)*o,c>0&&(l=this._getDistanceToLine(m,g,p,f,s,n),v=v>l?l:v),m=p,g=f;r=v}else r=this._getDistanceToLine(t,e,i,o,s,n);else{var p,f,y,b,w=.25*this.physics.springLength,x=this.from;x.width>x.height?(p=x.x+.5*x.width,f=x.y-w):(p=x.x+w,f=x.y-.5*x.height),y=p-s,b=f-n,r=Math.abs(Math.sqrt(y*y+b*b)-w)}return this.labelDimensions.lefts&&this.labelDimensions.topn?0:r},o.prototype._getDistanceToLine=function(t,e,i,o,s,n){var r=i-t,a=o-e,h=r*r+a*a,d=((s-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,u=l-s,p=c-n;return Math.sqrt(u*u+p*p)},o.prototype.setScale=function(t){this.networkScaleInv=1/t},o.prototype.select=function(){this.selected=!0},o.prototype.unselect=function(){this.selected=!1},o.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):null!==this.via&&(this.via.x=0,this.via.y=0)},o.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),o={nodes:{group:"",radius:7,borderWidth:2,borderWidthSelected:2},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},o),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},o)}this.controlNodes.positions={},0==this.controlNodes.from.selected&&(this.controlNodes.positions.from=this.getControlNodeFromPosition(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y),0==this.controlNodes.to.selected&&(this.controlNodes.positions.to=this.getControlNodeToPosition(t),this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},o.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},o.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},o.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,o=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),s=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>o?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>s?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},o.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},o.prototype.getControlNodeFromPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!0,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=this.to.x-this.from.x,s=this.to.y-this.from.y,n=Math.sqrt(o*o+s*s),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n;e={},e.x=a*this.from.x+(1-a)*this.to.x,e.y=a*this.from.y+(1-a)*this.to.y -}return e},o.prototype.getControlNodeToPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!1,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=this.to.x-this.from.x,s=this.to.y-this.from.y,n=Math.sqrt(o*o+s*s),r=this.to.distanceToBorder(t,i),a=(n-r)/n;e={},e.x=(1-a)*this.from.x+a*this.to.x,e.y=(1-a)*this.from.y+a*this.to.y}return e},t.exports=o},function(t,e,i){function o(){this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.useDefaultGroups=!0}i(1);o.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],o.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},o.prototype.get=function(t){var e=this.groups[t];if(void 0==e)if(this.useDefaultGroups===!1&&this.groupsArray.length>0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var i=this.defaultIndex%o.DEFAULT.length;this.defaultIndex++,e={},e.color=o.DEFAULT[i],this.groups[t]=e}return e},o.prototype.add=function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e},t.exports=o},function(t){function e(){this.images={},this.imageBroken={},this.callback=void 0}e.prototype.setOnloadCallback=function(t){this.callback=t},e.prototype.load=function(t,e){var i=this.images[t];if(void 0===i){var o=this;i=new Image,i.onload=function(){0==this.width&&(document.body.appendChild(this),this.width=this.offsetWidth,this.height=this.offsetHeight,document.body.removeChild(this)),o.callback&&(o.images[t]=i,o.callback(this))},i.onerror=function(){void 0===e?(console.error("Could not load image:",t),delete this.src,o.callback&&o.callback(this)):o.imageBroken[t]===!0?this.src==e?(console.error("Could not load brokenImage:",e),delete this.src,o.callback&&o.callback(this)):(console.error("Could not load image:",t),this.src=e):(console.error("Could not load image:",t),this.src=e,o.imageBroken[t]=!0)},i.src=t}return i},t.exports=e},function(t,e,i){function o(t,e,i,o){var n=s.selectiveBridgeObject(["nodes"],o);this.options=n.nodes,this.selected=!1,this.hover=!1,this.edges=[],this.id=void 0,this.allowedToMoveX=!1,this.allowedToMoveY=!1,this.xFixed=!1,this.yFixed=!1,this.horizontalAlignLeft=!0,this.verticalAlignTop=!0,this.baseRadiusValue=o.nodes.radius,this.radiusFixed=!1,this.level=-1,this.preassignedLevel=!1,this.hierarchyEnumerated=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.boundingBox={top:0,left:0,right:0,bottom:0},this.imagelist=e,this.grouplist=i,this.x=null,this.y=null,this.predefinedPosition=!1,this.previousState={vx:0,vy:0,x:0,y:0},this.fixedData={x:null,y:null},this.setProperties(t,n),this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var s=i(1);o.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t)},o.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1)},o.prototype.setProperties=function(t,e){if(t){this.properties=t;var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","group","mass","fontDrawThreshold","scaleFontWithValue","fontSizeMaxVisible","customScalingFunction","iconFontFace","icon","iconColor","iconSize","value"];if(s.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x,this.predefinedPosition=!0),void 0!==t.y&&(this.y=t.y,this.predefinedPosition=!0),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof t.group||"string"==typeof t.group&&""!=t.group){var o=this.grouplist.get(t.group);s.deepExtend(this.options,o),this.options.color=s.parseColor(this.options.color)}if(void 0!==t.radius&&(this.baseRadiusValue=this.options.radius),void 0!==t.color&&(this.options.color=s.parseColor(t.color)),void 0!==this.options.image&&""!=this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage)}switch(void 0!==t.allowedToMoveX?(this.xFixed=!t.allowedToMoveX,this.allowedToMoveX=t.allowedToMoveX):void 0!==t.x&&0==this.allowedToMoveX&&(this.xFixed=!0),void 0!==t.allowedToMoveY?(this.yFixed=!t.allowedToMoveY,this.allowedToMoveY=t.allowedToMoveY):void 0!==t.y&&0==this.allowedToMoveY&&(this.yFixed=!0),this.radiusFixed=this.radiusFixed||void 0!==t.radius,("image"===this.options.shape||"circularImage"===this.options.shape)&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"circularImage":this.draw=this._drawCircularImage,this.resize=this._resizeCircularImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;case"icon":this.draw=this._drawIcon,this.resize=this._resizeIcon;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},o.prototype.select=function(){this.selected=!0,this._reset()},o.prototype.unselect=function(){this.selected=!1,this._reset()},o.prototype.clearSizeCache=function(){this._reset()},o.prototype._reset=function(){this.width=void 0,this.height=void 0},o.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},o.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var o=this.width/2,s=this.height/2,n=Math.sin(e)*o,r=Math.cos(e)*s;return o*s/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},o.prototype.isFixed=function(){return this.xFixed&&this.yFixed},o.prototype.isSelected=function(){return this.selected},o.prototype.getValue=function(){return this.value},o.prototype.getDistance=function(t,e){var i=this.x-t,o=this.y-e;return Math.sqrt(i*i+o*o)},o.prototype.setValueRange=function(t,e,i){if(!this.radiusFixed&&void 0!==this.value){var o=this.options.customScalingFunction(t,e,i,this.value),s=this.options.radiusMax-this.options.radiusMin;if(1==this.options.scaleFontWithValue){var n=this.options.fontSizeMax-this.options.fontSizeMin;this.options.fontSize=this.options.fontSizeMin+o*n}this.options.radius=this.options.radiusMin+o*s}this.baseRadiusValue=this.options.radius},o.prototype.draw=function(){throw"Draw method not initialized for node"},o.prototype.resize=function(){throw"Resize method not initialized for node"},o.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},o.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e}},o.prototype._drawImageAtPosition=function(t){0!=this.imageObj.width&&(t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height))},o.prototype._drawImageLabel=function(t){var e,i=0;if(this.height){i=this.height/2;var o=this.getTextSize(t);o.lineCount>=1&&(i+=o.height/2,i+=3)}e=this.y+i,this._label(t,this.label,this.x,e,void 0)},o.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawImageAtPosition(t),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},o.prototype._resizeCircularImage=function(t){if(this.imageObj.src&&this.imageObj.width&&this.imageObj.height)this._swapToImageResizeWhenImageLoaded&&(this.width=0,this.height=0,delete this._swapToImageResizeWhenImageLoaded),this._resizeImage(t);else if(!this.width){var e=2*this.options.radius;this.width=e,this.height=e,this._swapToImageResizeWhenImageLoaded=!0}},o.prototype._drawCircularImage=function(t){this._resizeCircularImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.left+this.width/2,i=this.top+this.height/2,o=Math.abs(this.height/2);this._drawRawCircle(t,e,i,o),t.save(),t.circle(this.x,this.y,o),t.stroke(),t.clip(),this._drawImageAtPosition(t),t.restore(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},o.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e}},o.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.options.borderWidth,i=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,t.lineWidth=this.selected?i:e,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},o.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),o=i.width+2*e;this.width=o,this.height=o}},o.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.options.borderWidth,i=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,t.lineWidth=this.selected?i:e,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},o.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),o=Math.max(i.width,i.height)+2*e;this.options.radius=o/2,this.width=o,this.height=o}},o.prototype._drawRawCircle=function(t,e,i,o){var s=this.options.borderWidth,n=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,t.lineWidth=this.selected?n:s,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,o),t.fill(),t.stroke()},o.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawRawCircle(t,this.x,this.y,this.options.radius),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},o.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.widththis.options.fontDrawThreshold-1){var i=Number(this.options.iconSize);t.font=(this.selected?"bold ":"")+i+"px "+this.options.iconFontFace,t.fillStyle=this.options.iconColor||"black",t.textAlign="center",t.textBaseline="middle",t.fillText(this.options.icon,this.x,this.y)}},o.prototype._label=function(t,e,i,o,n,r,a){var h=Number(this.options.fontSize)*this.networkScale;if(e&&h>=this.options.fontDrawThreshold-1){var d=Number(this.options.fontSize);h>=this.options.fontSizeMaxVisible&&(d=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv);var l=this.options.fontColor||"#000000",c=this.options.fontStrokeColor;if(h<=this.options.fontDrawThreshold){var u=Math.max(0,Math.min(1,1-(this.options.fontDrawThreshold-h)));l=s.overrideOpacity(l,u),c=s.overrideOpacity(c,u)}t.font=(this.selected?"bold ":"")+d+"px "+this.options.fontFace;var p=e.split("\n"),f=p.length,m=o+(1-f)/2*d;1==a&&(m=o+(1-f)/(2*d));for(var g=t.measureText(p[0]).width,v=1;f>v;v++){var y=t.measureText(p[v]).width;g=y>g?y:g}var b=d*f,w=i-g/2,x=o-b/2;"hanging"==r&&(x+=.5*d,x+=4,m+=4),this.labelDimensions={top:x,left:w,width:g,height:b,yLine:m},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(w,x,g,b)),t.fillStyle=l,t.textAlign=n||"center",t.textBaseline=r||"middle",this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var v=0;f>v;v++)this.options.fontStrokeWidth&&t.strokeText(p[v],i,m),t.fillText(p[v],i,m),m+=d}},o.prototype.getTextSize=function(t){if(void 0!==this.label){var e=Number(this.options.fontSize);e*this.networkScale>this.options.fontSizeMaxVisible&&(e=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv),t.font=(this.selected?"bold ":"")+e+"px "+this.options.fontFace;for(var i=this.label.split("\n"),o=(e+4)*i.length,s=0,n=0,r=i.length;r>n;n++)s=Math.max(s,t.measureText(i[n]).width);return{width:s,height:o,lineCount:i.length}}return{width:0,height:0,lineCount:0}},o.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInvo&&(n=o-e-this.padding),ns&&(r=s-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){s=r.nodes[i];break}for(s||(s={id:e.id},t.node&&(s.attr=a(s.attr,t.node))),i=n.length-1;i>=0;i--){var h=n[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(s)&&h.nodes.push(s)}e.attr&&(s.attr=a(s.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,o,s){var n={from:e,to:i,type:o};return t.edge&&(n.attr=a({},t.edge)),n.attr=a(n.attr||{},s),n}function u(){for(N=O.NULL,k="";" "==E||" "==E||"\n"==E||"\r"==E;)s();do{var t=!1;if("#"==E){for(var e=T-1;" "==C.charAt(e)||" "==C.charAt(e);)e--;if("\n"==C.charAt(e)||""==C.charAt(e)){for(;""!=E&&"\n"!=E;)s();t=!0}}if("/"==E&&"/"==n()){for(;""!=E&&"\n"!=E;)s();t=!0}if("/"==E&&"*"==n()){for(;""!=E;){if("*"==E&&"/"==n()){s(),s();break}s()}t=!0}for(;" "==E||" "==E||"\n"==E||"\r"==E;)s()}while(t);if(""==E)return void(N=O.DELIMITER);var i=E+n();if(S[i])return N=O.DELIMITER,k=i,s(),void s();if(S[E])return N=O.DELIMITER,k=E,void s();if(r(E)||"-"==E){for(k+=E,s();r(E);)k+=E,s();return"false"==k?k=!1:"true"==k?k=!0:isNaN(Number(k))||(k=Number(k)),void(N=O.IDENTIFIER)}if('"'==E){for(s();""!=E&&('"'!=E||'"'==E&&'"'==n());)k+=E,'"'==E&&s(),s();if('"'!=E)throw x('End of string " expected');return s(),void(N=O.IDENTIFIER)}for(N=O.UNKNOWN;""!=E;)k+=E,s();throw new SyntaxError('Syntax error in part "'+_(k,30)+'"')}function p(){var t={};if(o(),u(),"strict"==k&&(t.strict=!0,u()),("graph"==k||"digraph"==k)&&(t.type=k,u()),N==O.IDENTIFIER&&(t.id=k,u()),"{"!=k)throw x("Angle bracket { expected");if(u(),f(t),"}"!=k)throw x("Angle bracket } expected");if(u(),""!==k)throw x("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==k&&"}"!=k;)m(t),";"==k&&u()}function m(t){var e=g(t);if(e)return void b(t,e);var i=v(t);if(!i){if(N!=O.IDENTIFIER)throw x("Identifier expected");var o=k;if(u(),"="==k){if(u(),N!=O.IDENTIFIER)throw x("Identifier expected");t[o]=k,u()}else y(t,o)}}function g(t){var e=null;if("subgraph"==k&&(e={},e.type="subgraph",u(),N==O.IDENTIFIER&&(e.id=k,u())),"{"==k){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=k)throw x("Angle bracket } expected");u(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function v(t){return"node"==k?(u(),t.node=w(),"node"):"edge"==k?(u(),t.edge=w(),"edge"):"graph"==k?(u(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"==k||"--"==k;){var i,o=k;u();var s=g(t);if(s)i=s;else{if(N!=O.IDENTIFIER)throw x("Identifier or subgraph expected");i=k,d(t,{id:i}),u()}var n=w(),r=c(t,e,i,o,n);l(t,r),e=i}}function w(){for(var t=null;"["==k;){for(u(),t={};""!==k&&"]"!=k;){if(N!=O.IDENTIFIER)throw x("Attribute name expected");var e=k;if(u(),"="!=k)throw x("Equal sign = expected");if(u(),N!=O.IDENTIFIER)throw x("Attribute value expected");var i=k;h(t,e,i),u(),","==k&&u()}if("]"!=k)throw x("Bracket ] expected");u()}return t}function x(t){return new SyntaxError(t+', got "'+_(k,30)+'" (char '+T+")")}function _(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function M(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t){var e=i(t),o={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),o.nodes.push(e)}),e.edges){var s=function(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=s(t);o.edges.push(e)}),M(e,i,function(e,i){var n=c(o,e.id,i.id,t.type,t.attr),r=s(n);o.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=s(t);o.edges.push(e)})})}return e.attr&&(o.options=e.attr),o}var O={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},S={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},C="",T=0,E="",k="",N=O.NULL,L=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],o=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var s=t.edges,n=t.nodes,r=0;r0?Math.max.apply(null,i)+1:1):(this.customBarIds.forEach(function(t){if(t===e)throw new Error("Custom time ID already exists")}),s=e),this.customBarIds.push(s),o=new d(this.body,{showCustomTime:!0,time:n,id:s}),this.components.push(o),this.redraw(),s},o.prototype.removeCustomTime=function(t){var e=this;this.components.forEach(function(i,o,s){i instanceof d&&i.options.id===t&&0!==i.options.id&&(e.customBarIds.splice(e.customBarIds.indexOf(t),1),s.splice(o,1),i.destroy())})},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.clear=function(t){(!t||t.items)&&this.setItems(null),(!t||t.groups)&&this.setGroups(null),(!t||t.options)&&(this.components.forEach(function(t){return t.setOptions(t.defaultOptions)}),this.setOptions(this.defaultOptions))},o.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animate?t.animate:!0;this.range.setRange(e.start,e.end,i)}},o.prototype._getDataRange=function(){var t=this.getItemRange(),e=t.min,i=t.max;if(null!=e&&null!=i){var o=i.valueOf()-e.valueOf();0>=o&&(o=864e5),e=new Date(e.valueOf()-.05*o),i=new Date(i.valueOf()+.05*o)}return{start:e,end:i}},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var s=arguments[0];o=void 0!==s.animate?s.animate:!0,this.range.setRange(s.start,s.end,o)}else o=i&&void 0!==i.animate?i.animate:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=r.convert(t,"Date").valueOf(),s=o-i/2,n=o+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(s,n,a)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,o=this.dom;if(o){h.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(o.root,"top"),r.removeClassName(o.root,"bottom")):(r.removeClassName(o.root,"top"),r.addClassName(o.root,"bottom")),o.root.style.maxHeight=r.option.asSize(e.maxHeight,""),o.root.style.minHeight=r.option.asSize(e.minHeight,""),o.root.style.width=r.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var s=o.root.offsetHeight-o.root.clientHeight,n=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(n=s),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+s+i.border.top+i.border.bottom;o.root.style.height=r.option.asSize(e.height,d+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-s;var l=i.root.height-i.top.height-i.bottom.height-s;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var u=this.props.scrollTop;"bottom"==e.orientation&&(u+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=u+"px",o.left.style.left="0",o.left.style.top=u+"px",o.right.style.left="0",o.right.style.top=u+"px";var p=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(o.shadowTop.style.visibility=p,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=p,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=p,o.shadowBottomRight.style.visibility=f,this.components.forEach(function(e){t=e.redraw()||t}),t){var m=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTopt[o].y?t[o].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=s.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?o._catmullRom(t,e):o._linear(t),1==e.options.shaded.enabled){var d,l=s.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},o._catmullRomUniform=function(t){for(var e,i,o,s,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],s=d>l+2?t[l+2]:o,n={x:(-e.x+6*i.x+o.x)*h,y:(-e.y+6*i.y+o.y)*h},r={x:(i.x+6*o.x-s.x)*h,y:(i.y+6*o.y-s.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+o.x+","+o.y+" ";return a},o._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var o,s,n,r,a,h,d,l,c,u,p,f,m,g,v,y,b,w,x,_=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",M=t.length,D=0;M-1>D;D++)o=0==D?t[0]:t[D-1],s=t[D],n=t[D+1],r=M>D+2?t[D+2]:n,d=Math.sqrt(Math.pow(o.x-s.x,2)+Math.pow(o.y-s.y,2)),l=Math.sqrt(Math.pow(s.x-n.x,2)+Math.pow(s.y-n.y,2)),c=Math.sqrt(Math.pow(n.x-r.x,2)+Math.pow(n.y-r.y,2)),g=Math.pow(c,i),y=Math.pow(c,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),x=Math.pow(d,i),w=Math.pow(d,2*i),u=2*w+3*x*v+b,p=2*y+3*g*v+b,f=3*x*(x+v),f>0&&(f=1/f),m=3*g*(g+v),m>0&&(m=1/m),a={x:(-b*o.x+u*s.x+w*n.x)*f,y:(-b*o.y+u*s.y+w*n.y)*f},h={x:(y*s.x+p*n.x-b*r.x)*m,y:(y*s.y+p*n.y-b*r.y)*m},0==a.x&&0==a.y&&(a=s),0==h.x&&0==h.y&&(h=n),_+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+n.x+","+n.y+" ";return _},o._linear=function(t){for(var e="",i=0;it[o].y?t[o].y:e,i=i0&&(r=Math.min(r,Math.abs(u[l-1].x-a))),h=o._getSafeDrawData(r,d,m);else{var v=l+(p[a].amount-p[a].resolved),y=l-(p[a].resolved+1);v0&&(r=Math.min(r,Math.abs(u[y].x-a))),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,"stack"==d.options.barChart.handleOverlap?(g=p[a].accumulated,p[a].accumulated+=d.zeroPosition-u[l].y):"sideBySide"==d.options.barChart.handleOverlap&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1),"left"==d.options.barChart.align?h.offset-=.5*h.width:"right"==d.options.barChart.align&&(h.offset+=.5*h.width))}s.drawBar(u[l].x+h.offset,u[l].y-g,h.width,d.zeroPosition-u[l].y,d.className+" bar",i.svgElements,i.svg),1==d.options.drawPoints.enabled&&n.draw([u[l]],d,i,h.offset)}},o._getDataIntersections=function(t,e){for(var i,o=0;o0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0==i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulated:0}),t[e[o].x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,s;return t0?(o=i>t?i:t,s=0,"left"==e.options.barChart.align?s-=.5*t:"right"==e.options.barChart.align&&(s+=.5*t)):(o=e.options.barChart.width,s=0,"left"==e.options.barChart.align?s-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(s+=.5*e.options.barChart.width)),{width:o,offset:s}},o.getStackedBarYRange=function(t,e,i,s,n){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};o._getDataIntersections(r,t),e[s]=o._getStackedBarYRange(r,t),e[s].yAxisOrientation=n,i.push(s)}},o._getStackedBarYRange=function(t,e){for(var i,o=e[0].y,s=e[0].y,n=0;ne[n].y?e[n].y:o,s=st[r].accumulated?t[r].accumulated:o,s=st[o].y?t[o].y:e,i=io;o++){var s=o%2===0?1.3*i:.5*i;this.lineTo(t+s*Math.sin(2*o*Math.PI/10),e-s*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,s){var n=Math.PI/180;0>i-2*s&&(s=i/2),0>o-2*s&&(s=o/2),this.beginPath(),this.moveTo(t+s,e),this.lineTo(t+i-s,e),this.arc(t+i-s,e+s,s,270*n,360*n,!1),this.lineTo(t+i,e+o-s),this.arc(t+i-s,e+o-s,s,0,90*n,!1),this.lineTo(t+s,e+o),this.arc(t+s,e+o-s,s,90*n,180*n,!1),this.lineTo(t,e+s),this.arc(t+s,e+s,s,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var s=.5522848,n=i/2*s,r=o/2*s,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var s=1/3,n=i,r=o*s,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,u=t+n/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,u+h,c,u,c),this.bezierCurveTo(u-h,c,t,p+d,t,p),this.bezierCurveTo(t,p-d,u-h,e,u,e),this.bezierCurveTo(u+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,u+h,m,u,m),this.bezierCurveTo(u-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var s=t-o*Math.cos(i),n=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=s+o/3*Math.cos(i+.5*Math.PI),d=n+o/3*Math.sin(i+.5*Math.PI),l=s+o/3*Math.cos(i-.5*Math.PI),c=n+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,s){s||(s=[10,5]),0==u&&(u=.001);var n=s.length;this.moveTo(t,e);for(var r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var u=s[l++%n];u>d&&(u=d);var p=Math.sqrt(u*u/(1+h*h));0>r&&(p=-p),t+=p,e+=h*p,this[c?"lineTo":"moveTo"](t,e),d-=u,c=!c}})},function(t,e,i){var o=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=i(67).BarnesHutSolver,r=i(68).Repulsion,a=i(69).HierarchicalRepulsion,h=i(70).SpringSolver,d=i(71).HierarchicalSpringSolver,l=i(72).CentralGravitySolver,c=i(1),u=function(){function t(e,i){var o=this;s(this,t),this.body=e,this.physicsBody={calculationNodes:{},calculationNodeIndices:[],forces:{},velocities:{}},this.scale=1,this.viewFunction=void 0,this.body.emitter.on("_setScale",function(t){return o.scale=t}),this.simulationInterval=1e3/60,this.requiresTimeout=!0,this.previousStates={},void 0==this.renderTimer,this.stabilized=!1,this.stabilizationIterations=0,this.options={barnesHut:{thetaInverted:2,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},model:"BarnesHut",timestep:.5,maxVelocity:50,minVelocity:.1,stabilization:{enabled:!0,iterations:1e3,updateInterval:100,onlyDynamicEdges:!1,zoomExtent:!0}},this.setOptions(i)}return o(t,null,{setOptions:{value:function(t){void 0!==t&&("boolean"==typeof t.stabilization&&(t.stabilization={enabled:t.stabilization}),c.deepExtend(this.options,t)),this.init()},writable:!0,configurable:!0},init:{value:function(){var t;"repulsion"==this.options.model?(t=this.options.repulsion,this.nodesSolver=new r(this.body,this.physicsBody,t),this.edgesSolver=new h(this.body,this.physicsBody,t)):"hierarchicalRepulsion"==this.options.model?(t=this.options.hierarchicalRepulsion,this.nodesSolver=new a(this.body,this.physicsBody,t),this.edgesSolver=new d(this.body,this.physicsBody,t)):(t=this.options.barnesHut,this.nodesSolver=new n(this.body,this.physicsBody,t),this.edgesSolver=new h(this.body,this.physicsBody,t)),this.gravitySolver=new l(this.body,this.physicsBody,t),this.modelOptions=t},writable:!0,configurable:!0},startSimulation:{value:function(){this.stabilized=!1,this.options.stabilization.enabled===!0?this.stabilize():this.runSimulation()},writable:!0,configurable:!0},runSimulation:{value:function(){void 0===this.viewFunction&&(this.viewFunction=this.simulationStep.bind(this),this.body.emitter.on("_beforeRender",this.viewFunction),this.body.emitter.emit("_startRendering"))},writable:!0,configurable:!0},simulationStep:{value:function(){var t=Date.now();this.physicsTick();var e=Date.now()-t;if((e<.4*this.simulationInterval||1==this.runDoubleSpeed)&&this.stabilized===!1&&(this.physicsTick(),this.runDoubleSpeed=!0),this.stabilized===!0){if(this.stabilizationIterations>1){var i=this,o={iterations:this.stabilizationIterations};this.stabilizationIterations=0,this.startedStabilization=!1,setTimeout(function(){i.body.emitter.emit("stabilized",o)},0)}else this.stabilizationIterations=0;this.body.emitter.emit("_stopRendering")}},writable:!0,configurable:!0},physicsTick:{value:function(){this.stabilized===!1&&(this.calculateForces(),this.stabilized=this.moveNodes(),this.stabilized===!0?this.revert():0==this.startedStabilization&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilizationIterations++)},writable:!0,configurable:!0},_updateCalculationNodes:{value:function(){this.physicsBody.calculationNodes={},this.physicsBody.forces={},this.physicsBody.calculationNodeIndices=[];for(var t=0;ta&&o===!0,t=!0}return 1==t?s>.5*this.options.maxVelocity?!1:o:!0},writable:!0,configurable:!0},_performStep:{value:function(t,e){var i=this.physicsBody.calculationNodes[t],o=this.options.timestep,s=this.physicsBody.forces,n=this.physicsBody.velocities;if(this.previousStates[t]={x:i.x,y:i.y,vx:n[t].x,vy:n[t].y},i.xFixed)s[t].x=0,n[t].x=0;else{var r=this.modelOptions.damping*n[t].x,a=(s[t].x-r)/i.options.mass;n[t].x+=a*o,n[t].x=Math.abs(n[t].x)>e?n[t].x>0?e:-e:n[t].x,i.x+=n[t].x*o}if(i.yFixed)s[t].y=0,n[t].y=0;else{var h=this.modelOptions.damping*n[t].y,d=(s[t].y-h)/i.options.mass;n[t].y+=d*o,n[t].y=Math.abs(n[t].y)>e?n[t].y>0?e:-e:n[t].y,i.y+=n[t].y*o}var l=Math.sqrt(Math.pow(n[t].x,2)+Math.pow(n[t].y,2));return l},writable:!0,configurable:!0},calculateForces:{value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()},writable:!0,configurable:!0},_freezeNodes:{value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&null!=t[e].x&&null!=t[e].y&&(t[e].fixedData.x=t[e].xFixed,t[e].fixedData.y=t[e].yFixed,t[e].xFixed=!0,t[e].yFixed=!0)},writable:!0,configurable:!0},_restoreFrozenNodes:{value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&null!=t[e].fixedData.x&&(t[e].xFixed=t[e].fixedData.x,t[e].yFixed=t[e].fixedData.y)},writable:!0,configurable:!0},stabilize:{value:function(){1==this.options.stabilization.onlyDynamicEdges&&this._freezeNodes(),this.stabilizationSteps=0,setTimeout(this._stabilizationBatch.bind(this),0)},writable:!0,configurable:!0},_stabilizationBatch:{value:function(){for(var t=0;0==this.stabilized&&t=t&&i.push(s.id)}for(var o=0;os?e.x:s,n=e.yr?e.y:r;return{x:.5*(o+s),y:.5*(n+r)}},writable:!0,configurable:!0},openCluster:{value:function(t,e){if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var i=this.body.nodes[t],o=i.containedNodes,s=i.containedEdges;for(var n in o)o.hasOwnProperty(n)&&(this.body.nodes[n]=o[n],this.body.nodes[n].x=i.x,this.body.nodes[n].y=i.y,this.body.nodes[n].vx=i.vx,this.body.nodes[n].vy=i.vy,delete this.clusteredNodes[n]);for(var r in s)if(s.hasOwnProperty(r)){this.body.edges[r]=s[r],this.body.edges[r].connect();var a=this.body.edges[r];a.connected===!1&&(void 0!==this.clusteredNodes[a.fromId]&&this._connectEdge(a,a.fromId,!0),void 0!==this.clusteredNodes[a.toId]&&this._connectEdge(a,a.toId,!1))}this.body.emitter.emit("_newEdgesCreated",s);for(var h=[],d=0;d0&&a.fromId==t)void 0!==this.body.nodes[a.fromArray[0].id]&&this._connectEdge(a,a.fromArray[0].id,!0);else if(a.toArray.length>0&&a.toId==t)void 0!==this.body.nodes[a.toArray[0].id]&&this._connectEdge(a,a.toArray[0].id,!1);else{var r=h[d],l=this.body.edges[r].via.id;l&&(this.body.edges[r].via=null,delete this.body.supportNodes[l]),this.body.edges[r].disconnect(),delete this.body.edges[r]}}delete this.body.nodes[t],e!==!0&&this.body.emitter.emit("_dataChanged")},writable:!0,configurable:!0},_connectEdge:{value:function(t,e,i){var o=this._getClusterStack(e);1==i?(t.from=o[o.length-1],t.fromId=o[o.length-1].id,o.pop(),t.fromArray=o):(t.to=o[o.length-1],t.toId=o[o.length-1].id,o.pop(),t.toArray=o),t.connect()},writable:!0,configurable:!0},_getClusterStack:{value:function(t){for(var e=[],i=100,o=0;void 0!==this.clusteredNodes[t]&&i>o;)e.push(this.clusteredNodes[t].node),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t]),e},writable:!0,configurable:!0},_getConnectedId:{value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId},writable:!0,configurable:!0},_getHubSize:{value:function(){for(var t=0,e=0,i=0,o=0,s=0;so&&(o=n.edges.length),t+=n.edges.length,e+=Math.pow(n.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h},writable:!0,configurable:!0}}),t}();e.ClusterEngine=r,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")};"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame);var s=function(){function t(e){var i=this;o(this,t),this.body=e,this.redrawRequested=!1,this.renderTimer=!1,this.requiresTimeout=!0,this.continueRendering=!0,this.renderRequests=0,this.translation={x:0,y:0},this.scale=1,this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.body.emitter.on("_setScale",function(t){return i.scale=t}),this.body.emitter.on("_setTranslation",function(t){i.translation.x=t.x,i.translation.y=t.y}),this.body.emitter.on("_redraw",this._redraw.bind(this)),this.body.emitter.on("_redrawHidden",this._redraw.bind(this,!0)),this.body.emitter.on("_requestRedraw",this._requestRedraw.bind(this)),this.body.emitter.on("_startRendering",function(){i.renderRequests+=1,i.continueRendering=!0,i.startRendering()}),this.body.emitter.on("_stopRendering",function(){i.renderRequests-=1,i.continueRendering=i.renderRequests>0}),this._determineBrowserMethod()}return i(t,null,{startRendering:{value:function(){this.continueRendering===!0&&(this.renderTimer||(this.renderTimer=1==this.requiresTimeout?window.setTimeout(this.renderStep.bind(this),this.simulationInterval):window.requestAnimationFrame(this.renderStep.bind(this))))},writable:!0,configurable:!0},renderStep:{value:function(){this.renderTimer=void 0,1==this.requiresTimeout&&this.startRendering(),this._redraw(),0==this.requiresTimeout&&this.startRendering()},writable:!0,configurable:!0},setCanvas:{value:function(t){this.canvas=t},writable:!0,configurable:!0},redraw:{value:function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},writable:!0,configurable:!0},_requestRedraw:{value:function(t){this.redrawRequested!==!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(this._redraw.bind(this,t),0):window.requestAnimationFrame(this._redraw.bind(this,t,!0)))},writable:!0,configurable:!0},_redraw:{value:function(){var t=void 0===arguments[0]?!1:arguments[0];this.body.emitter.emit("_beforeRender"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;e.clearRect(0,0,i,o),e.save(),e.translate(this.translation.x,this.translation.y),e.scale(this.scale,this.scale),this.canvasTopLeft=this.canvas.DOMtoCanvas({x:0,y:0}),this.canvasBottomRight=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth,y:this.canvas.frame.canvas.clientHeight}),t===!1&&this._drawEdges(e),this._drawNodes(e,this.body.nodes,t),t===!1&&1==this.controlNodesActive&&this._drawControlNodes(e),e.restore(),t===!0&&e.clearRect(0,0,i,o)},writable:!0,configurable:!0},_drawNodes:{value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=[];for(var s in e)e.hasOwnProperty(s)&&(e[s].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),e[s].isSelected()?o.push(s):i===!0?e[s].draw(t):e[s].inArea()===!0&&e[s].draw(t));for(var n=0,r=o.length;r>n;n++)(e[o[n]].inArea()||i)&&e[o[n]].draw(t)},writable:!0,configurable:!0},_drawEdges:{value:function(t){var e=this.body.edges;for(var i in e)if(e.hasOwnProperty(i)){var o=e[i];o.setScale(this.scale),o.connected===!0&&e[i].draw(t)}},writable:!0,configurable:!0},_drawControlNodes:{value:function(t){var e=this.body.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},writable:!0,configurable:!0},_determineBrowserMethod:{value:function(){if("undefined"!=typeof window){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)}else this.requiresTimeout=!0},writable:!0,configurable:!0}}),t}();e.CanvasRenderer=s,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,i){var o=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=i(45),r=function(){function t(e,i){var o=this;for(s(this,t),this.body=e,this.setOptions(i),this.translation={x:0,y:0},this.scale=1,this.body.emitter.on("_setScale",function(t){o.scale=t}),this.body.emitter.on("_setTranslation",function(t){o.translation.x=t.x,o.translation.y=t.y}),this.body.emitter.once("resize",function(t){o.translation.x=.5*t.width,o.translation.y=.5*t.height,o.body.emitter.emit("_setTranslation",o.translation)}),this.pixelRatio=1;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var n=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(n.webkitBackingStorePixelRatio||n.mozBackingStorePixelRatio||n.msBackingStorePixelRatio||n.oBackingStorePixelRatio||n.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var r=document.createElement("DIV");r.style.color="red",r.style.fontWeight="bold",r.style.padding="10px",r.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(r)}this.body.container.appendChild(this.frame),this.body.emitter.emit("_setScale",1),this.body.emitter.emit("_setTranslation",{x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),this._bindHammer()}return o(t,null,{_bindHammer:{value:function(){var t=this;void 0!==this.hammer&&this.hammer.dispose(),this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",t.body.eventListeners.onTap),this.hammer.on("doubletap",t.body.eventListeners.onDoubleTap),this.hammer.on("hold",t.body.eventListeners.onHold),this.hammer.on("touch",t.body.eventListeners.onTouch),this.hammer.on("dragstart",t.body.eventListeners.onDragStart),this.hammer.on("drag",t.body.eventListeners.onDrag),this.hammer.on("dragend",t.body.eventListeners.onDragEnd),1==this.options.zoomable&&(this.hammer.on("mousewheel",t.body.eventListeners.onMouseWheel.bind(t)),this.hammer.on("DOMMouseScroll",t.body.eventListeners.onMouseWheel.bind(t)),this.hammer.on("pinch",t.body.eventListeners.onPinch.bind(t))),this.hammer.on("mousemove",t.body.eventListeners.onMouseMove.bind(t)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",t.body.eventListeners.onRelease.bind(t))},writable:!0,configurable:!0},setOptions:{value:function(){var t=void 0===arguments[0]?{}:arguments[0];this.options=t},writable:!0,configurable:!0},setSize:{value:function(t,e){var i=!1,o=this.frame.canvas.width,s=this.frame.canvas.height;t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.options.width=t,this.options.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),i===!0&&this.body.emitter.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:o*this.pixelRatio,oldHeight:s*this.pixelRatio})},writable:!0,configurable:!0},_XconvertDOMtoCanvas:{value:function(t){return(t-this.translation.x)/this.scale},writable:!0,configurable:!0},_XconvertCanvasToDOM:{value:function(t){return t*this.scale+this.translation.x},writable:!0,configurable:!0},_YconvertDOMtoCanvas:{value:function(t){return(t-this.translation.y)/this.scale},writable:!0,configurable:!0},_YconvertCanvasToDOM:{value:function(t){return t*this.scale+this.translation.y},writable:!0,configurable:!0},canvasToDOM:{value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},writable:!0,configurable:!0},DOMtoCanvas:{value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},writable:!0,configurable:!0}}),t}();e.Canvas=r,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,i){var o=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=i(1),r=function(){function t(e,i){var o=this;s(this,t),this.body=e,this.setOptions(i),this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0,this.translation={x:0,y:0},this.scale=1,this.viewFunction=void 0,this.body.emitter.on("zoomExtent",this.zoomExtent.bind(this)),this.body.emitter.on("_setScale",function(t){return o.scale=t}),this.body.emitter.on("_setTranslation",function(t){o.translation.x=t.x,o.translation.y=t.y}),this.body.emitter.on("animationFinished",function(){o.body.emitter.emit("_stopRendering")}),this.body.emitter.on("unlockNode",this.releaseNode.bind(this))}return o(t,null,{setOptions:{value:function(){var t=void 0===arguments[0]?{}:arguments[0];this.options=t},writable:!0,configurable:!0},setCanvas:{value:function(t){this.canvas=t},writable:!0,configurable:!0},_getRange:{value:function(){var t,e=void 0===arguments[0]?[]:arguments[0],i=1e9,o=-1e9,s=1e9,n=-1e9;if(e.length>0)for(var r=0;rt.boundingBox.left&&(s=t.boundingBox.left),nt.boundingBox.bottom&&(i=t.boundingBox.top),ot.boundingBox.left&&(s=t.boundingBox.left),nt.boundingBox.bottom&&(i=t.boundingBox.top),o.5*this.body.nodeIndices.length)return void this.zoomExtent(i,!1);t=this._getRange(i.nodes);var a=this.body.nodeIndices.length;e=1==this.options.smoothCurves?12.662/(a+7.4147)+.0964822:30.5062972/(a+19.93597763)+.08413486;var h=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);e*=h}else{this.body.emitter.emit("_redrawHidden"),t=this._getRange(i.nodes);var d=1.1*Math.abs(t.maxX-t.minX),l=1.1*Math.abs(t.maxY-t.minY),c=this.canvas.frame.canvas.clientWidth/d,u=this.canvas.frame.canvas.clientHeight/l;e=u>=c?c:u}e>1&&(e=1);var p=this._findCenter(t),f={position:p,scale:e,animation:i};this.moveTo(f)},writable:!0,configurable:!0},focusOnNode:{value:function(t){var e=void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")},writable:!0,configurable:!0},moveTo:{value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.scale),void 0===t.position&&(t.position=this.translation),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))},writable:!0,configurable:!0},animateView:{value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),1==t.locked&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.scale,this.sourceTranslation=this.translation,this.targetScale=t.scale,this.body.emitter.emit("_setScale",this.targetScale);var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0==t.animation.duration?null!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("_beforeRender",this.viewFunction)):(this.body.emitter.emit("_setScale",this.targetScale),this.body.emitter.emit("_setTranslation",this.targetTranslation),this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("_beforeRender",this.viewFunction),this.body.emitter.emit("_startRendering"))}},writable:!0,configurable:!0},_lockedRedraw:{value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.translation,s={x:o.x+i.x*this.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.scale+this.lockedOnNodeOffset.y};this.body.emitter.emit("_setTranslation",s)},writable:!0,configurable:!0},releaseNode:{value:function(){void 0!==this.lockedOnNodeId&&(this.body.emitter.off("_beforeRender",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)},writable:!0,configurable:!0},_transitionRedraw:{value:function(){var t=void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=n.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.emitter.emit("_setScale",this.sourceScale+(this.targetScale-this.sourceScale)*e),this.body.emitter.emit("_setTranslation",{x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e}),this.easingTime>=1&&(this.body.emitter.off("_beforeRender",this.viewFunction),this.easingTime=0,null!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("_beforeRender",this.viewFunction)),this.body.emitter.emit("animationFinished"))},writable:!0,configurable:!0}}),t}();e.View=r,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,i){var o=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},s=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=i(73).SelectionHandler,r=i(1),a=function(){function t(e){var i=this;s(this,t),this.body=e,this.body.eventListeners.onTap=this.onTap.bind(this),this.body.eventListeners.onTouch=this.onTouch.bind(this),this.body.eventListeners.onDoubleTap=this.onDoubleTap.bind(this),this.body.eventListeners.onHold=this.onHold.bind(this),this.body.eventListeners.onDragStart=this.onDragStart.bind(this),this.body.eventListeners.onDrag=this.onDrag.bind(this),this.body.eventListeners.onDragEnd=this.onDragEnd.bind(this),this.body.eventListeners.onMouseWheel=this.onMouseWheel.bind(this),this.body.eventListeners.onPinch=this.onPinch.bind(this),this.body.eventListeners.onMouseMove=this.onMouseMove.bind(this),this.body.eventListeners.onRelease=this.onRelease.bind(this),this.touchTime=0,this.drag={},this.pinch={},this.pointerPosition={x:0,y:0},this.scale=1,this.body.emitter.on("_setScale",function(t){return i.scale=t}),this.selectionHandler=new n(e)}return o(t,null,{setCanvas:{value:function(t){this.canvas=t,this.selectionHandler.setCanvas(t)},writable:!0,configurable:!0},getPointer:{value:function(t){return{x:t.pageX-r.getAbsoluteLeft(this.canvas.frame.canvas),y:t.pageY-r.getAbsoluteTop(this.canvas.frame.canvas)}},writable:!0,configurable:!0},onTouch:{value:function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this.getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this.scale,this.touchTime=(new Date).valueOf())},writable:!0,configurable:!0},onTap:{value:function(t){console.log("tap",t);var e=this.getPointer(t.gesture.center);this.pointerPosition=e,this.selectionHandler.selectOnPoint(e)},writable:!0,configurable:!0},onDragStart:{value:function(){},writable:!0,configurable:!0},onDrag:{value:function(){},writable:!0,configurable:!0},onDragEnd:{value:function(){},writable:!0,configurable:!0},onDoubleTap:{value:function(){},writable:!0,configurable:!0},onHold:{value:function(){},writable:!0,configurable:!0},onRelease:{value:function(){},writable:!0,configurable:!0},onPinch:{value:function(){},writable:!0,configurable:!0},_zoom:{value:function(){},writable:!0,configurable:!0},onMouseWheel:{value:function(){},writable:!0,configurable:!0},onMouseMove:{value:function(){},writable:!0,configurable:!0}}),t}();e.TouchEventHandler=a,Object.defineProperty(e,"__esModule",{value:!0})},function(t){function e(t){return t?i(t):void 0}function i(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}t.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,s=0;so;++o)i[o].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){var i,o,s;!function(n,r){o=[],i=r,s="function"==typeof i?i.apply(e,o):i,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,s={},n={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==n[e][t.keyCode]){for(var o=n[e][t.keyCode],s=0;se-n?(i=t.clone().add(s-1,"months"),o=(e-n)/(n-i)):(i=t.clone().add(s+1,"months"),o=(e-n)/(i-n)),-(s+o)}function m(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function g(){}function v(t,e){e!==!1&&R(t),w(this,t),this._d=new Date(+t._d),Oi===!1&&(Oi=!0,Se.updateOffset(this),Oi=!1)}function y(t){var e=N(t),i=e.year||0,o=e.quarter||0,s=e.month||0,n=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*a,this._days=+r+7*n,this._months=+s+3*o+12*i,this._data={},this._locale=Se.localeData(),this._bubble() -}function b(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function w(t,e){var i,o,s;if("undefined"!=typeof e._isAMomentObject&&(t._isAMomentObject=e._isAMomentObject),"undefined"!=typeof e._i&&(t._i=e._i),"undefined"!=typeof e._f&&(t._f=e._f),"undefined"!=typeof e._l&&(t._l=e._l),"undefined"!=typeof e._strict&&(t._strict=e._strict),"undefined"!=typeof e._tzm&&(t._tzm=e._tzm),"undefined"!=typeof e._isUTC&&(t._isUTC=e._isUTC),"undefined"!=typeof e._offset&&(t._offset=e._offset),"undefined"!=typeof e._pf&&(t._pf=e._pf),"undefined"!=typeof e._locale&&(t._locale=e._locale),He.length>0)for(i in He)o=He[i],s=e[o],"undefined"!=typeof s&&(t[o]=s);return t}function x(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t,e,i){for(var o=""+Math.abs(t),s=t>=0;o.lengtho;o++)(i&&t[o]!==e[o]||!i&&I(t[o])!==I(e[o]))&&r++;return r+n}function k(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=gi[t]||vi[e]||e}return t}function N(t){var e,i,o={};for(i in t)a(t,i)&&(e=k(i),e&&(o[e]=t[i]));return o}function L(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}Se[t]=function(o,s){var r,a,h=Se._locale[t],d=[];if("number"==typeof o&&(s=o,o=n),a=function(t){var e=Se().utc().set(i,t);return h.call(Se._locale,e,o||"")},null!=s)return a(s);for(r=0;e>r;r++)d.push(a(r));return d}}function I(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function P(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function A(t,e,i){return fe(Se([t,11,31+e-i]),e,i).week}function z(t){return F(t)?366:365}function F(t){return t%4===0&&t%100!==0||t%400===0}function R(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Pe]<0||t._a[Pe]>11?Pe:t._a[Ae]<1||t._a[Ae]>P(t._a[Ie],t._a[Pe])?Ae:t._a[ze]<0||t._a[ze]>24||24===t._a[ze]&&(0!==t._a[Fe]||0!==t._a[Re]||0!==t._a[Be])?ze:t._a[Fe]<0||t._a[Fe]>59?Fe:t._a[Re]<0||t._a[Re]>59?Re:t._a[Be]<0||t._a[Be]>999?Be:-1,t._pf._overflowDayOfYear&&(Ie>e||e>Ae)&&(e=Ae),t._pf.overflow=e)}function B(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length&&t._pf.bigHour===n)),t._isValid}function Y(t){return t?t.toLowerCase().replace("_","-"):t}function H(t){for(var e,i,o,s,n=0;n0;){if(o=j(s.slice(0,e).join("-")))return o;if(i&&i.length>=e&&E(s,i,!0)>=e-1)break;e--}n++}return null}function j(t){var e=null;if(!Ye[t]&&je)try{e=Se.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Se.locale(e)}catch(i){}return Ye[t]}function W(t,e){var i,o;return e._isUTC?(i=e.clone(),o=(Se.isMoment(t)||T(t)?+t:+Se(t))-+i,i._d.setTime(+i._d+o),Se.updateOffset(i,!1),i):Se(t).local()}function G(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function U(t){var e,i,o=t.match(Ve);for(e=0,i=o.length;i>e;e++)o[e]=_i[o[e]]?_i[o[e]]:G(o[e]);return function(s){var n="";for(e=0;i>e;e++)n+=o[e]instanceof Function?o[e].call(s,t):o[e];return n}}function V(t,e){return t.isValid()?(e=X(e,t.localeData()),yi[e]||(yi[e]=U(e)),yi[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Xe.lastIndex=0;o>=0&&Xe.test(t);)t=t.replace(Xe,i),Xe.lastIndex=0,o-=1;return t}function q(t,e){var i,o=e._strict;switch(t){case"Q":return si;case"DDDD":return ri;case"YYYY":case"GGGG":case"gggg":return o?ai:Qe;case"Y":case"G":case"g":return di;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return o?hi:Ke;case"S":if(o)return si;case"SS":if(o)return ni;case"SSS":if(o)return ri;case"DDD":return Ze;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Je;case"a":case"A":return e._locale._meridiemParse;case"x":return ii;case"X":return oi;case"Z":case"ZZ":return ti;case"T":return ei;case"SSSS":return $e;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return o?ni:qe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return qe;case"Do":return o?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(oe(ie(t.replace("\\","")),"i"))}}function Z(t){t=t||"";var e=t.match(ti)||[],i=e[e.length-1]||[],o=(i+"").match(fi)||["-",0,0],s=+(60*o[1])+I(o[2]);return"+"===o[0]?s:-s}function Q(t,e,i){var o,s=i._a;switch(t){case"Q":null!=e&&(s[Pe]=3*(I(e)-1));break;case"M":case"MM":null!=e&&(s[Pe]=I(e)-1);break;case"MMM":case"MMMM":o=i._locale.monthsParse(e,t,i._strict),null!=o?s[Pe]=o:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(s[Ae]=I(e));break;case"Do":null!=e&&(s[Ae]=I(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=I(e));break;case"YY":s[Ie]=Se.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":s[Ie]=I(e);break;case"a":case"A":i._meridiem=e;break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":s[ze]=I(e);break;case"m":case"mm":s[Fe]=I(e);break;case"s":case"ss":s[Re]=I(e);break;case"S":case"SS":case"SSS":case"SSSS":s[Be]=I(1e3*("0."+e));break;case"x":i._d=new Date(I(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=Z(e);break;case"dd":case"ddd":case"dddd":o=i._locale.weekdaysParse(e),null!=o?(i._w=i._w||{},i._w.d=o):i._pf.invalidWeekday=e;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":t=t.substr(0,1);case"gggg":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=I(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=Se.parseTwoDigitYear(e)}}function K(t){var e,i,o,s,n,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Ie],fe(Se(),1,4).year),o=r(e.W,1),s=r(e.E,1)):(n=t._locale._week.dow,a=t._locale._week.doy,i=r(e.gg,t._a[Ie],fe(Se(),n,a).year),o=r(e.w,1),null!=e.d?(s=e.d,n>s&&++o):s=null!=e.e?e.e+n:n),h=me(i,o,s,a,n),t._a[Ie]=h.year,t._dayOfYear=h.dayOfYear}function $(t){var e,i,o,s,n=[];if(!t._d){for(o=te(t),t._w&&null==t._a[Ae]&&null==t._a[Pe]&&K(t),t._dayOfYear&&(s=r(t._a[Ie],o[Ie]),t._dayOfYear>z(s)&&(t._pf._overflowDayOfYear=!0),i=le(s,0,t._dayOfYear),t._a[Pe]=i.getUTCMonth(),t._a[Ae]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=o[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ze]&&0===t._a[Fe]&&0===t._a[Re]&&0===t._a[Be]&&(t._nextDay=!0,t._a[ze]=0),t._d=(t._useUTC?le:de).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[ze]=24)}}function J(t){var e;t._d||(e=N(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],$(t))}function te(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function ee(t){if(t._f===Se.ISO_8601)return void ne(t);t._a=[],t._pf.empty=!0;var e,i,o,s,r,a=""+t._i,h=a.length,d=0;for(o=X(t._f,t._locale).match(Ve)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),_i[s]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(s),Q(s,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(s);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[ze]<=12&&(t._pf.bigHour=n),t._a[ze]=m(t._locale,t._a[ze],t._meridiem),$(t),R(t)}function ie(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,s){return e||i||o||s})}function oe(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function se(t){var e,i,o,s,n;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(s=0;sn)&&(o=n,i=e));b(t,i||e)}function ne(t){var e,i,o=t._i,s=li.exec(o);if(s){for(t._pf.iso=!0,e=0,i=ui.length;i>e;e++)if(ui[e][1].exec(o)){t._f=ui[e][0]+(s[6]||" ");break}for(e=0,i=pi.length;i>e;e++)if(pi[e][1].exec(o)){t._f+=pi[e][0];break}o.match(ti)&&(t._f+="Z"),ee(t)}else t._isValid=!1}function re(t){ne(t),t._isValid===!1&&(delete t._isValid,Se.createFromInputFallback(t))}function ae(t,e){var i,o=[];for(i=0;it&&a.setFullYear(t),a}function le(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function ce(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function ue(t,e,i,o,s){return s.relativeTime(e||1,!!i,t,o)}function pe(t,e,i){var o=Se.duration(t).abs(),s=Ne(o.as("s")),n=Ne(o.as("m")),r=Ne(o.as("h")),a=Ne(o.as("d")),h=Ne(o.as("M")),d=Ne(o.as("y")),l=s0,l[4]=i,ue.apply({},l)}function fe(t,e,i){var o,s=i-e,n=i-t.day();return n>s&&(n-=7),s-7>n&&(n+=7),o=Se(t).add(n,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function me(t,e,i,o,s){var n,r,a=le(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:s,n=s-a+(a>o?7:0)-(s>a?7:0),r=7*(e-1)+(i-s)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:z(t-1)+r}}function ge(t){var e,i=t._i,o=t._f;return t._locale=t._locale||Se.localeData(t._l),null===i||o===n&&""===i?Se.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),Se.isMoment(i)?new v(i,!0):(o?C(o)?se(t):ee(t):he(t),e=new v(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function ve(t,e){var i,o;if(1===e.length&&C(e[0])&&(e=e[0]),!e.length)return Se();for(i=e[0],o=1;o=0?"+":"-";return e+_(Math.abs(t),6)},gg:function(){return _(this.weekYear()%100,2)},gggg:function(){return _(this.weekYear(),4)},ggggg:function(){return _(this.weekYear(),5)},GG:function(){return _(this.isoWeekYear()%100,2)},GGGG:function(){return _(this.isoWeekYear(),4)},GGGGG:function(){return _(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return I(this.milliseconds()/100)},SS:function(){return _(I(this.milliseconds()/10),2)},SSS:function(){return _(this.milliseconds(),3)},SSSS:function(){return _(this.milliseconds(),3)},Z:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+_(I(t/60),2)+":"+_(I(t)%60,2)},ZZ:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+_(I(t/60),2)+_(I(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Mi={},Di=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],Oi=!1;wi.length;)Te=wi.pop(),_i[Te+"o"]=p(_i[Te],Te);for(;xi.length;)Te=xi.pop(),_i[Te+Te]=u(_i[Te],2);_i.DDDD=u(_i.DDD,3),b(g.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var o,s,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),o=0;12>o;o++){if(s=Se.utc([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(s,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(s,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(n="^"+this.months(s,"")+"|^"+this.monthsShort(s,""),this._monthsParse[o]=new RegExp(n.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,o;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=Se([2e3,1]).day(e),o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(o.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.apply(e,[i]):o},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,o){var s=this._relativeTime[i];return"function"==typeof s?s(t,e,i,o):s.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(t){return t},postformat:function(t){return t},week:function(t){return fe(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),Se=function(t,e,i,o){var s;return"boolean"==typeof i&&(o=i,i=n),s={},s._isAMomentObject=!0,s._i=t,s._f=e,s._l=i,s._strict=o,s._isUTC=!1,s._pf=h(),ge(s)},Se.suppressDeprecationWarnings=!1,Se.createFromInputFallback=l("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),Se.min=function(){var t=[].slice.call(arguments,0);return ve("isBefore",t)},Se.max=function(){var t=[].slice.call(arguments,0);return ve("isAfter",t)},Se.utc=function(t,e,i,o){var s;return"boolean"==typeof i&&(o=i,i=n),s={},s._isAMomentObject=!0,s._useUTC=!0,s._isUTC=!0,s._l=i,s._i=t,s._f=e,s._strict=o,s._pf=h(),ge(s).utc()},Se.unix=function(t){return Se(1e3*t)},Se.duration=function(t,e){var i,o,s,n,r=t,h=null;return Se.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=Ge.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:I(h[Ae])*i,h:I(h[ze])*i,m:I(h[Fe])*i,s:I(h[Re])*i,ms:I(h[Be])*i}):(h=Ue.exec(t))?(i="-"===h[1]?-1:1,s=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},r={y:s(h[2]),M:s(h[3]),d:s(h[4]),h:s(h[5]),m:s(h[6]),s:s(h[7]),w:s(h[8])}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=D(Se(r.from),Se(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),o=new y(r),Se.isDuration(t)&&a(t,"_locale")&&(o._locale=t._locale),o},Se.version=Ee,Se.defaultFormat=ci,Se.ISO_8601=function(){},Se.momentProperties=He,Se.updateOffset=function(){},Se.relativeTimeThreshold=function(t,e){return bi[t]===n?!1:e===n?bi[t]:(bi[t]=e,!0)},Se.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return Se.locale(t,e)}),Se.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?Se.defineLocale(t,e):Se.localeData(t),i&&(Se.duration._locale=Se._locale=i)),Se._locale._abbr},Se.defineLocale=function(t,e){return null!==e?(e.abbr=t,Ye[t]||(Ye[t]=new g),Ye[t].set(e),Se.locale(t),Ye[t]):(delete Ye[t],null)},Se.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return Se.localeData(t)}),Se.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Se._locale;if(!C(t)){if(e=j(t))return e;t=[t]}return H(t)},Se.isMoment=function(t){return t instanceof v||null!=t&&a(t,"_isAMomentObject")},Se.isDuration=function(t){return t instanceof y};for(Te=Di.length-1;Te>=0;--Te)L(Di[Te]);Se.normalizeUnits=function(t){return k(t)},Se.invalid=function(t){var e=Se.utc(0/0);return null!=t?b(e._pf,t):e._pf.userInvalidated=!0,e},Se.parseZone=function(){return Se.apply(null,arguments).parseZone()},Se.parseTwoDigitYear=function(t){return I(t)+(I(t)>68?1900:2e3)},Se.isDate=T,b(Se.fn=v.prototype,{clone:function(){return Se(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=Se(this).utc();return 00:!1},parsingFlags:function(){return b({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.utcOffset(0,t)},local:function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(t){var e=V(this,t||Se.defaultFormat);return this.localeData().postformat(e)},add:O(1,"add"),subtract:O(-1,"subtract"),diff:function(t,e,i){var o,s,n=W(t,this),r=6e4*(n.utcOffset()-this.utcOffset());return e=k(e),"year"===e||"month"===e||"quarter"===e?(s=f(this,n),"quarter"===e?s/=3:"year"===e&&(s/=12)):(o=this-n,s="second"===e?o/1e3:"minute"===e?o/6e4:"hour"===e?o/36e5:"day"===e?(o-r)/864e5:"week"===e?(o-r)/6048e5:o),i?s:x(s)},from:function(t,e){return Se.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(Se(),t)},calendar:function(t){var e=t||Se(),i=W(e,this).startOf("day"),o=this.diff(i,"days",!0),s=-6>o?"sameElse":-1>o?"lastWeek":0>o?"lastDay":1>o?"sameDay":2>o?"nextDay":7>o?"nextWeek":"sameElse";return this.format(this.localeData().calendar(s,this,Se(e)))},isLeapYear:function(){return F(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ce(t,this.localeData()),this.add(t-e,"d")):e},month:xe("Month",!0),startOf:function(t){switch(t=k(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t?this.weekday(0):"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(t){return t=k(t),t===n||"millisecond"===t?this:this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms")},isAfter:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Se.isMoment(t)?t:Se(t),+this>+t):(i=Se.isMoment(t)?+t:+Se(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Se.isMoment(t)?t:Se(t),+t>+this):(i=Se.isMoment(t)?+t:+Se(t),+this.clone().endOf(e)t?this:t}),max:l("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(t){return t=Se.apply(null,arguments),t>this?this:t}),zone:l("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),utcOffset:function(t,e){var i,o=this._offset||0;return null!=t?("string"==typeof t&&(t=Z(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateUtcOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),o!==t&&(!e||this._changeInProgress?S(this,Se.duration(t-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,Se.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?o:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Z(this._i)),this},hasAlignedHourOffset:function(t){return t=t?Se(t).utcOffset():0,(this.utcOffset()-t)%60===0},daysInMonth:function(){return P(this.year(),this.month())},dayOfYear:function(t){var e=Ne((Se(this).startOf("day")-Se(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=fe(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=fe(this,1,4).year;return null==t?e:this.add(t-e,"y")},week:function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},isoWeek:function(t){var e=fe(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},weekday:function(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return A(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return A(this.year(),t.dow,t.doy)},get:function(t){return t=k(t),this[t]()},set:function(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else t=k(t),"function"==typeof this[t]&&this[t](e);return this},locale:function(t){var e;return t===n?this._locale._abbr:(e=Se.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),Se.fn.millisecond=Se.fn.milliseconds=xe("Milliseconds",!1),Se.fn.second=Se.fn.seconds=xe("Seconds",!1),Se.fn.minute=Se.fn.minutes=xe("Minutes",!1),Se.fn.hour=Se.fn.hours=xe("Hours",!0),Se.fn.date=xe("Date",!0),Se.fn.dates=l("dates accessor is deprecated. Use date instead.",xe("Date",!0)),Se.fn.year=xe("FullYear",!0),Se.fn.years=l("years accessor is deprecated. Use year instead.",xe("FullYear",!0)),Se.fn.days=Se.fn.day,Se.fn.months=Se.fn.month,Se.fn.weeks=Se.fn.week,Se.fn.isoWeeks=Se.fn.isoWeek,Se.fn.quarters=Se.fn.quarter,Se.fn.toJSON=Se.fn.toISOString,Se.fn.isUTC=Se.fn.isUtc,b(Se.duration.fn=y.prototype,{_bubble:function(){var t,e,i,o=this._milliseconds,s=this._days,n=this._months,r=this._data,a=0;r.milliseconds=o%1e3,t=x(o/1e3),r.seconds=t%60,e=x(t/60),r.minutes=e%60,i=x(e/60),r.hours=i%24,s+=x(i/24),a=x(_e(s)),s-=x(Me(a)),n+=x(s/30),s%=30,a+=x(n/12),n%=12,r.days=s,r.months=n,r.years=a},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return x(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*I(this._months/12)},humanize:function(t){var e=pe(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=Se.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=Se.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=k(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=k(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*_e(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Me(this._months/12)),t){case"week":return e/7+this._milliseconds/6048e5;case"day":return e+this._milliseconds/864e5;case"hour":return 24*e+this._milliseconds/36e5;case"minute":return 24*e*60+this._milliseconds/6e4;case"second":return 24*e*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+t)}},lang:Se.fn.lang,locale:Se.fn.locale,toIsoString:l("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),o=Math.abs(this.hours()),s=Math.abs(this.minutes()),n=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(o||s||n?"T":"")+(o?o+"H":"")+(s?s+"M":"")+(n?n+"S":""):"P0D" -},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),Se.duration.fn.toString=Se.duration.fn.toISOString;for(Te in mi)a(mi,Te)&&De(Te.toLowerCase());Se.duration.fn.asMilliseconds=function(){return this.as("ms")},Se.duration.fn.asSeconds=function(){return this.as("s")},Se.duration.fn.asMinutes=function(){return this.as("m")},Se.duration.fn.asHours=function(){return this.as("h")},Se.duration.fn.asDays=function(){return this.as("d")},Se.duration.fn.asWeeks=function(){return this.as("weeks")},Se.duration.fn.asMonths=function(){return this.as("M")},Se.duration.fn.asYears=function(){return this.as("y")},Se.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===I(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),je?s.exports=Se:(o=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(ke.moment=Ce),Se}.call(e,i,e,s),!(o!==n&&(s.exports=o)),Oe(!0))}).call(this)}).call(e,function(){return this}(),i(79)(t))},function(t,e){var i,o,s;!function(n){o=[],i=n,s="function"==typeof i?i.apply(e,o):i,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i){function o(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled&&e.srcEvent._handled[e.type])return;e.srcEvent._handled={},e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0},e.firstTarget=t;for(var o=t;o&&!i;){var s=o.hammer&&o.hammer._handlers[e.type];if(s)for(var n=0;n0?i._handlers[t]=o:(i._off(t,s),delete i._handlers[t]))}),i},i.emit=function(e,o){t=o.target,i._emit(e,o)},i.destroy=function(){var t=i.element;delete t.hammer,i._handlers={},i._destroy()},i}})},function(t,e,i){var o;!function(s,n,r,a){function h(t,e,i){return setTimeout(f(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o-1}function x(t){return t.trim().split(/\s+/g)}function _(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function O(t,e){for(var i,o,s=e[0].toUpperCase()+e.slice(1),n=0;n1&&!i.firstMultiple?i.firstMultiple=P(e):1===s&&(i.firstMultiple=!1);var n=i.firstInput,r=i.firstMultiple,a=r?r.center:n.center,h=e.center=A(o);e.timeStamp=ve(),e.deltaTime=e.timeStamp-n.timeStamp,e.angle=B(a,h),e.distance=R(a,h),L(i,e),e.offsetDirection=F(e.deltaX,e.deltaY),e.scale=r?H(r.pointers,o):1,e.rotation=r?Y(r.pointers,o):0,I(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function L(t,e){var i=e.center,o=t.offsetDelta||{},s=t.prevDelta||{},n=t.prevInput||{};(e.eventType===Te||n.eventType===ke)&&(s=t.prevDelta={x:n.deltaX||0,y:n.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=s.x+(i.x-o.x),e.deltaY=s.y+(i.y-o.y)}function I(t,e){var i,o,s,n,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Ne&&(h>Ce||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,c=z(h,d,l);o=c.x,s=c.y,i=ge(c.x)>ge(c.y)?c.x:c.y,n=F(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,s=r.velocityY,n=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=s,e.direction=n}function P(t){for(var e=[],i=0;is;)i+=t[s].clientX,o+=t[s].clientY,s++;return{x:me(i/e),y:me(o/e)}}function z(t,e,i){return{x:e/t||0,y:i/t||0}}function F(t,e){return t===e?Le:ge(t)>=ge(e)?t>0?Ie:Pe:e>0?Ae:ze}function R(t,e,i){i||(i=Ye);var o=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return Math.sqrt(o*o+s*s)}function B(t,e,i){i||(i=Ye);var o=e[i[0]]-t[i[0]],s=e[i[1]]-t[i[1]];return 180*Math.atan2(s,o)/Math.PI}function Y(t,e){return B(e[1],e[0],He)-B(t[1],t[0],He)}function H(t,e){return R(e[0],e[1],He)/R(t[0],t[1],He)}function j(){this.evEl=We,this.evWin=Ge,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function W(){this.evEl=Xe,this.evWin=qe,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Qe,this.evWin=Ke,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=M(t.touches),o=M(t.changedTouches);return e&(ke|Ne)&&(i=D(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=Je,this.targetIds={},T.apply(this,arguments)}function X(t,e){var i=M(t.touches),o=this.targetIds;if(e&(Te|Ee)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var s,n,r=M(t.changedTouches),a=[],h=this.target;if(n=i.filter(function(t){return b(t.target,h)}),e===Te)for(s=0;sa&&(e.push(t),a=e.length-1):s&(ke|Ne)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,s,{pointers:e,changedPointers:[t],pointerType:n,srcEvent:t}),i&&e.splice(a,1))}});var Ze={touchstart:Te,touchmove:Ee,touchend:ke,touchcancel:Ne},Qe="touchstart",Ke="touchstart touchmove touchend touchcancel";p(G,T,{handler:function(t){var e=Ze[t.type];if(e===Te&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(ke|Ne)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Me,srcEvent:t})}}});var $e={touchstart:Te,touchmove:Ee,touchend:ke,touchcancel:Ne},Je="touchstart touchmove touchend touchcancel";p(V,T,{handler:function(t){var e=$e[t.type],i=X.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Me,srcEvent:t})}}),p(q,T,{handler:function(t,e,i){var o=i.pointerType==Me,s=i.pointerType==Oe;if(o)this.mouse.allow=!1;else if(s&&!this.mouse.allow)return;e&(ke|Ne)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ti=O(pe.style,"touchAction"),ei=ti!==a,ii="compute",oi="auto",si="manipulation",ni="none",ri="pan-x",ai="pan-y";Z.prototype={set:function(t){t==ii&&(t=this.compute()),ei&&(this.manager.element.style[ti]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),Q(t.join(" "))},preventDefaults:function(t){if(!ei){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,s=w(o,ni),n=w(o,ai),r=w(o,ri);return s||n&&i&Fe||r&&i&Re?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var hi=1,di=2,li=4,ci=8,ui=ci,pi=16,fi=32;K.prototype={defaults:{},set:function(t){return c(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=te(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=te(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=te(t,this),-1===_(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=te(t,this);var e=_(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?$(o):""),t)}var i=this,o=this.state;ci>o&&e(!0),e(),o>=ci&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=fi)},canEmit:function(){for(var t=0;tn?Ie:Pe,i=n!=this.pX,o=Math.abs(t.deltaX)):(s=0===r?Le:0>r?Ae:ze,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=s,i&&o>e.threshold&&s&e.direction},attrTest:function(t){return ee.prototype.attrTest.call(this,t)&&(this.state&di||!(this.state&di)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=J(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),p(oe,ee,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ni]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&di)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),p(se,K,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[oi]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(ke|Ne)&&!s)this.reset();else if(t.eventType&Te)this.reset(),this._timer=h(function(){this.state=ui,this.tryEmit()},e.time,this);else if(t.eventType&ke)return ui;return fi},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ui&&(t&&t.eventType&ke?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=ve(),this.manager.emit(this.options.event,this._input)))}}),p(ne,ee,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ni]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&di)}}),p(re,ee,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Fe|Re,pointers:1},getTouchAction:function(){return ie.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Fe|Re)?e=t.velocity:i&Fe?e=t.velocityX:i&Re&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&ge(e)>this.options.velocity&&t.eventType&ke},emit:function(t){var e=J(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(ae,K,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[si]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancen;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(s.root.children.NW,t),this._getForceContribution(s.root.children.NE,t),this._getForceContribution(s.root.children.SW,t),this._getForceContribution(s.root.children.SE,t))}},writable:!0,configurable:!0},_getForceContribution:{value:function(t,e){if(t.childrenCount>0){var i,o,s;if(i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,s=Math.sqrt(i*i+o*o),s*t.calcSize>this.options.thetaInverted){0==s&&(s=.1*Math.random(),i=s);var n=this.options.gravitationalConstant*t.mass*e.options.mass/(s*s*s),r=i*n,a=o*n;this.physicsBody.forces[e.id].x+=r,this.physicsBody.forces[e.id].y+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==s&&(s=.5*Math.random(),i=s);var n=this.options.gravitationalConstant*t.mass*e.options.mass/(s*s*s),r=i*n,a=o*n;this.physicsBody.forces[e.id].x+=r,this.physicsBody.forces[e.id].y+=a}}},writable:!0,configurable:!0},_formBarnesHutTree:{value:function(t,e){for(var i,o=e.length,s=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(s>d&&(s=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-s)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(s+=.5*c,r-=.5*c);var u=1e-5,p=Math.max(u,Math.abs(r-s)),f=.5*p,m=.5*(s+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:g-f,maxY:g+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;o>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);return v},writable:!0,configurable:!0},_updateBranchMass:{value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var s=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},writable:!0,configurable:!0},_placeInRegion:{value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},writable:!0,configurable:!0},_splitBranch:{value:function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},writable:!0,configurable:!0},_insertRegion:{value:function(t,e){var i,o,s,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,s=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,s=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,s=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,s=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:s,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},writable:!0,configurable:!0},_debug:{value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},writable:!0,configurable:!0},_drawBranch:{value:function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()},writable:!0,configurable:!0}}),t}();e.BarnesHutSolver=s,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(e,i,s){o(this,t),this.body=e,this.physicsBody=i,this.setOptions(s)}return i(t,null,{setOptions:{value:function(t){this.options=t},writable:!0,configurable:!0},solve:{value:function(){for(var t,e,i,o,s,n,r,a,h=this.physicsBody.calculationNodes,d=this.physicsBody.calculationNodeIndices,l=this.physicsBody.forces,c=this.options.nodeDistance,u=-2/3/c,p=4/3,f=0;fi&&(n=.5*c>i?1:u*i+p,n/=i,o=t*n,s=e*n,l[r.id].x-=o,l[r.id].y-=s,l[a.id].x+=o,l[a.id].y+=s)}},writable:!0,configurable:!0}}),t}();e.RepulsionSolver=s,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(e,i,s){o(this,t),this.body=e,this.physicsBody=i,this.setOptions(s)}return i(t,null,{setOptions:{value:function(t){this.options=t},writable:!0,configurable:!0},solve:{value:function(){var t,e,i,o,s,n,r,a,h,d,l=this.physicsBody.calculationNodes,c=this.physicsBody.calculationNodeIndices,u=this.physicsBody.forces,p=this.options.nodeDistance;for(h=0;hi?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0==i?i=.01:n/=i,o=t*n,s=e*n,u[r.id].x-=o,u[r.id].y-=s,u[a.id].x+=o,u[a.id].y+=s}},writable:!0,configurable:!0}}),t}();e.HierarchicalRepulsionSolver=s,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(e,i,s){o(this,t),this.body=e,this.physicsBody=i,this.setOptions(s)}return i(t,null,{setOptions:{value:function(t){this.options=t},writable:!0,configurable:!0},solve:{value:function(){var t,e,i,o=this.body.edges;for(i in o)if(o.hasOwnProperty(i)&&(e=o[i],e.connected===!0&&void 0!==this.body.nodes[e.toId]&&void 0!==this.body.nodes[e.fromId]))if(t=void 0===e.properties.length?this.options.springLength:e.properties.length,null!=e.via){var s=e.to,n=e.via,r=e.from;this._calculateSpringForce(s,n,.5*t),this._calculateSpringForce(n,r,.5*t)}else this._calculateSpringForce(e.from,e.to,t)},writable:!0,configurable:!0},_calculateSpringForce:{value:function(t,e,i){var o,s,n,r,a,h;o=t.x-e.x,s=t.y-e.y,h=Math.sqrt(o*o+s*s),h=0==h?.01:h,a=this.options.springConstant*(i-h)/h,n=o*a,r=s*a,this.physicsBody.forces[t.id].x+=n,this.physicsBody.forces[t.id].y+=r,this.physicsBody.forces[e.id].x-=n,this.physicsBody.forces[e.id].y-=r},writable:!0,configurable:!0}}),t}();e.SpringSolver=s,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e){var i=function(t,e,i){e&&Object.defineProperties(t,e),i&&Object.defineProperties(t.prototype,i)},o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(e,i,s){o(this,t),this.body=e,this.physicsBody=i,this.setOptions(s)}return i(t,null,{setOptions:{value:function(t){this.options=t},writable:!0,configurable:!0},solve:{value:function(){for(var t,e,i,o,s,n,r,a,h,d=this.body.edges,l=this.physicsBody.calculationNodeIndices,c=this.physicsBody.forces,u=0;u0&&this._unselectAll(),this.selectObject(t),this._generateClickEvent(t),this.body.emitter.emit("_requestRedraw"))},writable:!0,configurable:!0},_generateClickEvent:{value:function(t){var e=this.getSelection(); -e.pointer={DOM:{x:t.x,y:t.y},canvas:this.canvas.DOMtoCanvas(t)},this.body.emitter.emit("click",e)},writable:!0,configurable:!0},selectObject:{value:function(t){var e=this._getNodeAt(t);return null!=e?this.options.selectConnectedEdges===!0&&this._selectConnectedEdges(e):e=this._getEdgeAt(t),null!==e&&(e.select(),this._addToSelection(e),this.body.emitter.emit("selected",this.getSelection())),e},writable:!0,configurable:!0},_getNodesOverlappingWith:{value:function(t,e){var i=this.body.nodes;for(var o in i)i.hasOwnProperty(o)&&i[o].isOverlappingWith(t)&&e.push(o)},writable:!0,configurable:!0},_getAllNodesOverlappingWith:{value:function(t){var e=[];return this._getNodesOverlappingWith(t,e),e},writable:!0,configurable:!0},_pointerToPositionObject:{value:function(t){var e=this.canvas.DOMtoCanvas(t);return{left:e.x,top:e.y,right:e.x,bottom:e.y}},writable:!0,configurable:!0},_getNodeAt:{value:function(t){var e=this._pointerToPositionObject(t),i=this._getAllNodesOverlappingWith(e);return i.length>0?this.body.nodes[i[i.length-1]]:null},writable:!0,configurable:!0},_getEdgesOverlappingWith:{value:function(t,e){var i=this.body.edges;for(var o in i)i.hasOwnProperty(o)&&i[o].isOverlappingWith(t)&&e.push(o)},writable:!0,configurable:!0},_getAllEdgesOverlappingWith:{value:function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e},writable:!0,configurable:!0},_getEdgeAt:{value:function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.body.edges[i[i.length-1]]:null},writable:!0,configurable:!0},_addToSelection:{value:function(t){t instanceof n?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},writable:!0,configurable:!0},_addToHover:{value:function(t){t instanceof n?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},writable:!0,configurable:!0},_removeFromSelection:{value:function(t){t instanceof n?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},writable:!0,configurable:!0},_unselectAll:{value:function(){var t=void 0===arguments[0]?!1:arguments[0];for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.body.emitter.emit("select",this.getSelection())},writable:!0,configurable:!0},_getSelectedNodeCount:{value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},writable:!0,configurable:!0},_getSelectedNode:{value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},writable:!0,configurable:!0},_getSelectedEdge:{value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},writable:!0,configurable:!0},_getSelectedEdgeCount:{value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},writable:!0,configurable:!0},_getSelectedObjectCount:{value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},writable:!0,configurable:!0},_selectionIsEmpty:{value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},writable:!0,configurable:!0},_clusterInSelection:{value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},writable:!0,configurable:!0},_selectConnectedEdges:{value:function(t){for(var e=0;ei;i++){s=t[i];var n=this.body.nodes[s];if(!n)throw new RangeError('Node with id "'+s+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},writable:!0,configurable:!0},selectEdges:{value:function(t){var e,i,o;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){o=t[e];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this._selectObject(s,!0,!0,!1,!0)}this.redraw()},writable:!0,configurable:!0},_updateSelection:{value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])},writable:!0,configurable:!0}}),t}();e.SelectionHandler=r,Object.defineProperty(e,"__esModule",{value:!0})},function(t,e,i){var o=i(40);e._getNodesOverlappingWith=function(t,e){var i=this.body.nodes;for(var o in i)i.hasOwnProperty(o)&&i[o].isOverlappingWith(t)&&e.push(o)},e._getAllNodesOverlappingWith=function(t){var e=[];return this._getNodesOverlappingWith(t,e),e},e._pointerToPositionObject=function(t){var e=this._XconvertDOMtoCanvas(t.x),i=this._YconvertDOMtoCanvas(t.y);return{left:e,top:i,right:e,bottom:i}},e._getNodeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllNodesOverlappingWith(e);return i.length>0?this.body.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.body.edges;for(var o in i)i.hasOwnProperty(o)&&i[o].isOverlappingWith(t)&&e.push(o)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._getEdgesOverlappingWith(t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.body.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof o?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof o?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof o?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){s=t[i];var n=this.body.nodes[s];if(!n)throw new RangeError('Node with id "'+s+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,o;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){o=t[e];var s=this.body.edges[o];if(!s)throw new RangeError('Edge with id "'+o+'" not found');this._selectObject(s,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.body.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.body.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var o=i(1),s=(i(40),i(37),i(45));e._clearManipulatorBar=function(){this._recursiveDOMDelete(this.manipulationDiv),this.manipulationDOM={},this._cleanManipulatorHammers(),this._manipulationReleaseOverload=function(){},delete this.body.sectors.support.nodes.targetNode,delete this.body.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1,this.freezeSimulationEnabled=!1},e._cleanManipulatorHammers=function(){if(0!=this.manipulationHammers.length){for(var t=0;t0){var t,e,i=0,o=!1,s=!1;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],-1!=t.level?o=!0:s=!0,io&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>o&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var o=0;ot)&&(s.level=t,s.edges.length>1&&this._setLevel(t+1,s.edges,s.id))}},e._setLevelDirected=function(t,e,i){this.body.nodes[i].hierarchyEnumerated=!0;for(var o,s,n=0;n1&&o.hierarchyEnumerated===!1&&this._setLevelDirected(o.level,o.edges,o.id)},e._restoreNodes=function(){for(var t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(this.body.nodes[t].xFixed=!1,this.body.nodes[t].yFixed=!1)}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=78},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){(function(e){t.exports=e}).call(e,{})}])}); +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(2),e.DataSet=i(3),e.DataView=i(4),e.Queue=i(5),e.Graph3d=i(6),e.graph3d={Camera:i(7),Filter:i(8),Point2d:i(9),Point3d:i(10),Slider:i(11),StepNumber:i(12)},e.Timeline=i(13),e.Graph2d=i(14),e.timeline={DateUtil:i(15),DataStep:i(16),Range:i(17),stack:i(18),TimeStep:i(19),components:{items:{Item:i(20),BackgroundItem:i(21),BoxItem:i(22),PointItem:i(23),RangeItem:i(24)},Component:i(25),CurrentTime:i(26),CustomTime:i(27),DataAxis:i(28),GraphGroup:i(29),Group:i(30),BackgroundGroup:i(31),ItemSet:i(32),Legend:i(33),LineGraph:i(34),TimeAxis:i(35)}},e.Network=i(36),e.network={Images:i(37),dotparser:i(38),gephiParser:i(39)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(40),e.hammer=i(41),e.Hammer=i(41)},function(t,e,i){var o=i(40);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){for(;1==t.hasChildNodes();)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=n.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},e.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!=typeof t[i]&&(t[i]=e)},e.fillIfDefined=function(t,e){for(var i in t)void 0!==e[i]&&"object"!=typeof e[i]&&(t[i]=e[i])},e.protoExtend=function(t,e){for(var i=1;ii;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var s;if(void 0===t)return void 0;if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(o.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return s=n.exec(t),s?new Date(Number(s[1])):o(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return o(t);if(t instanceof Date)return o(t.valueOf());if(o.isMoment(t))return o(t);if(e.isString(t))return s=n.exec(t),o(s?Number(s[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(o.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return s=n.exec(t),s?new Date(Number(s[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){s=n.exec(t);var r;return r=s?new Date(Number(s[1])).valueOf():new Date(t).valueOf(),"/Date("+r+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}};var n=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=typeof t;return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),o=i.indexOf(e);-1!=o&&(i.splice(o,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,o;if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)){if(e.isValidRGB(t)){var o=t.substr(4).substr(0,t.length-5).split(",");t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)){var n=e.hexToHSV(t),s={h:n.h,s:.45*n.s,v:Math.min(1,1.05*n.v)},r={h:n.h,s:Math.min(1,1.25*n.v),v:.6*n.v},a=e.HSVToHex(r.h,r.h,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var s={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=s.split(t.style.cssText),n=s.split(i),r=e.extend(o,n);t.style.cssText=s.join(r)},e.removeCssText=function(t,e){var i=s.split(t.style.cssText),o=s.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=s.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var o=Object.create(i),n=0;n=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],u=e(l);if(0==u)return h;-1==u?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o){for(var n,s,r,a,h=1e4,d=0,l=0,u=t.length-1;u>=l&&h>d;){if(a=Math.floor(.5*(u+l)),n=t[Math.max(0,a-1)][i],s=t[a][i],r=t[Math.min(t.length-1,a+1)][i],s==e)return a;if(e>n&&s>e)return"before"==o?Math.max(0,a-1):a;if(e>s&&r>e)return"before"==o?a:Math.min(t.length-1,a+1);e>s?l=a+1:u=a-1,d++}return-1},e.easeInOutQuad=function(t,e,i,o){var n=i-e;return t/=o/2,1>t?n/2*t*t+e:(t--,-n/2*(t*(t-2)-1)+e)},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;"circle"==o.options.drawPoints.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.options.drawPoints.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.options.drawPoints.size),a.setAttributeNS(null,"y",i-.5*o.options.drawPoints.size),a.setAttributeNS(null,"width",o.options.drawPoints.size),a.setAttributeNS(null,"height",o.options.drawPoints.size)),void 0!==o.options.drawPoints.styles&&a.setAttributeNS(null,"style","vis-"+o.group.options.drawPoints.styles),a.setAttributeNS(null,"class",o.className+" vis-point");var h=e.getSVGElement("text",n,s);return r&&(r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label")),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i),a},e.drawBar=function(t,i,o,n,s,r,a){if(0!=n){0>n&&(n*=-1,i-=n);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*o),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",o),h.setAttributeNS(null,"height",n),h.setAttributeNS(null,"class",s)}}},function(t,e,i){function o(t,e){if(!t||Array.isArray(t)||n.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var o=this._options.type[i];"Date"==o||"ISODate"==o||"ASPDate"==o?this._type[i]="Date":this._type[i]=o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n=i(1),s=i(5);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=s.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=o.prototype.on,o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=o.prototype.off,o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0;nr;r++)i=s._addItem(t[r]),o.push(i);else if(n.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var u={},c=0,p=h.length;p>c;c++){var f=h[c];u[f]=t.getValue(d,c)}i=s._addItem(u),o.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=s._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],s=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),o.push(e),s.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(n.isDataTable(t))for(var u=this._getColumnNames(t),c=0,p=t.getNumberOfRows();p>c;c++){for(var f={},m=0,v=u.length;v>m;m++){var g=u[m];f[g]=t.getValue(c,m)}h(f)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),o.length&&this._trigger("update",{items:o,data:s},e),i.concat(o)},o.prototype.get=function(t){var e,i,o,s,r=this,a=n.getType(arguments[0]);"String"==a||"Number"==a?(e=arguments[0],o=arguments[1],s=arguments[2]):"Array"==a?(i=arguments[0],o=arguments[1],s=arguments[2]):(o=arguments[0],s=arguments[1]);var h;if(o&&o.returnType){var d=["DataTable","Array","Object"];if(h=-1==d.indexOf(o.returnType)?"Array":o.returnType,s&&h!=n.getType(s))throw new Error('Type of parameter "data" ('+n.getType(s)+") does not correspond with specified options.type ("+o.type+")");if("DataTable"==h&&!n.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else h=s&&"DataTable"==n.getType(s)?"DataTable":"Array";var l,u,c,p,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)l=r._getItem(e,f),m&&!m(l)&&(l=null);else if(void 0!=i)for(c=0,p=i.length;p>c;c++)l=r._getItem(i[c],f),(!m||m(l))&&v.push(l);else for(u in this._data)this._data.hasOwnProperty(u)&&(l=r._getItem(u,f),(!m||m(l))&&v.push(l));if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)l=this._filterFields(l,g);else for(c=0,p=v.length;p>c;c++)v[c]=this._filterFields(v[c],g)}if("DataTable"==h){var y=this._getColumnNames(s);if(void 0!=e)r._appendRow(s,y,l);else for(c=0;cc;c++)s.push(v[c]);return s}return v},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){s=[];for(o in r)r.hasOwnProperty(o)&&(n=this._getItem(o,d),a(n)&&s.push(n));for(this._sort(s,h),e=0,i=s.length;i>e;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=this._getItem(o,d),a(n)&&l.push(n[this._fieldId]));else if(h){s=[];for(o in r)r.hasOwnProperty(o)&&s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=r[o],l.push(n[this._fieldId]));return l},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n=e&&e.filter,s=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],o=i[this._fieldId],t(i,o);else for(o in r)r.hasOwnProperty(o)&&(i=this._getItem(o,s),(!n||n(i))&&t(i,o))},o.prototype.map=function(t,e){var i,o=e&&e.filter,n=e&&e.type||this._options.type,s=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,n),(!o||o(i))&&s.push(t(i,a)));return e&&e.order&&this._sort(s,e.order),s},o.prototype._filterFields=function(t,e){if(!t)return t;var i={};if(Array.isArray(e))for(var o in t)t.hasOwnProperty(o)&&-1!=e.indexOf(o)&&(i[o]=t[o]);else for(var o in t)t.hasOwnProperty(o)&&e.hasOwnProperty(o)&&(i[e[o]]=t[o]);return i},o.prototype._sort=function(t,e){if(n.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(n.isNumber(t)||n.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||r>o)&&(i=s,o=r)}return i},o.prototype.min=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||o>r)&&(i=s,o=r)}return i},o.prototype.distinct=function(t){var e,i=this._data,o=[],s=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(o[e]==d){l=!0;break}l||void 0===d||(o[r]=d,r++)}if(s)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},o.prototype._appendRow=function(t,e,i){for(var o=t.addRow(),n=0,s=e.length;s>n;n++){var r=e[n];t.setValue(o,n,i[r])}},t.exports=o},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(3);o.prototype.setData=function(t){var e,i,o;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var n in this._ids)this._ids.hasOwnProperty(n)&&e.push(n);this._ids={},this.length=0,this._trigger("remove",{items:e})}if(this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),i=0,o=e.length;o>i;i++)n=e[i],this._ids[n]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},o=[],n=[],s=0;so;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(u.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],c.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],c.push(s))}this.length+=l.length-c.length,l.length&&this._trigger("add",{items:l},i),u.length&&this._trigger("update",{items:u,data:d},i),c.length&&this._trigger("remove",{items:c},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}o.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},o.extend=function(t,e){var i=new o(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){i.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},o.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new c,this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.colorAxis="#4D4D4D",this.colorGrid="#D3D3D3",this.colorDot="#7DC1FF",this.colorDotBorder="#3267D2",this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(42),a=i(3),h=i(4),d=i(1),l=i(10),u=i(9),c=i(7),p=i(8),f=i(11),m=i(12);r(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){ +return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-c)/(p-c),v=240*f,g=this._hsv2rgb(v,1,1);u.strokeStyle=g,u.beginPath(),u.moveTo(h,r+t),u.lineTo(a,r+t),u.stroke()}u.strokeStyle=this.colorAxis,u.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(u.strokeStyle=this.colorAxis,u.fillStyle=this.colorDot,u.beginPath(),u.moveTo(h,r),u.lineTo(a,r),u.lineTo(a-i+e,d),u.lineTo(h,d),u.closePath(),u.fill(),u.stroke()),this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new m(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new l(_,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.colorAxis,v.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(v.lineWidth=1,o=void 0===this.defaultYStep,i=new m(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new l(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.colorAxis,v.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(v.lineWidth=1,o=void 0===this.defaultZStep,i=new m(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(s,r,i.getCurrent())),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(t.x-b,t.y),v.stroke(),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.colorAxis,v.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();v.lineWidth=1,t=this._convert3Dto2D(new l(s,r,this.zMin)),e=this._convert3Dto2D(new l(s,r,this.zMax)),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),v.lineWidth=1,c=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),c=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),v.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.colorAxis,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke();var x=this.xLabel;x.length>0&&(u=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-u:this.yMax+u,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.colorAxis,v.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.colorAxis,v.fillText(k,n.x,n.y));var M=this.zLabel;M.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new l(s,r,a)),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.colorAxis,v.fillText(M,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,u,c,p,f,m=this.frame.canvas,v=m.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else r=!0;r?(f=(t.point.z+e.point.z+i.point.z+n.point.z)/4,u=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),c=1,this.showShadow?(p=Math.min(1+k.x/M/2,1),a=this._hsv2rgb(u,c,p),h=a):(p=1,a=this._hsv2rgb(u,c,p),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,v.lineWidth=d,v.fillStyle=a,v.strokeStyle=h,v.beginPath(),v.moveTo(t.screen.x,t.screen.y),v.lineTo(e.screen.x,e.screen.y),v.lineTo(n.screen.x,n.screen.y),v.lineTo(i.screen.x,i.screen.y),v.closePath(),v.fill(),v.stroke()}}else for(s=0;sc&&(c=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.colorDot,m=this.colorDotBorder):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=1,i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,c,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],o.lineWidth=1,o.strokeStyle="blue",o.beginPath(),o.moveTo(t.screen.x,t.screen.y)),e=1;e0&&o.stroke()}},o.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=n(t),this.startMouseY=s(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},o.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(n(t))-this.startMouseX,i=parseFloat(s(t))-this.startMouseY,o=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(o))0?1:0>t?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=100,s=null,r=null,a=null,h=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var d=s.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var c=d[l],p=c.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return s}}else for(i=0;ib)&&n>b&&(a=b,r=s)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(10);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0), +this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(4);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e,i){function o(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}o.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},o.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=o.calculatePrettyStep(t):this._step=t)},o.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},o.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},o.prototype.getStep=function(){return this._step},o.prototype.start=function(){this._current=this._start-this._start%this._step},o.prototype.next=function(){this._current+=this._step},o.prototype.end=function(){return this._current>this._end},t.exports=o},function(t,e,i){function o(t,e,i,h){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof s||i instanceof r)&&i instanceof Object){var p=h;h=i,i=p}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=n.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return f.timeAxis.step.scale},getStep:function(){return f.timeAxis.step.step},toScreen:f._toScreen.bind(f),toGlobalScreen:f._toGlobalScreen.bind(f),toTime:f._toTime.bind(f),toGlobalTime:f._toGlobalTime.bind(f)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new u(this.body),this.components.push(this.customTime),this.itemSet=new c(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){f.emit("click",f.getEventProperties(t))}),this.on("doubletap",function(t){f.emit("doubleClick",f.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){f.emit("contextmenu",f.getEventProperties(t))},h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(42),i(41),i(1)),s=i(3),r=i(4),a=i(17),h=i(43),d=i(35),l=i(26),u=i(27),c=i(32);o.prototype=new h,o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof s||t instanceof r?t:new s(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var o=this._getDataRange();var n=void 0!=this.options.start?this.options.start:o.start,a=void 0!=this.options.end?this.options.end:o.end;this.setWindow(n,a,{animate:!1})}else this.fit({animate:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof s||t instanceof r?t:new s(t):null,this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var o=t.min("start");e=o?n.convert(o.start,"Date").valueOf():null;var s=t.max("start");s&&(i=n.convert(s.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?n.convert(r.end,"Date").valueOf():Math.max(i,n.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},o.prototype.getEventProperties=function(t){var e=this.itemSet.itemFromTarget(t),i=this.itemSet.groupFromTarget(t),o=t.gesture?t.gesture.center.pageX:t.pageX,s=t.gesture?t.gesture.center.pageY:t.pageY,r=o-n.getAbsoluteLeft(this.dom.centerContainer),a=s-n.getAbsoluteTop(this.dom.centerContainer),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),l=this.body.util.getStep(),u=this._toTime(r),c=h?h(u,d,l):u,p=n.getTarget(t),f=null;return null!=e?f="item":n.hasParent(p,this.timeAxis.dom.foreground)?f="axis":this.timeAxis2&&n.hasParent(p,this.timeAxis2.dom.foreground)?f="axis":n.hasParent(p,this.itemSet.dom.labelSet)?f="group-label":n.hasParent(p,this.customTime.bar)?f="custom-time":n.hasParent(p,this.currentTime.bar)?f="current-time":n.hasParent(p,this.dom.center)&&(f="background"),{event:t,item:e?e.id:null,group:i?i.groupId:null,what:f,pageX:o,pageY:s,x:r,y:a,time:u,snappedTime:c}},t.exports=o},function(t,e,i){function o(t,e,i,o){if(!(Array.isArray(i)||i instanceof s)&&i instanceof Object){var r=o;o=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=n.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new u(this.body),this.components.push(this.customTime),this.linegraph=new c(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){h.emit("click",h.getEventProperties(t))}),this.on("doubletap",function(t){h.emit("doubleClick",h.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){h.emit("contextmenu",h.getEventProperties(t))},o&&this.setOptions(o),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(42),i(41),i(1)),s=i(3),r=i(4),a=i(17),h=i(43),d=i(35),l=i(26),u=i(27),c=i(34);o.prototype=new h,o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof s||t instanceof r?t:new s(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var o=void 0!=this.options.start?this.options.start:null,n=void 0!=this.options.end?this.options.end:null;this.setWindow(o,n,{animate:!1})}else this.fit({animate:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof s||t instanceof r?t:new s(t):null,this.groupsData=e,this.linegraph.setGroups(e)},o.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},o.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},o.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var o=0;or?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.gesture?t.gesture.center.pageX:t.pageX,i=t.gesture?t.gesture.center.pageY:t.pageY,o=e-n.getAbsoluteLeft(this.dom.centerContainer),s=i-n.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=n.getTarget(t),h=null;n.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&n.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":n.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":n.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":n.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":n.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":n.hasParent(a,this.customTime.bar)?h="custom-time":n.hasParent(a,this.currentTime.bar)?h="current-time":n.hasParent(a,this.dom.center)&&(h="background");var d=[],l=this.linegraph.yAxisLeft,u=this.linegraph.yAxisRight;return l.hidden||d.push(l.screenToValue(s)),u.hidden||d.push(u.screenToValue(s)),{event:t,what:h,pageX:e,pageY:i,x:o,y:s,time:r,value:d}},t.exports=o},function(t,e,i){var o=i(40);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var c=0,p=s.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;p>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var v=e.isHidden(t.range.start,t.hiddenDates),g=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==v.hidden&&(y=1==t.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==t.range.endToFront?g.startDate-1:g.endDate+1),(1==v.hidden||1==g.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){i=!0;break}}if(1==i&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,n){return n=o(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,n)},e.getHiddenDurationBefore=function(t,e,i){var n=0;i=o(i).toDate().valueOf();for(var s=0;s=e.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(t,e,i,o,n,s){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=s,this.setRange(t,e,i,o,n)}o.prototype.setRange=function(t,e,i,o,n){this._start=void 0===n.min?t:n.min,this._end=void 0===n.max?e:n.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,o),this.setFirst(n)},o.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,o=1.2*i,n=t*(o/e),s=Math.round(Math.log(o)/Math.LN10),r=-1,a=Math.pow(10,s),h=0;0>s&&(h=s);for(var d=!1,l=h;Math.abs(l)<=Math.abs(s);l++){a=Math.pow(10,l);for(var u=0;u=n){d=!0,r=u;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},o.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},o.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},o.prototype.hasNext=function(){return this.current>=this.marginStart},o.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},o.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},o.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;o--){if("0"!=i[o]){if("."==i[o]||","==i[o]){i=i.slice(0,o);break}break}i=i.slice(0,o)}}else{var n="",s=i.indexOf("e");if(-1!=s&&(n=i.slice(s),i=i.slice(0,s)),s=Math.max(i.indexOf(","),i.indexOf(".")),-1===s?(0!==t&&(i+="."),s=i.length+t):0!==t&&(s+=t+1),s>i.length)for(var r=s-i.length;r>0;r--)i+="0";else i=i.slice(0,s);i+=n}return i},o.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=o},function(t,e,i){function o(t,e){var i=a().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("panstart",this._onDragStart.bind(this)),this.body.emitter.on("panmove",this._onDrag.bind(this)),this.body.emitter.on("panend",this._onDragEnd.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function n(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function s(t,e){return{x:t.x-r.getAbsoluteLeft(e),y:t.y-r.getAbsoluteTop(e)}}var r=i(1),a=(i(44),i(40)),h=i(25),d=i(15);o.prototype=new h,o.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},o.prototype.setRange=function(t,e,i,o){o!==!0&&(o=!1);var n=void 0!=t?r.convert(t,"Date").valueOf():null,s=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,l=this.end,u="number"==typeof i?i:500,c=(new Date).valueOf(),p=!1,f=function(t){function e(){return t.apply(this,arguments)}return e.toString=function(){return t.toString()},e}(function(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-c,i=e>u,v=i||null===n?n:r.easeInOutQuad(e,h,n,u),g=i||null===s?s:r.easeInOutQuad(e,l,s,u);m=a._applyRange(v,g),d.updateHiddenDates(a.body,a.options.hiddenDates),p=p||m,m&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),i?p&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animateTimer=setTimeout(f,20)}});return f()}var m=this._applyRange(n,s);if(d.updateHiddenDates(this.body,this.options.hiddenDates),m){var v={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",v),this.body.emitter.emit("rangechanged",v)}},o.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*o,h=this.props.touch.start+a,l=this.props.touch.end+a,u=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),c=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||c!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=c,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},o.prototype._onDragEnd=function(t){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=s({x:t.pageX,y:t.pageY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=s(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=o-n,a=i-n+(this.props.touch.start-(i-n))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var l=d.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(l!=a||u!=h)&&(this.props.touch.start=l,this.props.touch.end=u,this.scaleOffset=1-t.scale,a=l,h=u),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0); + +(h!=r||l!=a)&&(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e,i){var o=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,o="end"in e.data?e.data.end:e.data.start;return i-o})},e.stack=function(t,i,o){var n,s;if(o)for(n=0,s=t.length;s>n;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-i.vertical+oe.top}},function(t,e,i){function o(t,e,i,n){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,this.hiddenDates=n,void 0===n&&(this.hiddenDates=[]),this.format=o.FORMAT}var n=i(40),s=i(15),r=i(1);o.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},o.prototype.setFormat=function(t){var e=r.deepExtend({},o.FORMAT);this.format=r.deepExtend(e,t)},o.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},o.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},o.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case"month":this.current.setDate(1);case"day":case"weekday":this.current.setHours(0);case"hour":this.current.setMinutes(0);case"minute":this.current.setSeconds(0);case"second":this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case"hour":this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case"month":this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},o.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},o.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current=new Date(this.current.valueOf()+1e3*this.step);break;case"minute":this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case"hour":this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()+this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()+this.step);break;case"hour":this.current.setHours(this.current.getHours()+this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.getMilliseconds()0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=new Date(t.valueOf());if("year"==e){var n=o.getFullYear()+Math.round(o.getMonth()/12);o.setFullYear(Math.round(n/i)*i),o.setMonth(0),o.setDate(0),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("month"==e)o.getDate()>15?(o.setDate(1),o.setMonth(o.getMonth()+1)):o.setDate(1),o.setHours(0),o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.setHours(24*Math.round(o.getHours()/24));break;default:o.setHours(12*Math.round(o.getHours()/12))}o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.setHours(12*Math.round(o.getHours()/12));break;default:o.setHours(6*Math.round(o.getHours()/6))}o.setMinutes(0),o.setSeconds(0),o.setMilliseconds(0)}else if("hour"==e){switch(i){case 4:o.setMinutes(60*Math.round(o.getMinutes()/60));break;default:o.setMinutes(30*Math.round(o.getMinutes()/30))}o.setSeconds(0),o.setMilliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.setMinutes(5*Math.round(o.getMinutes()/5)),o.setSeconds(0);break;case 5:o.setSeconds(60*Math.round(o.getSeconds()/60));break;default:o.setSeconds(30*Math.round(o.getSeconds()/30))}o.setMilliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.setSeconds(5*Math.round(o.getSeconds()/5)),o.setMilliseconds(0);break;case 5:o.setMilliseconds(1e3*Math.round(o.getMilliseconds()/1e3));break;default:o.setMilliseconds(500*Math.round(o.getMilliseconds()/500))}else if("millisecond"==e){var s=i>5?i/2:1;o.setMilliseconds(Math.round(o.getMilliseconds()/s)*s)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}switch(this.scale){case"millisecond":return 0==this.current.getMilliseconds();case"second":return 0==this.current.getSeconds();case"minute":return 0==this.current.getHours()&&0==this.current.getMinutes();case"hour":return 0==this.current.getHours();case"weekday":case"day":return 1==this.current.getDate();case"month":return 0==this.current.getMonth();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?n(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?n(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(n().add(1,"day"),"day")?" tomorrow":t.isSame(n().add(-1,"day"),"day")?" yesterday":""}function i(t){return t.isSame(new Date,"week")?" current-week":""}function o(t){return t.isSame(new Date,"month")?" current-month":""}function s(t){return t.isSame(new Date,"year")?" current-year":""}var r=n(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"h"+d+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"day"+l+" "+u+o(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"year"+c+s(a)+t(c);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null}var n=i(41),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="vis-delete",i.title="Delete this item",new n(i).on("tap",function(t){e.parent.removeFromDataSet(e),t.stopPropagation()}),t.appendChild(i),this.dom.deleteButton=i}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;it.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="vis-item-content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}{var n=i(20);i(1)}o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="vis-item-content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=n,this.width=r,i=Math.min(s-n-2*this.options.padding,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(r-i-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i-2*this.options.padding)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?Math.min(-n,s-n-i-2*this.options.padding):0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e){this.options=null,this.props=null}o.prototype.setOptions=function(t){t&&util.extend(this.options,t)},o.prototype.redraw=function(){return!1},o.prototype.destroy=function(){},o.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=n.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var n=i(1),s=i(25),r=i(40),a=i(45);o.prototype=new s,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-current-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},o.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},o.prototype.setOptions=function(t){t&&n.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},o.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=new Date((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),o=this.options.locales[this.options.locale];o||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline.html#Localization"),this.warned=!0),o=this.options.locales.en);var n=o.current+" "+o.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");n=n.charAt(0).toUpperCase()+n.substring(1),this.bar.style.left=i+"px",this.bar.title=n}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},o.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,o=1/i/10;30>o&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en",id:0},this.options=s.extend({},this.defaultOptions),e&&e.time?this.customTime=e.time:this.customTime=new Date,this.eventParams={},this._create(),this.setOptions(e)}var n=i(41),s=i(1),r=i(25),a=i(40),h=i(45);o.prototype=new r,o.prototype.setOptions=function(t){t&&(s.selectiveExtend(["showCustomTime","locale","locales","id"],this.options,t),this.options.id&&this.redraw())},o.prototype._create=function(){var t=document.createElement("div");t.className="vis-custom-time",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=new n(e),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this))},o.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},o.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale];i||(this.warned||(console.log("WARNING: options.locales['"+this.options.locale+"'] not found. See http://visjs.org/docs/timeline.html#Localization"),this.warned=!0),i=this.options.locales.en);var o=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=e+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},o.prototype.setCustomTime=function(t){this.customTime=s.convert(t,"Date"),this.redraw()},o.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},o.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation()},o.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=this.body.util.toScreen(this.eventParams.customTime)+t.deltaX,i=this.body.util.toTime(e);this.setCustomTime(i),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation()}},o.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation())},t.exports=o},function(t,e,i){function o(t,e,i,o){this.id=n.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=o,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=n.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var s=this;this.body.emitter.on("verticalDrag",function(){s.dom.lineContainer.style.top=s.body.domProps.scrollTop+"px"})}var n=i(1),s=i(2),r=i(25),a=i(16);o.prototype=new r,o.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1; + +},o.prototype.updateGroup=function(t,e){this.groups[t]=e},o.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},o.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];n.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},o.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},o.prototype._redrawGroupIcons=function(){s.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,o=4,n=o+.5*i;t="left"==this.options.orientation?o:this.width-e-o;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,n,this.svgElements,this.svg,e,i),n+=i+o));s.cleanupElements(this.svgElements),this.iconsRemoved=!1},o.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(s.prepareElements(this.svgElements),s.cleanupElements(this.svgElements),this.iconsRemoved=!0)},o.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},o.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},o.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"==s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var e=this.options.orientation,i=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,o=new a(this.range.start,this.range.end,i,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=o;var n=(this.dom.frame.offsetHeight-o.deadSpace*(this.dom.frame.offsetHeight/o.marginRange))/((o.marginRange-o.deadSpace)/o.step);this.stepPixels=n;var r=this.height/n,h=0;if(0==this.master){n=this.stepPixelsForced,h=Math.round(this.dom.frame.offsetHeight/n-r);for(var d=0;.5*h>d;d++)o.previous();if(r=this.height/n,-1!=this.zeroCrossing&&1==this.options.alignZeros){var l=o.marginEnd/o.step-this.zeroCrossing;if(l>0)for(var d=0;l>d;d++)o.next();else if(0>l)for(var d=0;-l>d;d++)o.previous()}}else r+=.25;this.valueAtZero=o.marginEnd;var u,c=0,p=1;void 0!==this.options.format[e]&&(u=this.options.format[e].decimals),this.maxLabelSize=0;for(var f=0;p=0&&this._redrawLabel(f-2,o.getCurrent(u),e,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(f,e,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(f,e,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==o.current&&(this.zeroCrossing=p),p++}0==this.master?this.conversionFactor=f/(this.valueAtZero-o.current):this.conversionFactor=this.dom.frame.offsetHeight/o.marginRange;var v=0;void 0!==this.options.title[e]&&void 0!==this.options.title[e].text&&(v=this.props.titleCharHeight);var g=1==this.options.icons?Math.max(this.options.iconWidth,v)+this.options.labelOffsetX+15:v+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-g&&1==this.options.visible?(this.width=this.maxLabelSize+g,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+g),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),t=!1),t},o.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtZero-t/this.conversionFactor},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizec;c++){var f=this.visibleItems[c];f.repositionY(e)}return o},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var o=this;if(i.length>0){var s=i[0].top,r=i[0].top+i[0].height;if(n.forEach(i,function(t){s=Math.min(s,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(o.subgroups[t.data.subgroup].height=Math.max(o.subgroups[t.data.subgroup].height,t.height),o.subgroups[t.data.subgroup].visible=!0)}),s>t.axis){var a=s-t.axis;r-=a,n.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},snap:h.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=s.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var n=i(41),s=i(1),r=i(3),a=i(4),h=i(19),d=i(25),l=i(30),u=i(31),c=i(22),p=i(23),f=i(24),m=i(21),v="__ungrouped__",g="__background__";o.prototype=new d,o.types={background:m,box:c,range:f,point:p},o.prototype._create=function(){var t=document.createElement("div");t.className="vis-itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="vis-background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="vis-foreground",t.appendChild(i),this.dom.foreground=i;var o=document.createElement("div");o.className="vis-axis",this.dom.axis=o;var s=document.createElement("div");s.className="vis-labelset",this.dom.labelSet=s,this._updateUngrouped();var r=new u(g,null,this);r.show(),this.groups[g]=r,this.hammer=new n(this.body.dom.centerContainer),this.hammer.on("hammer.input",function(t){t.isFirst&&this._onTouch(t)}.bind(this)),this.hammer.on("panstart",this._onDragStart.bind(this)),this.hammer.on("panmove",this._onDrag.bind(this)),this.hammer.on("panend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("press",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},o.prototype.setOptions=function(t){if(t){var e=["type","align","order","padding","stack","selectable","groupOrder","dataAttributes","template","hide","snap"];s.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation=t.orientation:"object"==typeof t.orientation&&"item"in t.orientation&&(this.options.orientation=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(s.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&s.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&s.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},o.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&s.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},o.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},o.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},o.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},o.prototype.setSelection=function(t){var e,i,o,n;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=s.option.asSize,o=this.options,n=o.orientation,r=!1,a=this.dom.frame,h=o.editable.updateTime||o.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset"+(h?" vis-editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var u=this.stackDirty,c=this._firstGroup(),p={item:t.item,axis:t.axis},f={item:t.item,axis:t.item.vertical/2},m=0,v=t.axis+t.item.vertical;return this.groups[g].redraw(e,f,u),s.forEach(this.groups,function(t){var i=t==c?p:f,o=t.redraw(e,i,u);r=o||r,m+=t.height}),m=Math.max(m,v),this.stackDirty=!1,a.style.height=i(m),this.props.width=a.offsetWidth,this.props.height=m,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},o.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[v];return i||null},o.prototype._updateUngrouped=function(){{var t,e,i=this.groups[v];this.groups[g]}if(this.groupsData){if(i){i.hide(),delete this.groups[v];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new l(s,r,this),this.groups[v]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(s.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:v},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),n=e.items[t],s=e._getType(i),r=o.types[s];if(n&&(r&&n instanceof r?e._updateItem(n,i):(e._removeItem(n),n=null)),!n){if(!r)throw new TypeError("rangeoverflow"==s?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}':'Unknown item type "'+s+'"');n=new r(i,e.conversion,e.options),n.id=t,e._addItem(n)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},o.prototype._order=function(){s.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==v||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);s.extend(n,{height:null}),o=new l(t,i,e),e.groups[t]=o;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!s.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1), +t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||o.length>0)&&this.body.emitter.emit("select",{items:r})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=s.getAbsoluteLeft(this.dom.frame),a=t.center.x-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),u={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(a+this.props.width/5);u.end=i?i(c,d,l):c}u[this.itemsData._fieldId]=s.randomUUID();var p=this.groupFromTarget(t);p&&(u.group=p.groupId),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=this.itemFromTarget(t);if(i){e=this.getSelection();var n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n){e.push(i.id);var s=o._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=s.min&&d<=s.max&&!(a instanceof m)&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.pageY,i=0;ia&&ea)return n}else if(0===i&&e"));this.dom.textArea.innerHTML=o,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){s.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,o=this.options.iconSize,n=.75*this.options.iconSize,r=e+.5*n+3;this.svg.style.width=o+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,o,n),r+=n+this.options.iconSpacing));s.cleanupElements(this.svgElements)}},t.exports=o},function(t,e,i){function o(t,e){this.id=n.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=n.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=n.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var n=i(1),s=i(2),r=i(3),a=i(4),h=i(25),d=i(28),l=i(29),u=i(33),c=i(47),p="__ungrouped__";o.prototype=new h,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),u={};for(this._getRelevantData(a,u,d,l),this._applySampling(a,u),e=0;ep&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;ro){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=s)d.push(n[l]);e[t[o]]=d}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(n.getYRange(o)):h=h.concat(n.getYRange(o)):i[t[s]]=n.getYRange(o,t[s]));c.getStackedBarYRange(a,i,t,"__barchartLeft","left"),c.getStackedBarYRange(h,i,t,"__barchartRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),n},o.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},o.prototype._convertXcoordinates=function(t){for(var e,i,o=[],n=this.body.util.toScreen,s=0;sy;)y++,l=h.getCurrent(),u=h.isMajor(),p=h.getClassName(),m=f,f=this.body.util.toScreen(l),v=f-m,c&&(c.style.width=v+"px"),this.options.showMinorLabels&&this._repaintMinorText(f,h.getLabelMinor(),t,p),u&&this.options.showMajorLabels?(f>0&&(void 0==g&&(g=f),this._repaintMajorText(f,h.getLabelMajor(),t,p)),c=this._repaintMajorLine(f,t,p)):c=this._repaintMinorLine(f,t,p),h.next();if(this.options.showMajorLabels){var b=this.body.util.toTime(0),w=h.getLabelMajor(b),_=w.length*(this.props.majorCharWidth||10)+10;(void 0==g||g>_)&&this._repaintMajorText(0,w,t,p)}n.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",n.style.left=t+"px",n.className="vis-text vis-minor "+o},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",n.style.left=t+"px"},o.prototype._repaintMinorLine=function(t,e,i){var o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);var n=this.props;return"top"==e?o.style.top=n.majorLabelHeight+"px":o.style.top=this.body.domProps.top.height+"px",o.style.height=n.minorLineHeight+"px",o.style.left=t-n.minorLineWidth/2+"px",o.className="vis-grid vis-vertical vis-minor "+i,o},o.prototype._repaintMajorLine=function(t,e,i){var o=this.dom.redundant.lines.shift();o||(o=document.createElement("div"),this.dom.background.appendChild(o)),this.dom.lines.push(o);var n=this.props;return"top"==e?o.style.top="0":o.style.top=this.body.domProps.top.height+"px",o.style.left=t-n.majorLineWidth/2+"px",o.style.height=n.majorLineHeight+"px",o.className="vis-grid vis-vertical vis-major "+i,o},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=o},function(t,e,i){function o(t,e,i){var n=this;if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={clickToUse:!1},A.extend(this.options,this.defaultOptions),this.body={nodes:{},nodeIndices:[],edges:{},edgeIndices:[],data:{nodes:null,edges:null},functions:{createNode:function(){},createEdge:function(){},getPointer:function(){}},emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this),once:this.once.bind(this)},eventListeners:{onTap:function(){},onTouch:function(){},onDoubleTap:function(){},onHold:function(){},onDragStart:function(){},onDrag:function(){},onDragEnd:function(){},onMouseWheel:function(){},onPinch:function(){},onMouseMove:function(){},onRelease:function(){},onContext:function(){}},container:t,view:{scale:1,translation:{x:0,y:0}}},this.bindEventListeners();var s=new L(function(){return n.body.emitter.emit("_requestRedraw")});this.groups=new r["default"],this.canvas=new y["default"](this.body),this.selectionHandler=new M["default"](this.body,this.canvas),this.interactionHandler=new x["default"](this.body,this.canvas,this.selectionHandler),this.view=new w["default"](this.body,this.canvas),this.renderer=new v["default"](this.body,this.canvas), +this.physics=new c["default"](this.body),this.layoutEngine=new O["default"](this.body),this.clustering=new f["default"](this.body),this.manipulation=new C["default"](this.body,this.canvas,this.selectionHandler),this.nodesHandler=new h["default"](this.body,s,this.groups,this.layoutEngine),this.edgesHandler=new l["default"](this.body,s,this.groups),this.configurationSystem=new S["default"](this),this.canvas._create(),this.setOptions(i),this.setData(e)}var n=function(t){return t&&t.__esModule?t:{"default":t}},s=i(49),r=n(s),a=i(50),h=n(a),d=i(51),l=n(d),u=i(52),c=n(u),p=i(53),f=n(p),m=i(54),v=n(m),g=i(55),y=n(g),b=i(56),w=n(b),_=i(57),x=n(_),k=i(58),M=n(k),D=i(59),O=n(D),T=i(60),C=n(T),E=i(61),S=n(E),P=i(62),I=n(P);i(63);var N=i(42),A=(i(41),i(1)),z=(i(3),i(4),i(38)),R=i(39),L=i(37),F=i(64);N(o.prototype),o.prototype.setOptions=function(t){if(void 0!==t){var e=I["default"].validate(t);e===!0&&(t={},console.error("Errors have been found in the supplied options object. None of the options will be used.")),t=this.layoutEngine.setOptions(t.layout,t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.canvas.setOptions(t.canvas),this.renderer.setOptions(t.rendering),this.view.setOptions(t.view),this.interactionHandler.setOptions(t.interaction),this.selectionHandler.setOptions(t.selection),this.clustering.setOptions(t.clustering),this.manipulation.setOptions(t.manipulation),this.configurationSystem.setOptions(t),void 0!==t.clickToUse?t.clickToUse===!0?void 0===this.activator&&(this.activator=new F(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):(void 0!==this.activator&&(this.activator.destroy(),delete this.activator),this.body.emitter.emit("activate")):this.body.emitter.emit("activate"),this.canvas.setSize(),this.body.emitter.emit("startSimulation")}},o.prototype._updateVisibleIndices=function(){var t=this.body.nodes,e=this.body.edges;this.body.nodeIndices=[],this.body.edgeIndices=[];for(var i in t)t.hasOwnProperty(i)&&t[i].options.hidden===!1&&this.body.nodeIndices.push(i);for(var o in e)e.hasOwnProperty(o)&&e[o].options.hidden===!1&&this.body.edgeIndices.push(o)},o.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(e){t._updateVisibleIndices(),t.physics.updatePhysicsIndices(),t.body.emitter.emit("_dataUpdated")}),this.body.emitter.on("_dataUpdated",function(){t._updateValueRange(t.body.nodes),t._updateValueRange(t.body.edges),t.body.emitter.emit("startSimulation")})},o.prototype.setData=function(t){if(this.body.emitter.emit("resetPhysics"),this.body.emitter.emit("_resetData"),this.selectionHandler.unselectAll(),t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var e=z.DOTToGraph(t.dot);return void this.setData(e)}}else if(t&&t.gephi){if(t&&t.gephi){var i=R.parseGephi(t.gephi);return void this.setData(i)}}else this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0);this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("initPhysics")},o.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),A.recursiveDOMDelete(this.body.container)},o.prototype._updateValueRange=function(t){var e,i=void 0,o=void 0,n=0;for(e in t)if(t.hasOwnProperty(e)){var s=t[e].getValue();void 0!==s&&(i=void 0===i?s:Math.min(s,i),o=void 0===o?s:Math.max(s,o),n+=s)}if(void 0!==i&&void 0!==o)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,o,n)},o.prototype.isActive=function(){return!this.activator||this.activator.active},t.exports=o},function(t,e,i){function o(t){this.images={},this.imageBroken={},this.callback=t}o.prototype.load=function(t,e){var i=this.images[t];if(void 0===i){var o=this;i=new Image,i.onload=function(){0===this.width&&(document.body.appendChild(this),this.width=this.offsetWidth,this.height=this.offsetHeight,document.body.removeChild(this)),o.callback&&(o.images[t]=i,o.callback(this))},i.onerror=function(){void 0===e?(console.error("Could not load image:",t),delete this.src,o.callback&&o.callback(this)):o.imageBroken[t]===!0?(console.error("Could not load brokenImage:",e),delete this.src,o.callback&&o.callback(this)):(console.error("Could not load image:",t),this.src=e,o.imageBroken[t]=!0)},i.src=t}return i},t.exports=o},function(t,e,i){function o(t){return C=t,f()}function n(){E=0,S=C.charAt(0)}function s(){E++,S=C.charAt(E)}function r(){return C.charAt(E+1)}function a(t){return N.test(t)}function h(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function d(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function l(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=h(n.attr,t.node))),i=s.length-1;i>=0;i--){var a=s[i];a.nodes||(a.nodes=[]),-1===a.nodes.indexOf(n)&&a.nodes.push(n)}e.attr&&(n.attr=h(n.attr,e.attr))}function u(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function c(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=h({},t.edge)),s.attr=h(s.attr||{},n),s}function p(){for(I=O.NULL,P="";" "===S||" "===S||"\n"===S||"\r"===S;)s();do{var t=!1;if("#"===S){for(var e=E-1;" "===C.charAt(e)||" "===C.charAt(e);)e--;if("\n"===C.charAt(e)||""===C.charAt(e)){for(;""!=S&&"\n"!=S;)s();t=!0}}if("/"===S&&"/"===r()){for(;""!=S&&"\n"!=S;)s();t=!0}if("/"===S&&"*"===r()){for(;""!=S;){if("*"===S&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===S||" "===S||"\n"===S||"\r"===S;)s()}while(t);if(""===S)return void(I=O.DELIMITER);var i=S+r();if(T[i])return I=O.DELIMITER,P=i,s(),void s();if(T[S])return I=O.DELIMITER,P=S,void s();if(a(S)||"-"===S){for(P+=S,s();a(S);)P+=S,s();return"false"===P?P=!1:"true"===P?P=!0:isNaN(Number(P))||(P=Number(P)),void(I=O.IDENTIFIER)}if('"'===S){for(s();""!=S&&('"'!=S||'"'===S&&'"'===r());)P+=S,'"'===S&&s(),s();if('"'!=S)throw x('End of string " expected');return s(),void(I=O.IDENTIFIER)}for(I=O.UNKNOWN;""!=S;)P+=S,s();throw new SyntaxError('Syntax error in part "'+k(P,30)+'"')}function f(){var t={};if(n(),p(),"strict"===P&&(t.strict=!0,p()),("graph"===P||"digraph"===P)&&(t.type=P,p()),I===O.IDENTIFIER&&(t.id=P,p()),"{"!=P)throw x("Angle bracket { expected");if(p(),m(t),"}"!=P)throw x("Angle bracket } expected");if(p(),""!==P)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==P&&"}"!=P;)v(t),";"===P&&p()}function v(t){var e=g(t);if(e)return void w(t,e);var i=y(t);if(!i){if(I!=O.IDENTIFIER)throw x("Identifier expected");var o=P;if(p(),"="===P){if(p(),I!=O.IDENTIFIER)throw x("Identifier expected");t[o]=P,p()}else b(t,o)}}function g(t){var e=null;if("subgraph"===P&&(e={},e.type="subgraph",p(),I===O.IDENTIFIER&&(e.id=P,p())),"{"===P){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=P)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"===P?(p(),t.node=_(),"node"):"edge"===P?(p(),t.edge=_(),"edge"):"graph"===P?(p(),t.graph=_(),"graph"):null}function b(t,e){var i={id:e},o=_();o&&(i.attr=o),l(t,i),w(t,e)}function w(t,e){for(;"->"===P||"--"===P;){var i,o=P;p();var n=g(t);if(n)i=n;else{if(I!=O.IDENTIFIER)throw x("Identifier or subgraph expected");i=P,l(t,{id:i}),p()}var s=_(),r=c(t,e,i,o,s);u(t,r),e=i}}function _(){for(var t=null;"["===P;){for(p(),t={};""!==P&&"]"!=P;){if(I!=O.IDENTIFIER)throw x("Attribute name expected");var e=P;if(p(),"="!=P)throw x("Equal sign = expected");if(p(),I!=O.IDENTIFIER)throw x("Attribute value expected");var i=P;d(t,e,i),p(),","==P&&p()}if("]"!=P)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(P,30)+'" (char '+E+")")}function k(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function M(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t){var e=o(t),i={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};h(e,t.attr),e.image&&(e.shape="image"),i.nodes.push(e)}),e.edges){var n=function(t){var e={from:t.from,to:t.to};return h(e,t.attr),e.style="->"===t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,o;e=t.from instanceof Object?t.from.nodes:{id:t.from},o=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=n(t);i.edges.push(e)}),M(e,o,function(e,o){var s=c(i,e.id,o.id,t.type,t.attr),r=n(s);i.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=n(t);i.edges.push(e)})})}return e.attr&&(i.options=e.attr),i}var O={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},T={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},C="",E=0,S="",P="",I=O.NULL,N=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=D},function(t,e,i){function o(t,e){var i=[],o=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var n=t.edges,s=t.nodes,r=0;ro;++o)i[o].apply(this,e)}return this},o.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},o.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){function o(){}var n=i(42),s=i(41),r=i(44),a=i(1),h=(i(3),i(4),i(17),i(32),i(35)),d=i(64),l=i(15),u=i(27);n(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",this.redraw.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("panstart",this._onDragStart.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new s(this.dom.root),this.hammer.get("pinch").set({enable:!0}),this.listeners={};var o=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(o.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),r.onTouch(this.hammer,function(t){console.log("touch",t),i.emit("touch",t)}.bind(this)),r.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.touch={},this.redrawCount=0,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates"];if(a.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation=t.orientation:"object"==typeof t.orientation&&"axis"in t.orientation&&(this.options.orientation=t.orientation.axis)),"both"===this.options.orientation){if(!this.timeAxis2){var i=this.timeAxis2=new h(this.body);i.setOptions=function(t){var e=t?a.extend({},t):{};e.orientation="top",h.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}"hiddenDates"in this.options&&l.convertHiddenOptions(this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new d(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),this._initAutoResize()}this.components.forEach(function(e){return e.setOptions(t)}),this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.clear(),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){if(!this.customTime)throw new Error("Cannot get custom time: Custom time bar is not enabled");var i=e||0;this.components.forEach(function(e,o,n){e instanceof u&&e.options.id===i&&e.setCustomTime(t)})},o.prototype.getCustomTime=function(t){if(!this.customTime)throw new Error("Cannot get custom time: Custom time bar is not enabled");var e=t||0,i=this.customTime.getCustomTime();return this.components.forEach(function(t,o,n){t instanceof u&&t.options.id===e&&(i=t.getCustomTime())}),i},o.prototype.addCustomTime=function(t,e){if(!this.currentTime)throw new Error("Option showCurrentTime must be true");if(void 0===t)throw new Error("Time parameter for the custom bar must be provided");var i,o,n,s=a.convert(t,"Date").valueOf();return this.customBarIds&&this.customBarIds.constructor===Array||(this.customBarIds=[0]),void 0===e?(i=this.customBarIds.filter(function(t){return a.isNumber(t)}),n=i.length>0?Math.max.apply(null,i)+1:1):(this.customBarIds.forEach(function(t){if(t===e)throw new Error("Custom time ID already exists")}),n=e),this.customBarIds.push(n),o=new u(this.body,{showCustomTime:!0,time:s,id:n}),this.components.push(o),this.redraw(),n},o.prototype.removeCustomTime=function(t){var e=this;this.components.forEach(function(i,o,n){i instanceof u&&i.options.id===t&&0!==i.options.id&&(e.customBarIds.splice(e.customBarIds.indexOf(t),1),n.splice(o,1),i.destroy())})},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.clear=function(t){(!t||t.items)&&this.setItems(null),(!t||t.groups)&&this.setGroups(null),(!t||t.options)&&(this.components.forEach(function(t){return t.setOptions(t.defaultOptions)}),this.setOptions(this.defaultOptions))},o.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animate?t.animate:!0;this.range.setRange(e.start,e.end,i)}},o.prototype._getDataRange=function(){var t=this.getItemRange(),e=t.min,i=t.max;if(null!=e&&null!=i){var o=i.valueOf()-e.valueOf();0>=o&&(o=864e5),e=new Date(e.valueOf()-.05*o),i=new Date(i.valueOf()+.05*o)}return{start:e,end:i}},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animate?n.animate:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animate?i.animate:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=a.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,o=this.dom;if(o){l.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(a.addClassName(o.root,"vis-top"),a.removeClassName(o.root,"vis-bottom")):(a.removeClassName(o.root,"vis-top"),a.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=a.option.asSize(e.maxHeight,""),o.root.style.minHeight=a.option.asSize(e.minHeight,""),o.root.style.width=a.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var r=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+r+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=a.option.asSize(e.height,h+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var d=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=d,i.leftContainer.height=d,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var c=this.props.scrollTop;"bottom"==e.orientation&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=c+"px",o.left.style.left="0",o.left.style.top=c+"px",o.right.style.left="0",o.right.style.top=c+"px";var p=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(o.shadowTop.style.visibility=p,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=p,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=p,o.shadowBottomRight.style.visibility=f,this.components.forEach(function(e){t=e.redraw()||t}),t){var m=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTopt[o].y?t[o].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=n.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style","vis-"+e.style),a=1==e.options.catmullRom.enabled?o._catmullRom(t,e):o._linear(t),1==e.options.shaded.enabled){var d,l=n.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&s.draw(t,e,i)}},o._catmullRomUniform=function(t){for(var e,i,o,n,s,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={x:(-e.x+6*i.x+o.x)*h,y:(-e.y+6*i.y+o.y)*h},r={x:(i.x+6*o.x-n.x)*h,y:(i.y+6*o.y-n.y)*h},a+="C"+s.x+","+s.y+" "+r.x+","+r.y+" "+o.x+","+o.y+" ";return a},o._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var o,n,s,r,a,h,d,l,u,c,p,f,m,v,g,y,b,w,_,x=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",k=t.length,M=0;k-1>M;M++)o=0==M?t[0]:t[M-1],n=t[M],s=t[M+1],r=k>M+2?t[M+2]:s,d=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),l=Math.sqrt(Math.pow(n.x-s.x,2)+Math.pow(n.y-s.y,2)),u=Math.sqrt(Math.pow(s.x-r.x,2)+Math.pow(s.y-r.y,2)),v=Math.pow(u,i),y=Math.pow(u,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),c=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={x:(-b*o.x+c*n.x+w*s.x)*f,y:(-b*o.y+c*n.y+w*s.y)*f},h={x:(y*n.x+p*s.x-b*r.x)*m,y:(y*n.y+p*s.y-b*r.y)*m},0==a.x&&0==a.y&&(a=n),0==h.x&&0==h.y&&(h=s),x+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+s.x+","+s.y+" ";return x},o._linear=function(t){for(var e="",i=0;it[o].y?t[o].y:e,i=i0&&(r=Math.min(r,Math.abs(c[l-1].x-a))),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved),y=l-(p[a].resolved+1);g0&&(r=Math.min(r,Math.abs(c[y].x-a))),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,"stack"==d.options.barChart.handleOverlap?(v=p[a].accumulated,p[a].accumulated+=d.zeroPosition-c[l].y):"sideBySide"==d.options.barChart.handleOverlap&&(h.width=h.width/p[a].amount,h.offset+=p[a].resolved*h.width-.5*h.width*(p[a].amount+1),"left"==d.options.barChart.align?h.offset-=.5*h.width:"right"==d.options.barChart.align&&(h.offset+=.5*h.width))}n.drawBar(c[l].x+h.offset,c[l].y-v,h.width,d.zeroPosition-c[l].y,d.className+" vis-bar",i.svgElements,i.svg),1==d.options.drawPoints.enabled&&s.draw([c[l]],d,i,h.offset)}},o._getDataIntersections=function(t,e){for(var i,o=0;o0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0==i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulated:0}),t[e[o].x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"==e.options.barChart.align?n-=.5*t:"right"==e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width, +n=0,"left"==e.options.barChart.align?n-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedBarYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};o._getDataIntersections(r,t),e[n]=o._getStackedBarYRange(r,t),e[n].yAxisOrientation=s,i.push(n)}},o._getStackedBarYRange=function(t,e){for(var i,o=e[0].y,n=e[0].y,s=0;se[s].y?e[s].y:o,n=nt[r].accumulated?t[r].accumulated:o,n=nt[o].y?t[o].y:e,i=i0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var i=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[i],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;i1?(this.stabilizationIterations=0,this.startedStabilization=!1,this._emitStabilized()):this.stabilizationIterations=0,this.stopSimulation())}},{key:"_emitStabilized",value:function(){var t=this;this.stabilizationIterations>1&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:t.stabilizationIterations})},0)}},{key:"physicsTick",value:function(){this.stabilized===!1&&(this.calculateForces(),this.stabilized=this.moveNodes(),this.stabilized===!0?this.revert():this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilizationIterations++)}},{key:"updatePhysicsIndices",value:function(){this.physicsBody.forces={},this.physicsBody.physicsNodeIndices=[],this.physicsBody.physicsEdgeIndices=[];var t=this.body.nodes,e=this.body.edges;for(var i in t)t.hasOwnProperty(i)&&t[i].options.physics===!0&&this.physicsBody.physicsNodeIndices.push(i);for(var o in e)e.hasOwnProperty(o)&&e[o].options.physics===!0&&this.physicsBody.physicsEdgeIndices.push(o);for(var n=0;na&&o===!0,t=!0}return t===!0?n>.5*this.options.maxVelocity?!1:o:!0}},{key:"_performStep",value:function(t,e){var i=this.body.nodes[t],o=this.options.timestep,n=this.physicsBody.forces,s=this.physicsBody.velocities;if(this.previousStates[t]={x:i.x,y:i.y,vx:s[t].x,vy:s[t].y},i.options.fixed.x===!1){var r=this.modelOptions.damping*s[t].x,a=(n[t].x-r)/i.options.mass;s[t].x+=a*o,s[t].x=Math.abs(s[t].x)>e?s[t].x>0?e:-e:s[t].x,i.x+=s[t].x*o}else n[t].x=0,s[t].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[t].y,d=(n[t].y-h)/i.options.mass;s[t].y+=d*o,s[t].y=Math.abs(s[t].y)>e?s[t].y>0?e:-e:s[t].y,i.y+=s[t].y*o}else n[t].y=0,s[t].y=0;var l=Math.sqrt(Math.pow(s[t].x,2)+Math.pow(s[t].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].x&&t[e].y&&(this.freezeCache[e]={x:t[e].options.fixed.x,y:t[e].options.fixed.y},t[e].options.fixed.x=!0,t[e].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedrawRequests"),this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(this._stabilizationBatch.bind(this),0)}},{key:"_stabilizationBatch",value:function(){for(var t=0;this.stabilized===!1&&t=t&&i.push(n.id)}for(var o=0;oo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(t){var e=void 0===arguments[1]?!0:arguments[1];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var i=this.body.nodes[t],o=i.containedNodes,n=i.containedEdges;for(var s in o)if(o.hasOwnProperty(s)){var r=this.body.nodes[s];r=o[s],r.x=i.x,r.y=i.y,r.vx=i.vx,r.vy=i.vy,r.options.hidden=!1,r.togglePhysics(!0),delete this.clusteredNodes[s]}for(var a in n)if(n.hasOwnProperty(a)){var h=this.body.edges[a];h.options.hidden=!1,h.togglePhysics(!0)}for(var d=0;do;)e.push(this.clusteredNodes[t].node),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t]),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;no&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a); + +return h>o&&(h=o),h}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;i0}),this.options={},this.defaultOptions={hideEdgesOnDrag:!1,hideNodesOnDrag:!1},s.extend(this.options,this.defaultOptions),this._determineBrowserMethod()}return n(t,[{key:"setOptions",value:function(t){void 0!==t&&s.deepExtend(this.options,t)}},{key:"_startRendering",value:function(){this.renderingActive===!0&&(this.renderTimer||(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this))))}},{key:"_renderStep",value:function(){this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering()}},{key:"redraw",value:function(){this._redraw()}},{key:"_requestRedraw",value:function(){this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedrawRequests===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(this._redraw.bind(this,!1),0):window.requestAnimationFrame(this._redraw.bind(this,!1)))}},{key:"_redraw",value:function(){var t=void 0===arguments[0]?!1:arguments[0];this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");(0===this.canvas.frame.canvas.width||0===this.canvas.frame.canvas.height)&&this.canvas.setSize(),void 0===this.pixelRation&&(this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;e.clearRect(0,0,i,o),this.body.emitter.emit("beforeDrawing",e),e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),this.controlNodesActive===!0&&this._drawControlNodes(e),this.body.emitter.emit("afterDrawing",e),e.restore(),t===!0&&e.clearRect(0,0,i,o)}},{key:"_drawNodes",value:function(t){for(var e,i=void 0===arguments[1]?!1:arguments[1],o=this.body.nodes,n=this.body.nodeIndices,s=[],r=0;r0)for(var r=0;rt.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.bottom&&(i=t.shape.boundingBox.top),ot.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.bottom&&(i=t.shape.boundingBox.top),o.5*this.body.nodeIndices.length)return void this.fit(i,!1);t=this._getRange(i.nodes);var a=this.body.nodeIndices.length;e=12.662/(a+7.4147)+.0964822;var h=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);e*=h}else{this.body.emitter.emit("_redraw",!0),t=this._getRange(i.nodes);var d=1.1*Math.abs(t.maxX-t.minX),l=1.1*Math.abs(t.maxY-t.minY),u=this.canvas.frame.canvas.clientWidth/d,c=this.canvas.frame.canvas.clientHeight/l;e=c>=u?u:c}e>1?e=1:0===e&&(e=1);var p=this._findCenter(t),f={position:p,scale:e,animation:i};this.moveTo(f)}},{key:"focusOnNode",value:function(t){var e=void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.body.view.translation),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=s.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getPosition",value:function(){return{x:this.body.view.translation.x,y:this.body.view.translation.y}}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;i50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center);this.checkSelectionChanges(e),this.selectionHandler._generateClickEvent("click",e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center);this.checkSelectionChanges(e,!0),this.selectionHandler._generateClickEvent("click",e),this.selectionHandler._generateClickEvent("hold",e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.pageX,y:t.pageY});this.selectionHandler._generateClickEvent("rightClick",e)}},{key:"checkSelectionChanges",value:function(t){var e=void 0===arguments[1]?!1:arguments[1],i=this.selectionHandler._getSelectedEdgeCount(),o=this.selectionHandler._getSelectedNodeCount(),n=this.selectionHandler.getSelection(),s=void 0;s=e===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var r=this.selectionHandler._getSelectedEdgeCount(),a=this.selectionHandler._getSelectedNodeCount();a-o>0?(this.selectionHandler._generateClickEvent("selectNode",t),s=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectNode",t,n),s=!0),r-i>0?(this.selectionHandler._generateClickEvent("selectEdge",t),s=!0):0>r-i&&(this.selectionHandler._generateClickEvent("deselectEdge",t,n),s=!0),s===!0&&this.selectionHandler._generateClickEvent("select",t)}},{key:"onDragStart",value:function(t){void 0===this.drag.pointer&&this.onTouch(t);var e=this.selectionHandler.getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=l.extend({},this.body.view.translation),this.drag.nodeId=void 0,this.selectionHandler._generateClickEvent("dragStart",this.drag.pointer),void 0!==e&&this.options.dragNodes===!0){this.drag.nodeId=e.id,e.isSelected()===!1&&(this.selectionHandler.unselectAll(),this.selectionHandler.selectObject(e));var i=this.selectionHandler.selectionObj.nodes;for(var o in i)if(i.hasOwnProperty(o)){var n=i[o],s={id:n.id,node:n,x:n.x,y:n.y,xFixed:n.options.fixed.x,yFixed:n.options.fixed.y};n.options.fixed.x=!0,n.options.fixed.y=!0,this.drag.selection.push(s)}}}},{key:"onDrag",value:function(t){var e=this;if(this.drag.pinched!==!0){this.body.emitter.emit("unlockNode");var i=this.getPointer(t.center),o=this.drag.selection;if(o&&o.length&&this.options.dragNodes===!0)!function(){var t=i.x-e.drag.pointer.x,n=i.y-e.drag.pointer.y;o.forEach(function(i){var o=i.node;i.xFixed===!1&&(o.x=e.canvas._XconvertDOMtoCanvas(e.canvas._XconvertCanvasToDOM(i.x)+t)),i.yFixed===!1&&(o.y=e.canvas._YconvertDOMtoCanvas(e.canvas._YconvertCanvasToDOM(i.y)+n))}),e.body.emitter.emit("startSimulation")}();else if(this.options.dragView===!0){if(void 0===this.drag.pointer)return void this._handleDragStart(t);var n=i.x-this.drag.pointer.x,s=i.y-this.drag.pointer.y;this.body.view.translation={x:this.drag.translation.x+n,y:this.drag.translation.y+s},this.body.emitter.emit("_redraw")}}}},{key:"onDragEnd",value:function(t){this.drag.dragging=!1;var e=this.drag.selection;e&&e.length?(e.forEach(function(t){t.node.options.fixed.x=t.xFixed,t.node.options.fixed.y=t.yFixed}),this.body.emitter.emit("startSimulation")):this.body.emitter.emit("_requestRedraw"),this.selectionHandler._generateClickEvent("dragEnd",this.getPointer(t.center))}},{key:"onPinch",value:function(t){var e=this.getPointer(t.center);this.drag.pinched=!0,void 0===this.pinch.scale&&(this.pinch.scale=1);var i=this.pinch.scale*t.scale;this.zoom(i,e)}},{key:"zoom",value:function(t,e){if(this.options.zoomView===!0){var i=this.body.view.scale;1e-5>t&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+"}):this.body.emitter.emit("zoom",{direction:"-"})}}},{key:"onMouseWheel",value:function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.pageX,y:t.pageY});this.zoom(i,n)}t.preventDefault()}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.pageX,y:t.pageY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hoverEnabled===!0){for(var n in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(n)&&(this.hoverObj.edges[n].hover=!1,delete this.hoverObj.edges[n]);var s=this.selectionHandler.getNodeAt(i);void 0===s&&(s=this.selectionHandler.getEdgeAt(i)),void 0!=s&&this.selectionHandler.hoverObject(s);for(var r in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(r)&&(s instanceof Node&&s.id!=r||s instanceof Edge||void 0===s)&&(this.selectionHandler.blurObject(this.hoverObj.nodes[r]),delete this.hoverObj.nodes[r]);this.body.emitter.emit("_requestRedraw")}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,u=[],c=0;c0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],c=0;c0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;i0?e===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return void 0}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return void 0}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges", +value:function(t){for(var e=0;e0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptions(e);if(i===!0)return this.body.emitter.emit("refresh"),s.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptions",value:function(t){if(this.options.hierarchical.enabled===!0){void 0===t.physics||t.physics===!0?(t.physics={solver:"hierarchicalRepulsion"},this.optionsBackup.physics={solver:"barnesHut"}):"object"==typeof options.physics?(this.optionsBackup.physics={solver:"barnesHut"},void 0!==options.physics.solver&&(this.optionsBackup.physics={solver:options.physics.solver}),t.physics.solver="hierarchicalRepulsion"):options.physics!==!1&&(this.optionsBackup.physics={solver:"barnesHut"},t.physics.solver="hierarchicalRepulsion");var e="horizontal";("RL"===this.options.hierarchical.direction||"LR"===this.options.hierarchical.direction)&&(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:!0,dynamic:!0},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:!0,dynamic:!0},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth,dynamic:!0},t.edges.smooth={enabled:t.edges.smooth,dynamic:!1,type:e}):(this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,dynamic:!0},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,dynamic:!1,type:e}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0)for(var e=0;e0){var t=void 0,e=void 0,i=!1,o=!1;this.hierarchicalLevels={},this.nodeSpacing=100;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");o===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():("directed"===this.options.hierarchical.sortMethod,0||this._determineLevelsDirected()));var n=this._getDistribution();this._placeNodesByHierarchy(n)}}},{key:"_placeNodesByHierarchy",value:function(t){var e=void 0,i=void 0;this.positionedNodes={};for(var o in t)if(t.hasOwnProperty(o))for(e in t[o].nodes)t[o].nodes.hasOwnProperty(e)&&(i=t[o].nodes[e],"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===i.x&&(i.x=t[o].distance),t[o].distance=i.x+this.nodeSpacing):(void 0===i.y&&(i.y=t[o].distance),t[o].distance=i.y+this.nodeSpacing),this.positionedNodes[e]=!0,this._placeBranchNodes(i.edges,i.id,t,o))}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchicalLevels[e]?0:this.hierarchicalLevels[e];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===t[o]&&(t[o]={amount:0,nodes:{},distance:0}),t[o].amount+=1,t[o].nodes[e]=i}return t}},{key:"_getHubSize",value:function(){var t=0;for(var e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){var i=this.body.nodes[e];void 0===this.hierarchicalLevels[e]&&(t=i.edges.length0&&(i=this._getHubSize(),0!==i);)for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],e.edges.length===i&&this._setLevel(0,e))}},{key:"_setLevel",value:function(t,e){if(void 0===this.hierarchicalLevels[e.id]){var i=void 0;this.hierarchicalLevels[e.id]=t;for(var o=0;oo&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===s.x&&(s.x=Math.max(i[a].distance,r.x)),i[a].distance=s.x+this.nodeSpacing,this.positionedNodes[s.id]=!0):(void 0===s.y&&(s.y=Math.max(i[a].distance,r.y)),i[a].distance=s.y+this.nodeSpacing),this.positionedNodes[s.id]=!0,s.edges.length>1&&this._placeBranchNodes(s.edges,s.id,i,a))}}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;i0){for(var n=0;n0&&"function"==typeof this.options.handlerFunctions.deleteEdge&&(o=this.options.handlerFunctions.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode&&(t.body.data.edges.remove(e.edges),t.body.data.nodes.remove(e.nodes),t.body.emitter.emit("startSimulation"))})}else this.body.data.edges.remove(i),this.body.data.nodes.remove(e),this.body.emitter.emit("startSimulation")}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);return i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e,this.body.functions.createNode(i)}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,dynamic:!1,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performCreateEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.handlerFunctions.addNode){if(2!==this.options.handlerFunctions.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.handlerFunctions.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.add(i),this.showManipulatorToolbar()}},{key:"_performCreateEdge",value:function(t,e){var i=this,o={from:t,to:e};if(this.options.handlerFunctions.addEdge){if(2!==this.options.handlerFunctions.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.handlerFunctions.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if(this.options.handlerFunctions.editEdge){if(2!==this.options.handlerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.handlerFunctions.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(o);var s=[o];this._handleObject(n,s)}i++}var r=document.createElement("div");r.className="vis-network-configuration button",r.innerHTML="generate options",r.onclick=function(){e._printOptions()},r.onmouseover=function(){r.className="vis-network-configuration button hover"},r.onmouseout=function(){r.className="vis-network-configuration button"},this.optionsContainer=document.createElement("div"),this.optionsContainer.className="vis-network-configuration vis-option-container",this.domElements.push(this.optionsContainer),this.domElements.push(r),this._push(),this.colorPicker.insertTo(this.container)}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-network-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?e-1:0),o=1;e>o;o++)i[o-1]=arguments[o];var n=document.createElement("div");n.className="vis-network-configuration item s"+t.length,i.forEach(function(t){n.appendChild(t)}),this.domElements.push(n)}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-network-configuration header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-network-configuration label s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-network-configuration select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;s.1*e&&(a.min=e/10),2*e>s&&1!==s&&(a.max=2*e),a.value=e):a.value=o;var h=document.createElement("input");h.className="vis-network-configuration rangeinput",h.value=a.value;var d=this;a.onchange=function(){h.value=this.value,d._update(this.value,i)},a.oninput=function(){h.value=this.value};var l=this._makeLabel(i[i.length-1],i);this._makeItem(i,l,a,h)}},{key:"_makeCheckbox",value:function(t,e,i){var o=document.createElement("input");o.type="checkbox",o.className="vis-network-configuration checkbox",o.checked=t,void 0!==e&&(o.checked=e,e!==t&&("object"==typeof t?e!==t.enabled&&this.changedOptions.push({path:i,value:e}):this.changedOptions.push({path:i,value:e})));var n=this;o.onchange=function(){n._update(this.checked,i)};var s=this._makeLabel(i[i.length-1],i);this._makeItem(i,s,o)}},{key:"_makeColorField",value:function(t,e,i){var o=this,n=t[1],s=document.createElement("div");e=void 0===e?n:e,"none"!==e?(s.className="vis-network-configuration colorBlock",s.style.backgroundColor=e):s.className="vis-network-configuration colorBlock none",e=void 0===e?n:e,s.onclick=function(){o._showColorPicker(e,s,i)};var r=this._makeLabel(i[i.length-1],i);this._makeItem(i,r,s)}},{key:"_showColorPicker",value:function(t,e,i){var o=this,n=e.getBoundingClientRect(),s=document.body.getBoundingClientRect(),r=n.left+n.width+5,a=n.top-s.top+.5*n.height;this.colorPicker.show(r,a),this.colorPicker.setColor(t),this.colorPicker.setCallback(function(t){var n="rgba("+t.r+","+t.g+","+t.b+","+t.a+")";e.style.backgroundColor=n,o._update(n,i)})}},{key:"_handleObject",value:function(t){var e=void 0===arguments[1]?[]:arguments[1];for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],n=this._addToPath(e,i),s=this._getValue(n);if(o instanceof Array)this._handleArray(o,s,n);else if("string"==typeof o)this._handleString(o,s,n);else if("boolean"==typeof o)this._makeCheckbox(o,s,n);else if(o instanceof Object){var r=!0;if(-1!==e.indexOf("physics")&&this.actualOptions.physics.solver!==i&&(r=!1),r===!0)if(void 0!==o.enabled){var a=this._addToPath(n,"enabled"),h=this._getValue(a);if(h===!0){var d=this._makeLabel(i,n,!0);this._makeItem(n,d),this._handleObject(o,n)}else this._makeCheckbox(o,h,n)}else{var d=this._makeLabel(i,n,!0);this._makeItem(n,d),this._handleObject(o,n)}}else console.error("dont know how to handle",o,i,n)}}},{key:"_handleArray",value:function(t,e,i){"string"==typeof t[0]&&"color"===t[0]?(this._makeColorField(t,e,i),t[1]!==e&&this.changedOptions.push({path:i,value:e})):"string"==typeof t[0]?(this._makeDropdown(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e})):"number"==typeof t[0]&&(this._makeRange(t,e,i),t[0]!==e&&this.changedOptions.push({path:i,value:e}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.network.setOptions(i)}},{key:"_constructOptions",value:function(t,e){var i=void 0===arguments[2]?{}:arguments[2],o=i;t="true"===t?!0:t,t="false"===t?!1:t;for(var n=0;nvar options = "+JSON.stringify(t,null,2)+""}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;id&&r>d&&(n=a,s=d)}return r>s?console.error('Unknown option detected: "'+e+'". Did you mean "'+n+'"?',t.printLocation(o,e)):console.error('Unknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i)),t.printLocation(o,e)),h=!0,n}},{key:"printLocation",value:function(t,e){for(var i="\nProblem value found at: \noptions = {\n",o=0;on;n++)i+=" ";i+=t[o]+": {\n"}for(var n=0;no;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,u=e+r,c=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,c+h,u,c,u),this.bezierCurveTo(c-h,u,t,p+d,t,p),this.bezierCurveTo(t,p-d,c-h,e,c,e),this.bezierCurveTo(c+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,c+h,m,c,m),this.bezierCurveTo(c-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),u=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,u),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=0>r?-c:c,t+=c,e+=h*c,u===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u})},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),this.bodyHammer=a(document&&document.body,{prevent_default:!1}),this.bodyHammer.on("tap",function(i){n(i.target,t)||e.deactivate()}),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(82),r=i(42),a=i(41),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.hammer=null,this.bodyHammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Ti.apply(null,arguments)}function i(t){Ti=t}function o(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function n(t){return"[object Array]"===Object.prototype.toString.call(t)}function s(t){return"[object Date]"===Object.prototype.toString.call(t)||t instanceof Date}function r(t,e){var i,o=[];for(i=0;i0)for(i in Ei)o=Ei[i],n=e[o],"undefined"!=typeof n&&(t[o]=n);return t}function p(t){c(this,t),this._d=new Date(+t._d),Si===!1&&(Si=!0,e.updateOffset(this),Si=!1)}function f(t){return t instanceof p||null!=t&&a(t,"_isAMomentObject")}function m(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function v(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&m(t[o])!==m(e[o]))&&r++;return r+s}function g(){}function y(t){return t?t.toLowerCase().replace("_","-"):t}function b(t){for(var e,i,o,n,s=0;s0;){if(o=w(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&v(n,i,!0)>=e-1)break;e--}s++}return null}function w(e){var i=null;if(!Pi[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Ci._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),_(i)}catch(o){}return Pi[e]}function _(t,e){var i;return t&&(i="undefined"==typeof e?k(t):x(t,e),i&&(Ci=i)),Ci._abbr}function x(t,e){return null!==e?(e.abbr=t,Pi[t]||(Pi[t]=new g),Pi[t].set(e),_(t),Pi[t]):(delete Pi[t],null)}function k(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ci;if(!n(t)){if(e=w(t))return e;t=[t]}return b(t)}function M(t,e){var i=t.toLowerCase();Ii[i]=Ii[i+"s"]=Ii[e]=t}function D(t){return"string"==typeof t?Ii[t]||Ii[t.toLowerCase()]:void 0}function O(t){var e,i,o={};for(i in t)a(t,i)&&(e=D(i),e&&(o[e]=t[i]));return o}function T(t,i){return function(o){return null!=o?(E(this,t,o),e.updateOffset(this,i),this):C(this,t)}}function C(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function E(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function S(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=D(t),"function"==typeof this[t])return this[t](e);return this}function P(t,e,i){for(var o=""+Math.abs(t),n=t>=0;o.lengthe;e++)Ri[o[e]]?o[e]=Ri[o[e]]:o[e]=N(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function z(t,e){return t.isValid()?(e=R(e,t.localeData()),zi[e]||(zi[e]=A(e)),zi[e](t)):t.localeData().invalidDate()}function R(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Ai.lastIndex=0;o>=0&&Ai.test(t);)t=t.replace(Ai,i),Ai.lastIndex=0,o-=1;return t}function L(t,e,i){Qi[t]="function"==typeof e?e:function(t){return t&&i?i:e}}function F(t,e){return a(Qi,t)?Qi[t](e._strict,e._locale):new RegExp(B(t))}function B(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function j(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=m(t)}),i=0;io;o++){if(n=d([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function q(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),W(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function X(t){return null!=t?(q(this,t),e.updateOffset(this,!0),this):C(this,"Month")}function Z(){return W(this.year(),this.month())}function K(t){var e,i=t._a;return i&&-2===t._pf.overflow&&(e=i[to]<0||i[to]>11?to:i[eo]<1||i[eo]>W(i[$i],i[to])?eo:i[io]<0||i[io]>24||24===i[io]&&(0!==i[oo]||0!==i[no]||0!==i[so])?io:i[oo]<0||i[oo]>59?oo:i[no]<0||i[no]>59?no:i[so]<0||i[so]>999?so:-1,t._pf._overflowDayOfYear&&($i>e||e>eo)&&(e=eo),t._pf.overflow=e),t}function Q(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function J(t,e){var i=!0;return h(function(){return i&&(Q(t),i=!1),e.apply(this,arguments)},e)}function $(t,e){ho[t]||(Q(e),ho[t]=!0)}function tt(t){var e,i,o=t._i,n=lo.exec(o);if(n){for(t._pf.iso=!0,e=0,i=uo.length;i>e;e++)if(uo[e][1].exec(o)){t._f=uo[e][0]+(n[6]||" ");break}for(e=0,i=co.length;i>e;e++)if(co[e][1].exec(o)){t._f+=co[e][0];break}o.match(Xi)&&(t._f+="Z"),bt(t)}else t._isValid=!1}function et(t){var i=po.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(tt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function it(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 1970>t&&a.setFullYear(t),a}function ot(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function nt(t){return st(t)?366:365}function st(t){return t%4===0&&t%100!==0||t%400===0}function rt(){return st(this.year())}function at(t,e,i){var o,n=i-e,s=i-t.day();return s>n&&(s-=7),n-7>s&&(s+=7),o=Ot(t).add(s,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function ht(t){return at(t,this._week.dow,this._week.doy).week}function dt(){return this._week.dow}function lt(){return this._week.doy}function ut(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function ct(t){var e=at(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function pt(t,e,i,o,n){var s,r,a=ot(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:n,s=n-a+(a>o?7:0)-(n>a?7:0),r=7*(e-1)+(i-n)+s+1,{year:r>0?t:t-1,dayOfYear:r>0?r:nt(t-1)+r}}function ft(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function mt(t,e,i){return null!=t?t:null!=e?e:i}function vt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function gt(t){var e,i,o,n,s=[];if(!t._d){for(o=vt(t),t._w&&null==t._a[eo]&&null==t._a[to]&&yt(t),t._dayOfYear&&(n=mt(t._a[$i],o[$i]),t._dayOfYear>nt(n)&&(t._pf._overflowDayOfYear=!0),i=ot(n,0,t._dayOfYear),t._a[to]=i.getUTCMonth(),t._a[eo]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[io]&&0===t._a[oo]&&0===t._a[no]&&0===t._a[so]&&(t._nextDay=!0,t._a[io]=0),t._d=(t._useUTC?ot:it).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[io]=24)}}function yt(t){var e,i,o,n,s,r,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=mt(e.GG,t._a[$i],at(Ot(),1,4).year),o=mt(e.W,1),n=mt(e.E,1)):(s=t._locale._week.dow,r=t._locale._week.doy,i=mt(e.gg,t._a[$i],at(Ot(),s,r).year),o=mt(e.w,1),null!=e.d?(n=e.d,s>n&&++o):n=null!=e.e?e.e+s:s),a=pt(i,o,n,r,s),t._a[$i]=a.year,t._dayOfYear=a.dayOfYear}function bt(t){if(t._f===e.ISO_8601)return void tt(t);t._a=[],t._pf.empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=R(t._f,t._locale).match(Ni)||[],i=0;i0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Ri[s]?(o?t._pf.empty=!1:t._pf.unusedTokens.push(s),Y(s,o,t)):t._strict&&!o&&t._pf.unusedTokens.push(s);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[io]<=12&&(t._pf.bigHour=void 0),t._a[io]=wt(t._locale,t._a[io],t._meridiem),gt(t),K(t)}function wt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function _t(t){var e,i,n,s,r;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(s=0;sr)&&(n=r,i=e));h(t,i||e)}function xt(t){if(!t._d){var e=O(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],gt(t)}}function kt(t){var e,i=t._i,o=t._f;return t._locale=t._locale||k(t._l),null===i||void 0===o&&""===i?u({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),f(i)?new p(K(i)):(n(o)?_t(t):o?bt(t):Mt(t),e=new p(K(t)),e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e))}function Mt(t){var i=t._i;void 0===i?t._d=new Date:s(i)?t._d=new Date(+i):"string"==typeof i?et(t):n(i)?(t._a=r(i.slice(0),function(t){return parseInt(t,10)}),gt(t)):"object"==typeof i?xt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Dt(t,e,i,n,s){var r={};return"boolean"==typeof i&&(n=i,i=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=s,r._l=i,r._i=t,r._f=e,r._strict=n,r._pf=o(),kt(r)}function Ot(t,e,i,o){return Dt(t,e,i,o,!1)}function Tt(t,e){var i,o;if(1===e.length&&n(e[0])&&(e=e[0]),!e.length)return Ot();for(i=e[0],o=1;ot&&(t=-t,i="-"),i+P(~~(t/60),2)+e+P(~~t%60,2)})}function Nt(t){var e=(t||"").match(Xi)||[],i=e[e.length-1]||[],o=(i+"").match(yo)||["-",0,0],n=+(60*o[1])+m(o[2]);return"+"===o[0]?n:-n}function At(t,i){var o,n;return i._isUTC?(o=i.clone(),n=(f(t)||s(t)?+t:+Ot(t))-+o,o._d.setTime(+o._d+n),e.updateOffset(o,!1),o):Ot(t).local()}function zt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Rt(t,i){var o,n=this._offset||0;return null!=t?("string"==typeof t&&(t=Nt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=zt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?Jt(this,qt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:zt(this)}function Lt(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Ft(t){return this.utcOffset(0,t)}function Bt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(zt(this),"m")),this}function jt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Nt(this._i)),this}function Ht(t){return t=t?Ot(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Yt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Wt(){if(this._a){var t=this._isUTC?d(this._a):Ot(this._a);return this.isValid()&&v(this._a,t.toArray())>0}return!1}function Gt(){return!this._isUTC}function Ut(){return this._isUTC}function Vt(){return this._isUTC&&0===this._offset}function qt(t,e){var i,o,n,s=t,r=null;return Pt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(r=bo.exec(t))?(i="-"===r[1]?-1:1,s={y:0,d:m(r[eo])*i,h:m(r[io])*i,m:m(r[oo])*i,s:m(r[no])*i,ms:m(r[so])*i}):(r=wo.exec(t))?(i="-"===r[1]?-1:1,s={y:Xt(r[2],i),M:Xt(r[3],i),d:Xt(r[4],i),h:Xt(r[5],i),m:Xt(r[6],i),s:Xt(r[7],i),w:Xt(r[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Kt(Ot(s.from),Ot(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new St(s),Pt(t)&&a(t,"_locale")&&(o._locale=t._locale),o}function Xt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Zt(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function Kt(t,e){var i;return e=At(e,t),t.isBefore(e)?i=Zt(t,e):(i=Zt(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function Qt(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||($(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=qt(i,o),Jt(this,n,t),this}}function Jt(t,i,o,n){var s=i._milliseconds,r=i._days,a=i._months;n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&E(t,"Date",C(t,"Date")+r*o),a&&q(t,C(t,"Month")+a*o),n&&e.updateOffset(t,r||a)}function $t(t){var e=t||Ot(),i=At(e,this).startOf("day"),o=this.diff(i,"days",!0),n=-6>o?"sameElse":-1>o?"lastWeek":0>o?"lastDay":1>o?"sameDay":2>o?"nextDay":7>o?"nextWeek":"sameElse"; + +return this.format(this.localeData().calendar(n,this,Ot(e)))}function te(){return new p(this)}function ee(t,e){var i;return e=D("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=f(t)?t:Ot(t),+this>+t):(i=f(t)?+t:+Ot(t),i<+this.clone().startOf(e))}function ie(t,e){var i;return e=D("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=f(t)?t:Ot(t),+t>+this):(i=f(t)?+t:+Ot(t),+this.clone().endOf(e)t?Math.ceil(t):Math.floor(t)}function re(t,e,i){var o,n,s=At(t,this),r=6e4*(s.utcOffset()-this.utcOffset());return e=D(e),"year"===e||"month"===e||"quarter"===e?(n=ae(this,s),"quarter"===e?n/=3:"year"===e&&(n/=12)):(o=this-s,n="second"===e?o/1e3:"minute"===e?o/6e4:"hour"===e?o/36e5:"day"===e?(o-r)/864e5:"week"===e?(o-r)/6048e5:o),i?n:se(n)}function ae(t,e){var i,o,n=12*(e.year()-t.year())+(e.month()-t.month()),s=t.clone().add(n,"months");return 0>e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function he(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function de(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(i=Ot([2e3,1]).day(e),o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(o.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function Re(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Pe(t,this.localeData()),this.add(t-e,"d")):e}function Le(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Fe(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Be(t,e){I(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function je(t,e){return e._meridiemParse}function He(t){return"p"===(t+"").toLowerCase().charAt(0)}function Ye(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function We(t){I(0,[t,3],0,"millisecond")}function Ge(){return this._isUTC?"UTC":""}function Ue(){return this._isUTC?"Coordinated Universal Time":""}function Ve(t){return Ot(1e3*t)}function qe(){return Ot.apply(null,arguments).parseZone()}function Xe(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.call(e,i):o}function Ze(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e}function Ke(){return this._invalidDate}function Qe(t){return this._ordinal.replace("%d",t)}function Je(t){return t}function $e(t,e,i,o){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,o):n.replace(/%d/i,t)}function ti(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ei(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function ii(t,e,i,o){var n=k(),s=d().set(o,e);return n[i](s,t)}function oi(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return ii(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=ii(t,s,i,n);return r}function ni(t,e){return oi(t,e,"months",12,"month")}function si(t,e){return oi(t,e,"monthsShort",12,"month")}function ri(t,e){return oi(t,e,"weekdays",7,"day")}function ai(t,e){return oi(t,e,"weekdaysShort",7,"day")}function hi(t,e){return oi(t,e,"weekdaysMin",7,"day")}function di(){var t=this._data;return this._milliseconds=Yo(this._milliseconds),this._days=Yo(this._days),this._months=Yo(this._months),t.milliseconds=Yo(t.milliseconds),t.seconds=Yo(t.seconds),t.minutes=Yo(t.minutes),t.hours=Yo(t.hours),t.months=Yo(t.months),t.years=Yo(t.years),this}function li(t,e,i,o){var n=qt(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function ui(t,e){return li(this,t,e,1)}function ci(t,e){return li(this,t,e,-1)}function pi(){var t,e,i,o=this._milliseconds,n=this._days,s=this._months,r=this._data,a=0;return r.milliseconds=o%1e3,t=se(o/1e3),r.seconds=t%60,e=se(t/60),r.minutes=e%60,i=se(e/60),r.hours=i%24,n+=se(i/24),a=se(fi(n)),n-=se(mi(a)),s+=se(n/30),n%=30,a+=se(s/12),s%=12,r.days=n,r.months=s,r.years=a,this}function fi(t){return 400*t/146097}function mi(t){return 146097*t/400}function vi(t){var e,i,o=this._milliseconds;if(t=D(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+12*fi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(mi(this._months/12)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 24*e*60+o/6e4;case"second":return 24*e*60*60+o/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+o;default:throw new Error("Unknown unit "+t)}}function gi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*m(this._months/12)}function yi(t){return function(){return this.as(t)}}function bi(t){return t=D(t),this[t+"s"]()}function wi(t){return function(){return this._data[t]}}function _i(){return se(this.days()/7)}function xi(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function ki(t,e,i){var o=qt(t).abs(),n=sn(o.as("s")),s=sn(o.as("m")),r=sn(o.as("h")),a=sn(o.as("d")),h=sn(o.as("M")),d=sn(o.as("y")),l=n0,l[4]=i,xi.apply(null,l)}function Mi(t,e){return void 0===rn[t]?!1:void 0===e?rn[t]:(rn[t]=e,!0)}function Di(t){var e=this.localeData(),i=ki(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Oi(){var t=an(this.years()),e=an(this.months()),i=an(this.days()),o=an(this.hours()),n=an(this.minutes()),s=an(this.seconds()+this.milliseconds()/1e3),r=this.asSeconds();return r?(0>r?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(o||n||s?"T":"")+(o?o+"H":"")+(n?n+"M":"")+(s?s+"S":""):"P0D"}var Ti,Ci,Ei=e.momentProperties=[],Si=!1,Pi={},Ii={},Ni=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|x|X|zz?|ZZ?|.)/g,Ai=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,zi={},Ri={},Li=/\d/,Fi=/\d\d/,Bi=/\d{3}/,ji=/\d{4}/,Hi=/[+-]?\d{6}/,Yi=/\d\d?/,Wi=/\d{1,3}/,Gi=/\d{1,4}/,Ui=/[+-]?\d{1,6}/,Vi=/\d+/,qi=/[+-]?\d+/,Xi=/Z|[+-]\d\d:?\d\d/gi,Zi=/[+-]?\d+(\.\d{1,3})?/,Ki=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Qi={},Ji={},$i=0,to=1,eo=2,io=3,oo=4,no=5,so=6;I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),I("MMMM",0,0,function(t){return this.localeData().months(this,t)}),M("month","M"),L("M",Yi),L("MM",Yi,Fi),L("MMM",Ki),L("MMMM",Ki),j(["M","MM"],function(t,e){e[to]=m(t)-1}),j(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[to]=n:i._pf.invalidMonth=t});var ro="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ao="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),ho={};e.suppressDeprecationWarnings=!1;var lo=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,uo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],co=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],po=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=J("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),M("year","y"),L("Y",qi),L("YY",Yi,Fi),L("YYYY",Gi,ji),L("YYYYY",Ui,Hi),L("YYYYYY",Ui,Hi),j(["YYYY","YYYYY","YYYYYY"],$i),j("YY",function(t,i){i[$i]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return m(t)+(m(t)>68?1900:2e3)};var fo=T("FullYear",!1);I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),M("week","w"),M("isoWeek","W"),L("w",Yi),L("ww",Yi,Fi),L("W",Yi),L("WW",Yi,Fi),H(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=m(t)});var mo={dow:0,doy:6};I("DDD",["DDDD",3],"DDDo","dayOfYear"),M("dayOfYear","DDD"),L("DDD",Wi),L("DDDD",Bi),j(["DDD","DDDD"],function(t,e,i){i._dayOfYear=m(t)}),e.ISO_8601=function(){};var vo=J("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Ot.apply(null,arguments);return this>t?this:t}),go=J("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Ot.apply(null,arguments);return t>this?this:t});It("Z",":"),It("ZZ",""),L("Z",Xi),L("ZZ",Xi),j(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Nt(t)});var yo=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var bo=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,wo=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;qt.fn=St.prototype;var _o=Qt(1,"add"),xo=Qt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var ko=J("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Me("gggg","weekYear"),Me("ggggg","weekYear"),Me("GGGG","isoWeekYear"),Me("GGGGG","isoWeekYear"),M("weekYear","gg"),M("isoWeekYear","GG"),L("G",qi),L("g",qi),L("GG",Yi,Fi),L("gg",Yi,Fi),L("GGGG",Gi,ji),L("gggg",Gi,ji),L("GGGGG",Ui,Hi),L("ggggg",Ui,Hi),H(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=m(t)}),H(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),I("Q",0,0,"quarter"),M("quarter","Q"),L("Q",Li),j("Q",function(t,e){e[to]=3*(m(t)-1)}),I("D",["DD",2],"Do","date"),M("date","D"),L("D",Yi),L("DD",Yi,Fi),L("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),j(["D","DD"],eo),j("Do",function(t,e){e[eo]=m(t.match(Yi)[0],10)});var Mo=T("Date",!0);I("d",0,"do","day"),I("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),I("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),I("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),M("day","d"),M("weekday","e"),M("isoWeekday","E"),L("d",Yi),L("e",Yi),L("E",Yi),L("dd",Ki),L("ddd",Ki),L("dddd",Ki),H(["dd","ddd","dddd"],function(t,e,i){var o=i._locale.weekdaysParse(t);null!=o?e.d=o:i._pf.invalidWeekday=t}),H(["d","e","E"],function(t,e,i,o){e[o]=m(t)});var Do="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Oo="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),To="Su_Mo_Tu_We_Th_Fr_Sa".split("_");I("H",["HH",2],0,"hour"),I("h",["hh",2],0,function(){return this.hours()%12||12}),Be("a",!0),Be("A",!1),M("hour","h"),L("a",je),L("A",je),L("H",Yi),L("h",Yi),L("HH",Yi,Fi),L("hh",Yi,Fi),j(["H","HH"],io),j(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),j(["h","hh"],function(t,e,i){e[io]=m(t),i._pf.bigHour=!0});var Co=/[ap]\.?m?\.?/i,Eo=T("Hours",!0);I("m",["mm",2],0,"minute"),M("minute","m"),L("m",Yi),L("mm",Yi,Fi),j(["m","mm"],oo);var So=T("Minutes",!1);I("s",["ss",2],0,"second"),M("second","s"),L("s",Yi),L("ss",Yi,Fi),j(["s","ss"],no);var Po=T("Seconds",!1);I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),We("SSS"),We("SSSS"),M("millisecond","ms"),L("S",Wi,Li),L("SS",Wi,Fi),L("SSS",Wi,Bi),L("SSSS",Vi),j(["S","SS","SSS","SSSS"],function(t,e){e[so]=m(1e3*("0."+t))});var Io=T("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var No=p.prototype;No.add=_o,No.calendar=$t,No.clone=te,No.diff=re,No.endOf=ve,No.format=le,No.from=ue,No.fromNow=ce,No.get=S,No.invalidAt=ke,No.isAfter=ee,No.isBefore=ie,No.isBetween=oe,No.isSame=ne,No.isValid=_e,No.lang=ko,No.locale=pe,No.localeData=fe,No.max=go,No.min=vo,No.parsingFlags=xe,No.set=S,No.startOf=me,No.subtract=xo,No.toArray=we,No.toDate=be,No.toISOString=de,No.toJSON=de,No.toString=he,No.unix=ye,No.valueOf=ge,No.year=fo,No.isLeapYear=rt,No.weekYear=Oe,No.isoWeekYear=Te,No.quarter=No.quarters=Se,No.month=X,No.daysInMonth=Z,No.week=No.weeks=ut,No.isoWeek=No.isoWeeks=ct,No.weeksInYear=Ee,No.isoWeeksInYear=Ce,No.date=Mo,No.day=No.days=Re,No.weekday=Le,No.isoWeekday=Fe,No.dayOfYear=ft,No.hour=No.hours=Eo,No.minute=No.minutes=So,No.second=No.seconds=Po,No.millisecond=No.milliseconds=Io,No.utcOffset=Rt,No.utc=Ft,No.local=Bt,No.parseZone=jt,No.hasAlignedHourOffset=Ht,No.isDST=Yt,No.isDSTShifted=Wt,No.isLocal=Gt,No.isUtcOffset=Ut,No.isUtc=Vt,No.isUTC=Vt,No.zoneAbbr=Ge,No.zoneName=Ue,No.dates=J("dates accessor is deprecated. Use date instead.",Mo),No.months=J("months accessor is deprecated. Use month instead",X),No.years=J("years accessor is deprecated. Use year instead",fo),No.zone=J("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Lt);var Ao=No,zo={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Ro={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},Lo="Invalid date",Fo="%d",Bo=/\d{1,2}/,jo={future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},Ho=g.prototype;Ho._calendar=zo,Ho.calendar=Xe,Ho._longDateFormat=Ro,Ho.longDateFormat=Ze,Ho._invalidDate=Lo,Ho.invalidDate=Ke,Ho._ordinal=Fo,Ho.ordinal=Qe,Ho._ordinalParse=Bo,Ho.preparse=Je,Ho.postformat=Je,Ho._relativeTime=jo,Ho.relativeTime=$e,Ho.pastFuture=ti,Ho.set=ei,Ho.months=G,Ho._months=ro,Ho.monthsShort=U,Ho._monthsShort=ao,Ho.monthsParse=V,Ho.week=ht,Ho._week=mo,Ho.firstDayOfYear=lt,Ho.firstDayOfWeek=dt,Ho.weekdays=Ie,Ho._weekdays=Do,Ho.weekdaysMin=Ae,Ho._weekdaysMin=To,Ho.weekdaysShort=Ne,Ho._weekdaysShort=Oo,Ho.weekdaysParse=ze,Ho.isPM=He,Ho._meridiemParse=Co,Ho.meridiem=Ye,_("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===m(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=J("moment.lang is deprecated. Use moment.locale instead.",_),e.langData=J("moment.langData is deprecated. Use moment.localeData instead.",k);var Yo=Math.abs,Wo=yi("ms"),Go=yi("s"),Uo=yi("m"),Vo=yi("h"),qo=yi("d"),Xo=yi("w"),Zo=yi("M"),Ko=yi("y"),Qo=wi("milliseconds"),Jo=wi("seconds"),$o=wi("minutes"),tn=wi("hours"),en=wi("days"),on=wi("months"),nn=wi("years"),sn=Math.round,rn={s:45,m:45,h:22,d:26,M:11},an=Math.abs,hn=St.prototype;hn.abs=di,hn.add=ui,hn.subtract=ci,hn.as=vi,hn.asMilliseconds=Wo,hn.asSeconds=Go,hn.asMinutes=Uo,hn.asHours=Vo,hn.asDays=qo,hn.asWeeks=Xo,hn.asMonths=Zo,hn.asYears=Ko,hn.valueOf=gi,hn._bubble=pi,hn.get=bi,hn.milliseconds=Qo,hn.seconds=Jo,hn.minutes=$o,hn.hours=tn,hn.days=en,hn.weeks=_i,hn.months=on,hn.years=nn,hn.humanize=Di,hn.toISOString=Oi,hn.toString=Oi,hn.toJSON=Oi,hn.locale=pe,hn.localeData=fe,hn.toIsoString=J("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Oi),hn.lang=ko,I("X",0,0,"unix"),I("x",0,0,"valueOf"),L("x",qi),L("X",Zi),j("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),j("x",function(t,e,i){i._d=new Date(m(t))}),e.version="2.10.2",i(Ot),e.fn=Ao,e.min=Ct,e.max=Et,e.utc=d,e.unix=Ve,e.months=ni,e.isDate=s,e.locale=_,e.invalid=u,e.duration=qt,e.isMoment=f,e.weekdays=ri,e.parseZone=qe,e.localeData=k,e.isDuration=Pt,e.monthsShort=si,e.weekdaysMin=hi,e.defineLocale=x,e.weekdaysShort=ai,e.normalizeUnits=D,e.relativeTimeThreshold=Mi;var dn=e;return dn})}).call(e,i(84)(t))},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null,e=!1;return function i(o,n){function s(t){return t.match(/[^ ]+/g)}function r(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0},e.firstTarget=t;for(var o=t;o&&!i;){var n=o.hammer&&o.hammer._handlers[e.type];if(n)for(var s=0;s0?o._handlers[t]=i:(o._off(t,r),delete o._handlers[t]))}),o},o.emit=function(i,n){e||(t=n.target),o._emit(i,n)},o.destroy=function(){var t=o.element;delete t.hammer,o._handlers={},o._destroy()},o}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(f(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o-1}function _(t){return t.trim().split(/\s+/g)}function x(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function D(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=A(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=z(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=B(a,h),e.distance=F(a,h),I(i,e),e.offsetDirection=L(e.deltaX,e.deltaY),e.scale=r?H(r.pointers,o):1,e.rotation=r?j(r.pointers,o):0,N(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function I(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};(e.eventType===Ct||s.eventType===St)&&(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function N(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Pt&&(h>Tt||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,u=R(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=L(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function A(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function R(t,e,i){return{x:e/t||0,y:i/t||0}}function L(t,e){return t===e?It:vt(t)>=vt(e)?t>0?Nt:At:e>0?zt:Rt}function F(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function B(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return B(e[1],e[0],Ht)-B(t[1],t[0],Ht)}function H(t,e){return F(e[0],e[1],Ht)/F(t[0],t[1],Ht)}function Y(){this.evEl=Wt,this.evWin=Gt,this.allow=!0,this.pressed=!1,C.apply(this,arguments)}function W(){this.evEl=qt,this.evWin=Xt,C.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Kt,this.evWin=Qt,this.started=!1,C.apply(this,arguments)}function U(t,e){var i=k(t.touches),o=k(t.changedTouches);return e&(St|Pt)&&(i=M(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=$t,this.targetIds={},C.apply(this,arguments)}function q(t,e){var i=k(t.touches),o=this.targetIds;if(e&(Ct|Et)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=k(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return b(t.target,h)}),e===Ct)for(n=0;na&&(e.push(t),a=e.length-1):n&(St|Pt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Zt={touchstart:Ct,touchmove:Et,touchend:St,touchcancel:Pt},Kt="touchstart",Qt="touchstart touchmove touchend touchcancel";p(G,C,{handler:function(t){var e=Zt[t.type];if(e===Ct&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(St|Pt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}});var Jt={touchstart:Ct,touchmove:Et,touchend:St,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel";p(V,C,{handler:function(t){var e=Jt[t.type],i=q.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}),p(X,C,{handler:function(t,e,i){var o=i.pointerType==kt,n=i.pointerType==Dt;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(St|Pt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var te=D(pt.style,"touchAction"),ee=te!==a,ie="compute",oe="auto",ne="manipulation",se="none",re="pan-x",ae="pan-y";Z.prototype={set:function(t){t==ie&&(t=this.compute()),ee&&(this.manager.element.style[te]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),K(t.join(" "))},preventDefaults:function(t){if(!ee){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=w(o,se),s=w(o,ae),r=w(o,re);return n||s&&i&Lt||r&&i&Ft?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var he=1,de=2,le=4,ue=8,ce=ue,pe=16,fe=32;Q.prototype={defaults:{},set:function(t){return u(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=tt(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=tt(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=tt(t,this),-1===x(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=tt(t,this);var e=x(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?J(o):""),t)}var i=this,o=this.state;ue>o&&e(!0),e(),o>=ue&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=fe)},canEmit:function(){for(var t=0;ts?Nt:At,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?zt:Rt,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return et.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),p(ot,et,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),p(nt,Q,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(St|Pt)&&!n)this.reset();else if(t.eventType&Ct)this.reset(),this._timer=h(function(){this.state=ce,this.tryEmit()},e.time,this);else if(t.eventType&St)return ce;return fe},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ce&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),p(st,et,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),p(rt,et,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Lt|Ft,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Lt|Ft)?e=t.velocity:i&Lt?e=t.velocityX:i&Ft&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&vt(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(at,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancet.left&&this.shape.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=["shadow","color","fixed"];if(R.selectiveNotDeepExtend(i,t,e),R.mergeOptions(t,e,"shadow"),void 0!==e.color){var o=R.parseColor(e.color);R.fillIfDefined(t.color,o)}void 0!==e.fixed&&("boolean"==typeof e.fixed?(t.fixed.x=e.fixed,t.fixed.y=e.fixed):(void 0!==e.fixed.x&&"boolean"==typeof e.fixed.x&&(t.fixed.x=e.fixed.x),void 0!==e.fixed.y&&"boolean"==typeof e.fixed.y&&(t.fixed.y=e.fixed.y)))}}]),t}();e["default"]=L,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;i=this.options.scaling.label.maxVisible&&(r=Number(this.options.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=o(d,2),u=l[0],c=l[1],p=this._setAlignment(t,i,h,s),f=o(p,2);i=f[0],h=f[1],t.font=(e?"bold ":"")+r+"px "+this.options.font.face,t.fillStyle=u,t.textAlign="center",this.options.font.stroke>0&&(t.lineWidth=this.options.font.stroke,t.strokeStyle=c,t.lineJoin="round");for(var m=0;m0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if("horizontal"!==this.options.font.align){e=0,i=0;var n=2;"top"===this.options.font.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.options.font.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.options.font.color||"#000000",i=this.options.font.strokeColor||"#ffffff";if(t<=this.options.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.options.scaling.label.drawThreshold-t)));e=r.overrideOpacity(e,o),i=r.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.options.font.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=void 0===arguments[2]?0:arguments[2],o=void 0===arguments[3]?0:arguments[3],n=void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.options.font.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.options.font.size,"hanging"===n&&(this.size.top+=.5*this.options.font.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.options.label){o=String(this.options.label).split("\n"),n=o.length,t.font=(e?"bold ":"")+this.options.font.size+"px "+this.options.font.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){if("string"==typeof e.font){var i=e.font.split(" ");t.size=i[0].replace("px",""),t.face=i[1],t.color=i[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;ii.height?(r=i.x+.5*i.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}}],[{key:"parseOptions",value:function(t,e){var i=["id","font","from","hidden","hoverWidth","label","length","line","opacity","physics","selectionWidth","selfReferenceSize","to","title","value","width"];if(f.selectiveDeepExtend(i,t,e),f.mergeOptions(t,e,"smooth"),f.mergeOptions(t,e,"dashes"),f.mergeOptions(t,e,"shadow"),void 0!==e.scaling&&(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),f.mergeOptions(t.scaling,e.scaling,"label")),void 0!==e.arrows)if("string"==typeof e.arrows){var o=e.arrows.toLowerCase();-1!=o.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=o.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=o.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!=typeof e.arrows)throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));f.mergeOptions(t.arrows,e.arrows,"to"),f.mergeOptions(t.arrows,e.arrows,"middle"),f.mergeOptions(t.arrows,e.arrows,"from")}if(void 0!==e.color)if(f.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var n=!1;void 0!==e.color.color&&(t.color.color=e.color.color,n=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,n=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,n=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&n===!0&&(t.color.inherit=!1)}}}]),t}();e["default"]=m,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;is;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i,o,n;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1*Math.random(),e=t);var s=this.options.gravitationalConstant*n.mass*o.options.mass/(t*t*t),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i,o=e.length,n=Number.MAX_VALUE,s=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var u=Math.abs(r-n)-Math.abs(a-s);u>0?(s-=.5*u,a+=.5*u):(n+=.5*u,r-=.5*u);var c=1e-5,p=Math.max(c,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(g.root),h=0;o>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i,o,n,s,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=s,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;ii&&(s=.5*u>i?1:c*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=s,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;ii?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,c[r.id].x-=o,c[r.id].y-=n,c[a.id].x+=o,c[a.id].y+=n}}}]),t}();e["default"]=s,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom}},{key:"configureKeyboardBindings",value:function(){void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!1}):this.keycharm=a({container:this.canvas.frame,preventDefault:!1}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",this.bindToRedraw.bind(this,"_moveUp"),"keydown"),this.keycharm.bind("down",this.bindToRedraw.bind(this,"_moveDown"),"keydown"),this.keycharm.bind("left",this.bindToRedraw.bind(this,"_moveLeft"),"keydown"),this.keycharm.bind("right",this.bindToRedraw.bind(this,"_moveRight"),"keydown"),this.keycharm.bind("=",this.bindToRedraw.bind(this,"_zoomIn"),"keydown"),this.keycharm.bind("num+",this.bindToRedraw.bind(this,"_zoomIn"),"keydown"),this.keycharm.bind("num-",this.bindToRedraw.bind(this,"_zoomOut"),"keydown"),this.keycharm.bind("-",this.bindToRedraw.bind(this,"_zoomOut"),"keydown"),this.keycharm.bind("[",this.bindToRedraw.bind(this,"_zoomOut"),"keydown"),this.keycharm.bind("]",this.bindToRedraw.bind(this,"_zoomIn"),"keydown"),this.keycharm.bind("pageup",this.bindToRedraw.bind(this,"_zoomIn"),"keydown"),this.keycharm.bind("pagedown",this.bindToRedraw.bind(this,"_zoomOut"),"keydown"),this.keycharm.bind("up",this.unbindFromRedraw.bind(this,"_moveUp"),"keyup"),this.keycharm.bind("down",this.unbindFromRedraw.bind(this,"_moveDown"),"keyup"),this.keycharm.bind("left",this.unbindFromRedraw.bind(this,"_moveLeft"),"keyup"),this.keycharm.bind("right",this.unbindFromRedraw.bind(this,"_moveRight"),"keyup"),this.keycharm.bind("=",this.unbindFromRedraw.bind(this,"_zoomIn"),"keyup"),this.keycharm.bind("num+",this.unbindFromRedraw.bind(this,"_zoomIn"),"keyup"),this.keycharm.bind("num-",this.unbindFromRedraw.bind(this,"_zoomOut"),"keyup"),this.keycharm.bind("-",this.unbindFromRedraw.bind(this,"_zoomOut"),"keyup"),this.keycharm.bind("[",this.unbindFromRedraw.bind(this,"_zoomOut"),"keyup"),this.keycharm.bind("]",this.unbindFromRedraw.bind(this,"_zoomIn"),"keyup"),this.keycharm.bind("pageup",this.unbindFromRedraw.bind(this,"_zoomIn"),"keyup"),this.keycharm.bind("pagedown",this.unbindFromRedraw.bind(this,"_zoomOut"),"keyup")))}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},n=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),rs;s++)for(r=0;rp?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;nthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"===o&&(t=i*s>n?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"===o&&(e=i*n>s?this.from.y:e));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,e=this.to.ythis.imageObj.height?(i=this.imageObj.width/this.imageObj.height,t=2*this.options.size*i||this.imageObj.width,e=2*this.options.size||this.imageObj.height):(i=this.imageObj.height/this.imageObj.width,t=2*this.options.size||this.imageObj.width,e=2*this.options.size*i||this.imageObj.height),this.width=t,this.height=e}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?a:r,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}},{key:"_drawImageAtPosition",value:function(t){0!=this.imageObj.width&&(t.globalAlpha=1,this.enableShadow(t),t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),this.disableShadow(t))}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){var o=function(t){return t&&t.__esModule?t:{"default":t}},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;i=l&&h>d;){var m=.5*(l+u);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)r?f===!1?l=m:u=m:f===!1?u=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=void 0,h=void 0;a=r.x,h=r.y;var d=1e9,l=void 0,u=void 0,c=void 0,p=void 0,f=void 0,m=t,v=e;for(u=1;10>u;u++)c=.1*u,p=Math.pow(1-c,2)*t+2*c*(1-c)*a+Math.pow(c,2)*i,f=Math.pow(1-c,2)*e+2*c*(1-c)*h+Math.pow(c,2)*o,u>0&&(l=this._getDistanceToLine(m,v,p,f,n,s),d=d>l?l:d),m=p,v=f;return d}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){var o=function(t,e){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t)){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}throw new TypeError("Invalid attempt to destructure non-iterable instance")},n=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s=function(){function t(t,e){for(var i=0;io.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,u=void 0,c=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),u=this._pointOnCircle(o,n,l,g),c=Math.atan2(t.y-u.y,t.x-u.x),p=t.distanceToBorder(e,c),f=Math.sqrt(Math.pow(u.x-t.x,2)+Math.pow(u.y-t.y,2)),m=p-f,!(Math.abs(m)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return u.t=g,u}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t){var e=this.options.color;if(e.inherit!==!1){if("both"===e.inherit&&this.from.id!==this.to.id){var i=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),o=void 0,n=void 0;return o=this.from.options.color.highlight.border,n=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(o=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),n=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?n=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(o=this.from.options.color.border),i.addColorStop(0,o),i.addColorStop(1,n),i}this.colorDirty===!0&&("to"===e.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,e.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,e.opacity)))}else this.colorDirty===!0&&(this.color.highlight=e.highlight,this.color.hover=e.hover,this.color.color=r.overrideOpacity(e.color,e.opacity));return this.colorDirty=!1,this.selected===!0?this.color.highlight:this.hover===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,n,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,n,s,r,a);else{var d=this._getCircleData(),l=o(d,3),u=l[0],c=l[1],p=l[2],f=u-s,m=c-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"drawArrowHead",value:function(t,e,i,n,s){t.strokeStyle=this.getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(n,s);var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0;if("from"===e?(d=this.from,l=this.to,u=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(d=this.to,l=this.from,u=-.1,c=this.options.arrows.to.scaleFactor):(d=this.to,l=this.from,c=this.options.arrows.middle.scaleFactor),d!=l){if("middle"!==e)if(this.options.smooth.enabled===!0){h=this.findBorderPosition(d,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);r=Math.atan2(h.y-p.y,h.x-p.x)}else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.6,i);a=(10+5*this.options.width)*c,t.arrow(h.x,h.y,r,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}else{var f=void 0,m=void 0,v=this._getCircleData(t),g=o(v,3),y=g[0],b=g[1],w=g[2];"from"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),f=-2*m.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),f=-2*m.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(m=this._pointOnCircle(y,b,w,.175),f=3.9269908169872414);var _=(10+5*this.options.width)*c;t.arrow(m.x,m.y,f,_),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0.5)",t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){Object.defineProperty(e,"__esModule",{value:!0});var o="string",n="boolean",s="number",r="array",a="object",h="dom",d="function",l="undefined",u={canvas:{width:{string:o},height:{string:o},__type__:{object:a}},rendering:{hideEdgesOnDrag:{"boolean":n},hideNodesOnDrag:{"boolean":n},__type__:{object:a}},clustering:{},configuration:{filter:{"boolean":n,string:["nodes","edges","layout","physics","manipulation","interaction","selection","rendering"],array:r},container:{dom:h},__type__:{object:a,string:o,array:r,"boolean":n}},edges:{arrows:{to:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a}},middle:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a}},from:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a}},__type__:{string:["from","to","middle"],object:a}},color:{color:{string:o},highlight:{string:o},hover:{string:o},inherit:{string:["from","to","both"],"boolean":n},opacity:{number:s},__type__:{object:a}},dashes:{enabled:{"boolean":n},pattern:{array:r},__type__:{"boolean":n,object:a}},font:{color:{string:o},size:{number:s},face:{string:o},background:{string:o},stroke:{number:s},strokeColor:{string:o},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:a}},hidden:{"boolean":n},hoverWidth:{fn:d,number:s},label:{string:o,undef:l},length:{number:s,undef:l},physics:{"boolean":n},scaling:{min:{number:s},max:{number:s},label:{enabled:{"boolean":n},min:{number:s},max:{number:s},maxVisible:{number:s},drawThreshold:{number:s},__type__:{object:a,"boolean":n}},customScalingFunction:{fn:d},__type__:{object:a}},selectionWidth:{fn:d,number:s},selfReferenceSize:{number:s},shadow:{enabled:{"boolean":n},size:{number:s},x:{number:s},y:{number:s},__type__:{object:a,"boolean":n}},smooth:{enabled:{"boolean":n},dynamic:{"boolean":n},type:{string:o},roundness:{number:s},__type__:{object:a,"boolean":n}},title:{string:o,undef:l},width:{number:s},value:{number:s,undef:l},__type__:{object:a}},groups:{useDefaultGroups:{"boolean":n},__any__:["__ref__","nodes"],__type__:{object:a}},interaction:{dragNodes:{"boolean":n},dragView:{"boolean":n},zoomView:{"boolean":n},hoverEnabled:{"boolean":n},navigationButtons:{"boolean":n},tooltipDelay:{number:s},keyboard:{enabled:{"boolean":n},speed:{x:{number:s},y:{number:s},zoom:{number:s},__type__:{object:a}},bindToWindow:{"boolean":n},__type__:{object:a,"boolean":n}},__type__:{object:a}},layout:{randomSeed:void 0,hierarchical:{enabled:{"boolean":n},levelSeparation:{number:s},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:a,"boolean":n}},__type__:{object:a}},manipulation:{enabled:{"boolean":n},initiallyActive:{"boolean":n},locale:{string:o},locales:{object:a},functionality:{addNode:{"boolean":n},addEdge:{"boolean":n},editNode:{"boolean":n},editEdge:{"boolean":n},deleteNode:{"boolean":n},deleteEdge:{"boolean":n},__type__:{object:a}},handlerFunctions:{addNode:{fn:d,undef:l},addEdge:{fn:d,undef:l},editNode:{fn:d,undef:l},editEdge:{fn:d,undef:l},deleteNode:{fn:d,undef:l},deleteEdge:{fn:d,undef:l},__type__:{object:a}},controlNodeStyle:["__ref__","nodes"],__type__:{object:a,"boolean":n}},nodes:{borderWidth:{number:s},borderWidthSelected:{number:s,undef:l},brokenImage:{string:o,undef:l},color:{border:{string:o},background:{string:o},highlight:{border:{string:o},background:{string:o},__type__:{object:a,string:o}},hover:{border:{string:o},background:{string:o},__type__:{object:a,string:o}},__type__:{object:a,string:o}},fixed:{x:{"boolean":n},y:{"boolean":n},__type__:{object:a,"boolean":n}},font:{color:{string:o},size:{number:s},face:{string:o},background:{string:o},stroke:{number:s},strokeColor:{string:o},__type__:{object:a}},group:{string:o,number:s,undef:l},hidden:{"boolean":n},icon:{face:{string:o},code:{string:o},size:{number:s},color:{string:o},__type__:{object:a}},image:{string:o,undef:l},label:{string:o,undef:l},level:{number:s,undef:l},mass:{number:s},physics:{"boolean":n},scaling:{min:{number:s},max:{number:s},label:{enabled:{"boolean":n},min:{number:s},max:{number:s},maxVisible:{number:s},drawThreshold:{number:s},__type__:{object:a,"boolean":n}},customScalingFunction:{fn:d},__type__:{object:a}},shadow:{enabled:{"boolean":n},size:{number:s},x:{number:s},y:{number:s},__type__:{object:a,"boolean":n}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},size:{number:s},title:{string:o,undef:l},value:{number:s,undef:l},x:{number:s},y:{number:s},__type__:{object:a}},physics:{barnesHut:{gravitationalConstant:{number:s},centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},damping:{number:s},__type__:{object:a}},repulsion:{centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},nodeDistance:{number:s},damping:{number:s},__type__:{object:a}},hierarchicalRepulsion:{centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},nodeDistance:{number:s},damping:{number:s},__type__:{object:a}},maxVelocity:{number:s},minVelocity:{number:s},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion"]},stabilization:{enabled:{"boolean":n},iterations:{number:s},updateInterval:{number:s},onlyDynamicEdges:{"boolean":n},fit:{"boolean":n},__type__:{object:a,"boolean":n}},timestep:{number:s},__type__:{object:a,"boolean":n}},selection:{select:{"boolean":n},selectConnectedEdges:{"boolean":n},__type__:{object:a}},view:{},__type__:{object:a}};u.groups.__any__=u.nodes,u.manipulation.controlNodeStyle=u.nodes,e["default"]=u,t.exports=e["default"]}])}); //# sourceMappingURL=vis.map diff --git a/docs/css/newdocs.css b/docs/css/newdocs.css index 214358dd..411493c5 100644 --- a/docs/css/newdocs.css +++ b/docs/css/newdocs.css @@ -80,6 +80,7 @@ td.properties { } p { + min-width:400px; max-width:1000px; } diff --git a/examples/network/01_basic_usage.html b/examples/network/01_basic_usage.html index 4576e1c7..964d4d9f 100644 --- a/examples/network/01_basic_usage.html +++ b/examples/network/01_basic_usage.html @@ -44,10 +44,9 @@ edges: edges }; var options = { - manipulation: true, - groups:{'bla':{color:{background:'red'}, borderWidth:5}} - -// physics:{stabilization:true} + manipulation: 'hello', + physics:{barnesHut:{gravitationslPull:34}, solver:'banana'}, + groups:{'bla':{color:{backsground:'red'}, borderWidth:5}} } var network = new vis.Network(container, data, options); // network.setOptions({nodes:{color:'red'}}) diff --git a/lib/network/Network.js b/lib/network/Network.js index 59a66c21..d994797d 100644 --- a/lib/network/Network.js +++ b/lib/network/Network.js @@ -24,6 +24,8 @@ import SelectionHandler from "./modules/SelectionHandler"; import LayoutEngine from "./modules/LayoutEngine"; import ManipulationSystem from "./modules/ManipulationSystem"; import ConfigurationSystem from "./modules/ConfigurationSystem"; +import Validator from "./modules/Validator"; +import {printStyle} from "./modules/Validator"; /** * @constructor Network @@ -132,6 +134,13 @@ Emitter(Network.prototype); */ Network.prototype.setOptions = function (options) { if (options !== undefined) { + + let errorFound = Validator.validate(options); + if (errorFound === true) { + options = {}; + console.log('%cErrors have been found in the supplied options object. None of the options will be used.', printStyle); + } + // the hierarchical system can adapt the edges and the physics to it's own options because not all combinations work with the hierarichical system. options = this.layoutEngine.setOptions(options.layout, options); diff --git a/lib/network/modules/ConfigurationSystem.js b/lib/network/modules/ConfigurationSystem.js index e540898c..7351da1b 100644 --- a/lib/network/modules/ConfigurationSystem.js +++ b/lib/network/modules/ConfigurationSystem.js @@ -195,7 +195,7 @@ class ConfigurationSystem { select: true, selectConnectedEdges: true }, - renderer: { + rendering: { hideEdgesOnDrag: false, hideNodesOnDrag: false } @@ -209,7 +209,7 @@ class ConfigurationSystem { manipulation:{}, physics:{}, selection:{}, - renderer:{}, + rendering:{}, configure: false, configureContainer: undefined }; @@ -241,7 +241,7 @@ class ConfigurationSystem { util.deepExtend(this.actualOptions.manipulation, this.network.manipulation.options, true); util.deepExtend(this.actualOptions.physics, this.network.physics.options, true); util.deepExtend(this.actualOptions.selection, this.network.selectionHandler.selection, true); - util.deepExtend(this.actualOptions.renderer, this.network.renderer.selection, true); + util.deepExtend(this.actualOptions.rendering, this.network.renderer.selection, true); this.container = this.network.body.container; @@ -608,7 +608,7 @@ class ConfigurationSystem { for (let subObj in obj) { if (obj.hasOwnProperty(subObj)) { let item = obj[subObj]; - let newPath = this._addToPath(path, subObj); + let newPath = util.copyAndExtendArray(path, subObj); let value = this._getValue(newPath); if (item instanceof Array) { @@ -632,7 +632,7 @@ class ConfigurationSystem { if (draw === true) { // initially collapse options with an disabled enabled option. if (item.enabled !== undefined) { - let enabledPath = this._addToPath(newPath, 'enabled'); + let enabledPath = util.copyAndExtendArray(newPath, 'enabled'); let enabledValue = this._getValue(enabledPath); if (enabledValue === true) { let label = this._makeLabel(subObj, newPath, true); diff --git a/lib/network/modules/Validator.js b/lib/network/modules/Validator.js new file mode 100644 index 00000000..64717c6c --- /dev/null +++ b/lib/network/modules/Validator.js @@ -0,0 +1,256 @@ +var util = require('../../util'); + + +import allOptions from './components/AllOptions.js' +let errorFound = false; +let printStyle = 'background: #FFeeee; color: #dd0000'; +/** + * Used to validate options. + */ +class Validator { + constructor() { + } + + /** + * Main function to be called + * @param options + * @param subObject + * @returns {boolean} + */ + static validate(options, subObject) { + errorFound = false; + let usedOptions = allOptions; + if (subObject !== undefined) { + usedOptions = allOptions[subObject]; + } + Validator.parse(options, usedOptions, []); + return errorFound; + } + + + /** + * Will traverse an object recursively and check every value + * @param options + * @param referenceOptions + * @param path + */ + static parse(options, referenceOptions, path) { + for (let option in options) { + if (options.hasOwnProperty(option)) { + Validator.check(option, options, referenceOptions, path); + } + } + } + + + /** + * Check every value. If the value is an object, call the parse function on that object. + * @param option + * @param options + * @param referenceOptions + * @param path + */ + static check(option, options, referenceOptions, path) { + if (referenceOptions[option] === undefined && referenceOptions.__any__ === undefined) { + Validator.getSuggestion(option, referenceOptions, path); + } + else if (referenceOptions[option] === undefined && referenceOptions.__any__ !== undefined) { + // __any__ is a wildcard. Any value is accepted and will be further analysed by reference. + if (Validator.getType(options[option]) === 'object') { + util.copyAndExtendArray(path, option); + Validator.checkFields(option, options, referenceOptions, '__any__', referenceOptions['__any__'].__type__, path, true); + } + } + else { + // Since all options in the reference are objects, we can check whether they are supposed to be object to look for the __type__ field. + if (referenceOptions[option].__type__ !== undefined) { + util.copyAndExtendArray(path, option); + // if this should be an object, we check if the correct type has been supplied to account for shorthand options. + Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option].__type__, path, true); + } + else { + Validator.checkFields(option, options, referenceOptions, option, referenceOptions[option], path, false); + } + } + } + + /** + * + * @param {String} option | the option property + * @param {Object} options | The supplied options object + * @param {Object} referenceOptions | The reference options containing all options and their allowed formats + * @param {String} referenceOption | Usually this is the same as option, except when handling an __any__ tag. + * @param {String} refOptionType | This is the type object from the reference options + * @param path + * @param recursive + */ + static checkFields(option, options, referenceOptions, referenceOption, refOptionObj, path, recursive) { + let optionType = Validator.getType(options[option]); + let refOptionType = refOptionObj[optionType]; + if (refOptionType !== undefined) { + // if the type is correct, we check if it is supposed to be one of a few select values + if (Validator.getType(refOptionType) === 'array') { + if (refOptionType.indexOf(options[option]) === -1) { + console.log('%cInvalid option detected in "' + option + '".' + + ' Allowed values are:' + Validator.print(refOptionType) + ' not "' + options[option] + '". ' + Validator.printLocation(path, option), printStyle); + errorFound = true; + } + else if (recursive === true) { + Validator.parse(options[option], referenceOptions[referenceOption], path); + } + } + else if (recursive === true) { + Validator.parse(options[option], referenceOptions[referenceOption], path); + } + } + else { + // type of the field is incorrect + console.log('%cInvalid type received for "' + option + '". Expected: ' + Validator.print(Object.keys(referenceOptions[referenceOption].__type__)) + '. Received [' + optionType + '] "' + options[option] + '"' + Validator.printLocation(path, option), printStyle); + errorFound = true; + } + } + + + static getType(object) { + var type = typeof object; + + if (type === 'object') { + if (object === null) { + return 'null'; + } + if (object instanceof Boolean) { + return 'boolean'; + } + if (object instanceof Number) { + return 'number'; + } + if (object instanceof String) { + return 'string'; + } + if (Array.isArray(object)) { + return 'array'; + } + if (object instanceof Date) { + return 'date'; + } + if (object.nodeType !== undefined) { + return 'dom' + } + return 'object'; + } + else if (type === 'number') { + return 'number'; + } + else if (type === 'boolean') { + return 'boolean'; + } + else if (type === 'string') { + return 'string'; + } + else if (type === undefined) { + return 'undefined'; + } + return type; + } + + static getSuggestion(option, options, path) { + let closestMatch = ''; + let min = 1e9; + let threshold = 10; + for (let op in options) { + let distance = Validator.levenshteinDistance(option, op); + if (min > distance && distance < threshold) { + closestMatch = op; + min = distance; + + } + } + + if (min < threshold) { + console.log('%cUnknown option detected: "' + option + '". Did you mean "' + closestMatch + '"?' + Validator.printLocation(path, option), printStyle); + } + else { + console.log('%cUnknown option detected: "' + option + '". Did you mean one of these: ' + Validator.print(Object.keys(options)) + Validator.printLocation(path, option), printStyle); + } + + errorFound = true; + return closestMatch; + } + + static printLocation(path, option) { + let str = '\n\nProblem value found at: \noptions = {\n'; + for (let i = 0; i < path.length; i++) { + for (let j = 0; j < i + 1; j++) { + str += ' '; + } + str += path[i] + ': {\n' + } + for (let j = 0; j < path.length + 1; j++) { + str += ' '; + } + str += option + '\n'; + for (let i = 0; i < path.length + 1; i++) { + for (let j = 0; j < path.length - i; j++) { + str += ' '; + } + str += '}\n' + } + return str + '\n\n'; + } + + static print(options) { + return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, "").replace(/(\,)/g, ', ') + } + + + // Compute the edit distance between the two given strings + // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript + /* + Copyright (c) 2011 Andrei Mackenzie + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + static levenshteinDistance(a, b) { + if (a.length === 0) return b.length; + if (b.length === 0) return a.length; + + var matrix = []; + + // increment along the first column of each row + var i; + for (i = 0; i <= b.length; i++) { + matrix[i] = [i]; + } + + // increment each column in the first row + var j; + for (j = 0; j <= a.length; j++) { + matrix[0][j] = j; + } + + // Fill in the rest of the matrix + for (i = 1; i <= b.length; i++) { + for (j = 1; j <= a.length; j++) { + if (b.charAt(i - 1) == a.charAt(j - 1)) { + matrix[i][j] = matrix[i - 1][j - 1]; + } else { + matrix[i][j] = Math.min(matrix[i - 1][j - 1] + 1, // substitution + Math.min(matrix[i][j - 1] + 1, // insertion + matrix[i - 1][j] + 1)); // deletion + } + } + } + + return matrix[b.length][a.length]; + } + +; +} + + +export default Validator; +export {printStyle} \ No newline at end of file diff --git a/lib/network/modules/components/AllOptions.js b/lib/network/modules/components/AllOptions.js new file mode 100644 index 00000000..53505afe --- /dev/null +++ b/lib/network/modules/components/AllOptions.js @@ -0,0 +1,288 @@ +/** + * __any__ + * __type__ + */ +let string = 'string'; +let boolean = 'boolean'; +let number = 'number'; +let array = 'array'; +let object = 'object'; +let dom = 'dom'; +let fn = 'function'; +let undef = 'undefined'; + + +let allOptions = { + canvas: { + width: {string}, + height: {string}, + __type__: {object} + }, + rendering: { + hideEdgesOnDrag: {boolean}, + hideNodesOnDrag: {boolean}, + __type__: {object} + }, + clustering: {}, + configuration: { + filter: {boolean,string:['nodes','edges','layout','physics','manipulation','interaction','selection','rendering'],array}, + container: {dom}, + __type__: {object,string,array,boolean} + }, + edges: { + arrows: { + to: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}}, + middle: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}}, + from: {enabled: {boolean}, scaleFactor: {number}, __type__: {object}}, + __type__: {string:['from','to','middle'],object} + }, + color: { + color: {string}, + highlight: {string}, + hover: {string}, + inherit: {string:['from','to','both'],boolean}, + opacity: {number}, + __type__: {object} + }, + dashes: { + enabled: {boolean}, + pattern: {array}, + __type__: {boolean,object} + }, + font: { + color: {string}, + size: {number}, // px + face: {string}, + background: {string}, + stroke: {number}, // px + strokeColor: {string}, + align: {string:['horizontal','top','middle','bottom']}, + __type__: {object} + }, + hidden: {boolean}, + hoverWidth: {fn,number}, + label: {string,undef}, + length: {number,undef}, + physics: {boolean}, + scaling: { + min: {number}, + max: {number}, + label: { + enabled: {boolean}, + min: {number}, + max: {number}, + maxVisible: {number}, + drawThreshold: {number}, + __type__: {object,boolean} + }, + customScalingFunction: {fn}, + __type__: {object} + }, + selectionWidth: {fn,number}, + selfReferenceSize: {number}, + shadow: { + enabled: {boolean}, + size: {number}, + x: {number}, + y: {number}, + __type__: {object,boolean} + }, + smooth: { + enabled: {boolean}, + dynamic: {boolean}, + type: {string}, + roundness: {number}, + __type__: {object,boolean} + }, + title: {string, undef}, + width: {number}, + value: {number, undef}, + __type__: {object} + }, + groups: { + useDefaultGroups: {boolean}, + __any__: ['__ref__','nodes'], + __type__: {object} + }, + interaction: { + dragNodes: {boolean}, + dragView: {boolean}, + zoomView: {boolean}, + hoverEnabled: {boolean}, + navigationButtons: {boolean}, + tooltipDelay: {number}, + keyboard: { + enabled: {boolean}, + speed: {x: {number}, y: {number}, zoom: {number}, __type__: {object}}, + bindToWindow: {boolean}, + __type__: {object,boolean} + }, + __type__: {object} + }, + layout: { + randomSeed: undefined, + hierarchical: { + enabled: {boolean}, + levelSeparation: {number}, + direction: {string:['UD','DU','LR','RL']}, // UD, DU, LR, RL + sortMethod: {string:['hubsize','directed']}, // hubsize, directed + __type__: {object,boolean} + }, + __type__: {object} + }, + manipulation: { + enabled: {boolean}, + initiallyActive: {boolean}, + locale: {string}, + locales: {object}, + functionality: { + addNode: {boolean}, + addEdge: {boolean}, + editNode: {boolean}, + editEdge: {boolean}, + deleteNode: {boolean}, + deleteEdge: {boolean}, + __type__: {object} + }, + handlerFunctions: { + addNode: {fn,undef}, + addEdge: {fn,undef}, + editNode: {fn,undef}, + editEdge: {fn,undef}, + deleteNode: {fn,undef}, + deleteEdge: {fn,undef}, + __type__: {object} + }, + controlNodeStyle: ['__ref__','nodes'], + __type__: {object,boolean} + }, + nodes: { + borderWidth: {number}, + borderWidthSelected: {number,undef}, + brokenImage: {string,undef}, + color: { + border: {string}, + background: {string}, + highlight: { + border: {string}, + background: {string}, + __type__: {object,string} + }, + hover: { + border: {string}, + background: {string}, + __type__: {object,string} + }, + __type__: {object,string} + }, + fixed: { + x: {boolean}, + y: {boolean}, + __type__: {object,boolean} + }, + font: { + color: {string}, + size: {number}, // px + face: {string}, + background: {string}, + stroke: {number}, // px + strokeColor: {string}, + __type__: {object} + }, + group: {string,number,undef}, + hidden: {boolean}, + icon: { + face: {string}, + code: {string}, //'\uf007', + size: {number}, //50, + color: {string}, + __type__: {object} + }, + id: {string, number}, + image: {string,undef}, // --> URL + label: {string,undef}, + level: {number,undef}, + mass: {number}, + physics: {boolean}, + scaling: { + min: {number}, + max: {number}, + label: { + enabled: {boolean}, + min: {number}, + max: {number}, + maxVisible: {number}, + drawThreshold: {number}, + __type__: {object, boolean} + }, + customScalingFunction: {fn}, + __type__: {object} + }, + shadow: { + enabled: {boolean}, + size: {number}, + x: {number}, + y: {number}, + __type__: {object,boolean} + }, + shape: {string:['ellipse', 'circle', 'database', 'box', 'text','image', 'circularImage','diamond', 'dot', 'star', 'triangle','triangleDown', 'square','icon']}, + size: {number}, + title: {string,undef}, + value: {number,undef}, + x: {number}, + y: {number}, + __type__: {object} + }, + physics: { + barnesHut: { + gravitationalConstant: {number}, + centralGravity: {number}, + springLength: {number}, + springConstant: {number}, + damping: {number}, + __type__: {object} + }, + repulsion: { + centralGravity: {number}, + springLength: {number}, + springConstant: {number}, + nodeDistance: {number}, + damping: {number}, + __type__: {object} + }, + hierarchicalRepulsion: { + centralGravity: {number}, + springLength: {number}, + springConstant: {number}, + nodeDistance: {number}, + damping: {number}, + __type__: {object} + }, + maxVelocity: {number}, + minVelocity: {number}, // px/s + solver: {string:['barnesHut','repulsion','hierarchicalRepulsion']}, + stabilization: { + enabled: {boolean}, + iterations: {number}, // maximum number of iteration to stabilize + updateInterval: {number}, + onlyDynamicEdges: {boolean}, + fit: {boolean}, + __type__: {object,boolean} + }, + timestep: {number}, + __type__: {object,boolean} + }, + selection: { + select: {boolean}, + selectConnectedEdges: {boolean}, + __type__: {object} + }, + view: {}, + __type__: {object} +}; + + +allOptions.groups.__any__ = allOptions.nodes; +allOptions.manipulation.controlNodeStyle = allOptions.nodes; + +export default allOptions; \ No newline at end of file diff --git a/lib/network/modules/components/Edge.js b/lib/network/modules/components/Edge.js index e6f8df2e..0f775237 100644 --- a/lib/network/modules/components/Edge.js +++ b/lib/network/modules/components/Edge.js @@ -70,6 +70,7 @@ class Edge { if (options.from !== undefined) {this.fromId = options.from;} if (options.to !== undefined) {this.toId = options.to;} if (options.title !== undefined) {this.title = options.title;} + if (options.value !== undefined) {options.value = parseInt(options.value);} // A node is connected when it has a from and to node that both exist in the network.body.nodes. diff --git a/lib/network/modules/components/Node.js b/lib/network/modules/components/Node.js index 2efed877..98b3eba9 100644 --- a/lib/network/modules/components/Node.js +++ b/lib/network/modules/components/Node.js @@ -16,6 +16,9 @@ import Star from './nodes/shapes/Star' import Text from './nodes/shapes/Text' import Triangle from './nodes/shapes/Triangle' import TriangleDown from './nodes/shapes/TriangleDown' +import Validator from "../Validator"; +import {printStyle} from "../Validator"; + /** * @class Node @@ -116,9 +119,10 @@ class Node { throw "Node must have an id"; } - if (options.x !== undefined) {this.x = options.x; this.predefinedPosition = true;} - if (options.y !== undefined) {this.y = options.y; this.predefinedPosition = true;} + if (options.x !== undefined) {this.x = parseInt(options.x); this.predefinedPosition = true;} + if (options.y !== undefined) {this.y = parseInt(options.y); this.predefinedPosition = true;} if (options.size !== undefined) {this.baseSize = options.size;} + if (options.value !== undefined) {options.value = parseInt(options.value);} // this transforms all shorthands into fully defined options Node.parseOptions(this.options,options); diff --git a/lib/util.js b/lib/util.js index 56ad44df..62ec00c6 100644 --- a/lib/util.js +++ b/lib/util.js @@ -489,7 +489,7 @@ exports.getType = function(object) { var type = typeof object; if (type == 'object') { - if (object == null) { + if (object === null) { return 'null'; } if (object instanceof Boolean) { @@ -518,10 +518,31 @@ exports.getType = function(object) { else if (type == 'string') { return 'String'; } + else if (type === undefined) { + return 'undefined'; + } + return type; }; + +/** + * Used to extend an array and copy it. This is used to propagate paths recursively. + * + * @param arr + * @param newValue + * @returns {Array} + */ +exports.copyAndExtendArray = function(arr,newValue) { + let newArr = []; + for (let i = 0; i < arr.length; i++) { + newArr.push(arr[i]); + } + newArr.push(newValue); + return newArr; +} + /** * Retrieve the absolute left value of a DOM element * @param {Element} elem A dom element, for example a div