From 43b2fb5b9107c7fc9d9eeca69cd353a80bc58582 Mon Sep 17 00:00:00 2001 From: jos Date: Fri, 22 May 2015 14:38:24 +0200 Subject: [PATCH] Released version 4.0.0 --- HISTORY.md | 16 +- bower.json | 2 +- dist/vis.js | 7810 +++++++++++++++++++++++------------------------ dist/vis.map | 2 +- dist/vis.min.js | 43 +- package.json | 2 +- 6 files changed, 3905 insertions(+), 3970 deletions(-) diff --git a/HISTORY.md b/HISTORY.md index 4c9fcdcc..56a3270a 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,7 +2,7 @@ http://visjs.org -## not yet released, version 4.0.0-SNAPSHOT +## 2015-05-22, version 4.0.0 ### General @@ -71,20 +71,6 @@ it future proof for maintainability, extendability and clarity. A summary of new Array or DataTable. -## not yet released, version 3.12.1-SNAPSHOT - -### Timeline - -- Fixed #761: Timeline and Graph2d throwing an error when locale is not found. - Gives a warning message instead. -- Fixed #782: Contents of items created from a template being unnecessary - recreated on click, causing mouse events to get lost. - -### Network - -- Fixed titles not working when any of the nodes has id `0`. - - ## 2015-04-07, version 3.12.0 ### Network diff --git a/bower.json b/bower.json index 7d53e2ad..110af47b 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "vis", - "version": "4.0.0-SNAPSHOT", + "version": "4.0.0", "main": ["dist/vis.min.js", "dist/vis.min.css"], "description": "A dynamic, browser-based visualization library.", "homepage": "http://visjs.org/", diff --git a/dist/vis.js b/dist/vis.js index ebd484cb..34a883d9 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,7 +4,7 @@ * * A dynamic, browser-based visualization library. * - * @version 4.0.0-SNAPSHOT + * @version 4.0.0 * @date 2015-05-22 * * @license @@ -84,7 +84,7 @@ return /******/ (function(modules) { // webpackBootstrap // utils 'use strict'; - exports.util = __webpack_require__(1); + exports.util = __webpack_require__(57); exports.DOMutil = __webpack_require__(2); // data @@ -115,9 +115,9 @@ return /******/ (function(modules) { // webpackBootstrap components: { items: { - Item: __webpack_require__(20), - BackgroundItem: __webpack_require__(21), - BoxItem: __webpack_require__(22), + Item: __webpack_require__(21), + BackgroundItem: __webpack_require__(22), + BoxItem: __webpack_require__(20), PointItem: __webpack_require__(23), RangeItem: __webpack_require__(24) }, @@ -164,2728 +164,2125 @@ return /******/ (function(modules) { // webpackBootstrap /* 1 */ /***/ function(module, exports, __webpack_require__) { - // utility functions + 'use strict'; - // first check if moment.js is already loaded in the browser window, if so, - // use this instance. Else, load via commonjs. + Object.defineProperty(exports, '__esModule', { + value: true + }); - 'use strict'; + 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 moment = __webpack_require__(40); - var uuid = __webpack_require__(42); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - /** - * Test whether given object is a number - * @param {*} object - * @return {Boolean} isNumber - */ - exports.isNumber = function (object) { - return object instanceof Number || typeof object == 'number'; - }; + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - exports.recursiveDOMDelete = function (DOMobject) { - while (DOMobject.hasChildNodes() == true) { - exports.recursiveDOMDelete(DOMobject.firstChild); - DOMobject.removeChild(DOMobject.firstChild); - } - }; + var _componentsNodesCluster = __webpack_require__(85); - /** - * this function gives you a range between 0 and 1 based on the min and max values in the set, the total sum of all values and the current value. - * - * @param min - * @param max - * @param total - * @param value - * @returns {number} - */ - exports.giveRange = function (min, max, total, value) { - if (max == min) { - return 0.5; - } else { - var scale = 1 / (max - min); - return Math.max(0, (value - min) * scale); - } - }; + var _componentsNodesCluster2 = _interopRequireDefault(_componentsNodesCluster); - /** - * Test whether given object is a string - * @param {*} object - * @return {Boolean} isString - */ - exports.isString = function (object) { - return object instanceof String || typeof object == 'string'; - }; + var util = __webpack_require__(57); - /** - * Test whether given object is a Date, or a String containing a Date - * @param {Date | String} object - * @return {Boolean} isDate - */ - exports.isDate = function (object) { - if (object instanceof Date) { - return true; - } else if (exports.isString(object)) { - // test whether this string contains a date - var match = ASPDateRegex.exec(object); - if (match) { - return true; - } else if (!isNaN(Date.parse(object))) { - return true; - } - } + var ClusterEngine = (function () { + function ClusterEngine(body) { + var _this = this; - return false; - }; + _classCallCheck(this, ClusterEngine); - /** - * Create a semi UUID - * source: http://stackoverflow.com/a/105074/1262753 - * @return {String} uuid - */ - exports.randomUUID = function () { - return uuid.v4(); - }; + this.body = body; + this.clusteredNodes = {}; - /** - * assign all keys of an object that are not nested objects to a certain value (used for color objects). - * @param obj - * @param value - */ - exports.assignAllKeys = function (obj, value) { - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - if (typeof obj[prop] !== 'object') { - obj[prop] = value; - } - } + this.options = {}; + this.defaultOptions = {}; + util.extend(this.options, this.defaultOptions); + + this.body.emitter.on('_resetData', function () { + _this.clusteredNodes = {}; + }); } - }; - /** - * Fill an object with a possibly partially defined other object. Only copies values if the a object has an object requiring values. - * That means an object is not created on a property if only the b object has it. - * @param obj - * @param value - */ - exports.fillIfDefined = function (a, b) { - var allowDeletion = arguments[2] === undefined ? false : arguments[2]; + _createClass(ClusterEngine, [{ + key: 'setOptions', + value: function setOptions(options) { + if (options !== undefined) {} + } + }, { + key: 'clusterByHubsize', - for (var prop in a) { - if (b[prop] !== undefined) { - if (typeof b[prop] !== 'object') { - if ((b[prop] === undefined || b[prop] === null) && a[prop] !== undefined && allowDeletion === true) { - delete a[prop]; - } else { - a[prop] = b[prop]; - } - } else { - if (typeof a[prop] === 'object') { - exports.fillIfDefined(a[prop], b[prop], allowDeletion); + /** + * + * @param hubsize + * @param options + */ + value: function clusterByHubsize(hubsize, options) { + if (hubsize === undefined) { + hubsize = this._getHubSize(); + } else if (tyepof(hubsize) === 'object') { + options = this._checkOptions(hubsize); + hubsize = this._getHubSize(); + } + + var nodesToCluster = []; + for (var i = 0; i < this.body.nodeIndices.length; i++) { + var node = this.body.nodes[this.body.nodeIndices[i]]; + if (node.edges.length >= hubsize) { + nodesToCluster.push(node.id); } } - } - } - }; - /** - * Extend object a with the properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Object} a - * @param {... Object} b - * @return {Object} a - */ - exports.protoExtend = function (a, b) { - for (var i = 1; i < arguments.length; i++) { - var other = arguments[i]; - for (var prop in other) { - a[prop] = other[prop]; + for (var i = 0; i < nodesToCluster.length; i++) { + this.clusterByConnection(nodesToCluster[i], options, false); + } + this.body.emitter.emit('_dataChanged'); } - } - return a; - }; + }, { + key: 'cluster', - /** - * Extend object a with the properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Object} a - * @param {... Object} b - * @return {Object} a - */ - exports.extend = function (a, b) { - for (var i = 1; i < arguments.length; i++) { - var other = arguments[i]; - for (var prop in other) { - if (other.hasOwnProperty(prop)) { - a[prop] = other[prop]; + /** + * loop over all nodes, check if they adhere to the condition and cluster if needed. + * @param options + * @param refreshData + */ + value: function cluster() { + var options = arguments[0] === undefined ? {} : arguments[0]; + var refreshData = arguments[1] === undefined ? true : arguments[1]; + + if (options.joinCondition === undefined) { + throw new Error('Cannot call clusterByNodeData without a joinCondition function in the options.'); } - } - } - return a; - }; - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a - */ - exports.selectiveExtend = function (props, a, b) { - if (!Array.isArray(props)) { - throw new Error('Array with property names expected as first argument'); - } + // check if the options object is fine, append if needed + options = this._checkOptions(options); - for (var i = 2; i < arguments.length; i++) { - var other = arguments[i]; + var childNodesObj = {}; + var childEdgesObj = {}; - for (var p = 0; p < props.length; p++) { - var prop = props[p]; - if (other.hasOwnProperty(prop)) { - a[prop] = other[prop]; + // collect the nodes that will be in the cluster + for (var i = 0; i < this.body.nodeIndices.length; i++) { + var nodeId = this.body.nodeIndices[i]; + var node = this.body.nodes[nodeId]; + var clonedOptions = this._cloneOptions(node); + if (options.joinCondition(clonedOptions) === true) { + childNodesObj[nodeId] = this.body.nodes[nodeId]; + + // collect the nodes that will be in the cluster + for (var _i = 0; _i < node.edges.length; _i++) { + var edge = node.edges[_i]; + childEdgesObj[edge.id] = edge; + } + } } + + this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - } - return a; - }; + }, { + key: 'clusterOutliers', - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a - */ - exports.selectiveDeepExtend = function (props, a, b) { - var allowDeletion = arguments[3] === undefined ? false : arguments[3]; + /** + * Cluster all nodes in the network that have only 1 edge + * @param options + * @param refreshData + */ + value: function clusterOutliers(options) { + var refreshData = arguments[1] === undefined ? true : arguments[1]; - // TODO: add support for Arrays to deepExtend - if (Array.isArray(b)) { - throw new TypeError('Arrays are not supported by deepExtend'); - } - for (var i = 2; i < arguments.length; i++) { - var other = arguments[i]; - for (var p = 0; p < props.length; p++) { - var prop = props[p]; - if (other.hasOwnProperty(prop)) { - if (b[prop] && b[prop].constructor === Object) { - if (a[prop] === undefined) { - a[prop] = {}; + options = this._checkOptions(options); + var clusters = []; + + // collect the nodes that will be in the cluster + for (var i = 0; i < this.body.nodeIndices.length; i++) { + var childNodesObj = {}; + var childEdgesObj = {}; + var nodeId = this.body.nodeIndices[i]; + var visibleEdges = 0; + var edge = undefined; + for (var j = 0; j < this.body.nodes[nodeId].edges.length; j++) { + if (this.body.nodes[nodeId].edges[j].options.hidden === false) { + visibleEdges++; + edge = this.body.nodes[nodeId].edges[j]; } - if (a[prop].constructor === Object) { - exports.deepExtend(a[prop], b[prop], false, allowDeletion); - } else { - if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { - delete a[prop]; + } + + if (visibleEdges === 1) { + // this is an outlier + var childNodeId = this._getConnectedId(edge, nodeId); + if (childNodeId !== nodeId) { + if (options.joinCondition === undefined) { + if (this._checkIfUsed(clusters, nodeId, edge.id) === false && this._checkIfUsed(clusters, childNodeId, edge.id) === false) { + childEdgesObj[edge.id] = edge; + childNodesObj[nodeId] = this.body.nodes[nodeId]; + childNodesObj[childNodeId] = this.body.nodes[childNodeId]; + } } else { - a[prop] = b[prop]; + var clonedOptions = this._cloneOptions(this.body.nodes[nodeId]); + if (options.joinCondition(clonedOptions) === true && this._checkIfUsed(clusters, nodeId, edge.id) === false) { + childEdgesObj[edge.id] = edge; + childNodesObj[nodeId] = this.body.nodes[nodeId]; + } + clonedOptions = this._cloneOptions(this.body.nodes[childNodeId]); + if (options.joinCondition(clonedOptions) === true && this._checkIfUsed(clusters, nodeId, edge.id) === false) { + childEdgesObj[edge.id] = edge; + childNodesObj[childNodeId] = this.body.nodes[childNodeId]; + } + } + + if (Object.keys(childNodesObj).length > 0 && Object.keys(childEdgesObj).length > 0) { + clusters.push({ nodes: childNodesObj, edges: childEdgesObj }); } } - } else if (Array.isArray(b[prop])) { - throw new TypeError('Arrays are not supported by deepExtend'); - } else { - a[prop] = b[prop]; } } + + for (var i = 0; i < clusters.length; i++) { + this._cluster(clusters[i].nodes, clusters[i].edges, options, false); + } + + if (refreshData === true) { + this.body.emitter.emit('_dataChanged'); + } } - } - return a; - }; + }, { + key: '_checkIfUsed', + value: function _checkIfUsed(clusters, nodeId, edgeId) { + for (var i = 0; i < clusters.length; i++) { + var cluster = clusters[i]; + if (cluster.nodes[nodeId] !== undefined || cluster.edges[edgeId] !== undefined) { + return true; + } + } + return false; + } + }, { + key: 'clusterByConnection', - /** - * Extend object a with selected properties of object b or a series of objects - * Only properties with defined values are copied - * @param {Array.} props - * @param {Object} a - * @param {Object} b - * @return {Object} a - */ - exports.selectiveNotDeepExtend = function (props, a, b) { - var allowDeletion = arguments[3] === undefined ? false : arguments[3]; + /** + * suck all connected nodes of a node into the node. + * @param nodeId + * @param options + * @param refreshData + */ + value: function clusterByConnection(nodeId, options) { + var refreshData = arguments[2] === undefined ? true : arguments[2]; - // TODO: add support for Arrays to deepExtend - if (Array.isArray(b)) { - throw new TypeError('Arrays are not supported by deepExtend'); - } - for (var prop in b) { - if (b.hasOwnProperty(prop)) { - if (props.indexOf(prop) == -1) { - if (b[prop] && b[prop].constructor === Object) { - if (a[prop] === undefined) { - a[prop] = {}; - } - if (a[prop].constructor === Object) { - exports.deepExtend(a[prop], b[prop]); + // kill conditions + if (nodeId === undefined) { + throw new Error('No nodeId supplied to clusterByConnection!'); + } + if (this.body.nodes[nodeId] === undefined) { + throw new Error('The nodeId given to clusterByConnection does not exist!'); + } + + var node = this.body.nodes[nodeId]; + options = this._checkOptions(options, node); + if (options.clusterNodeProperties.x === undefined) { + options.clusterNodeProperties.x = node.x; + } + if (options.clusterNodeProperties.y === undefined) { + options.clusterNodeProperties.y = node.y; + } + if (options.clusterNodeProperties.fixed === undefined) { + options.clusterNodeProperties.fixed = {}; + options.clusterNodeProperties.fixed.x = node.options.fixed.x; + options.clusterNodeProperties.fixed.y = node.options.fixed.y; + } + + var childNodesObj = {}; + var childEdgesObj = {}; + var parentNodeId = node.id; + var parentClonedOptions = this._cloneOptions(node); + childNodesObj[parentNodeId] = node; + + // collect the nodes that will be in the cluster + for (var i = 0; i < node.edges.length; i++) { + var edge = node.edges[i]; + var childNodeId = this._getConnectedId(edge, parentNodeId); + + if (childNodeId !== parentNodeId) { + if (options.joinCondition === undefined) { + childEdgesObj[edge.id] = edge; + childNodesObj[childNodeId] = this.body.nodes[childNodeId]; } else { - if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { - delete a[prop]; - } else { - a[prop] = b[prop]; + // clone the options and insert some additional parameters that could be interesting. + var childClonedOptions = this._cloneOptions(this.body.nodes[childNodeId]); + if (options.joinCondition(parentClonedOptions, childClonedOptions) === true) { + childEdgesObj[edge.id] = edge; + childNodesObj[childNodeId] = this.body.nodes[childNodeId]; } } - } else if (Array.isArray(b[prop])) { - throw new TypeError('Arrays are not supported by deepExtend'); } else { - a[prop] = b[prop]; + childEdgesObj[edge.id] = edge; } } + + this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - } - return a; - }; + }, { + key: '_cloneOptions', - /** - * Deep extend an object a with the properties of object b - * @param {Object} a - * @param {Object} b - * @param [Boolean] protoExtend --> optional parameter. If true, the prototype values will also be extended. - * (ie. the options objects that inherit from others will also get the inherited options) - * @param [Boolean] global --> optional parameter. If true, the values of fields that are null will not deleted - * @returns {Object} - */ - exports.deepExtend = function (a, b, protoExtend, allowDeletion) { - for (var prop in b) { - if (b.hasOwnProperty(prop) || protoExtend === true) { - if (b[prop] && b[prop].constructor === Object) { - if (a[prop] === undefined) { - a[prop] = {}; - } - if (a[prop].constructor === Object) { - exports.deepExtend(a[prop], b[prop], protoExtend); - } else { - if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { - delete a[prop]; - } else { - a[prop] = b[prop]; - } - } - } else if (Array.isArray(b[prop])) { - a[prop] = []; - for (var i = 0; i < b[prop].length; i++) { - a[prop].push(b[prop][i]); - } + /** + * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes. + * @param objId + * @param type + * @returns {{}} + * @private + */ + value: function _cloneOptions(item, type) { + var clonedOptions = {}; + if (type === undefined || type === 'node') { + util.deepExtend(clonedOptions, item.options, true); + clonedOptions.x = item.x; + clonedOptions.y = item.y; + clonedOptions.amountOfConnections = item.edges.length; } else { - a[prop] = b[prop]; + util.deepExtend(clonedOptions, item.options, true); } + return clonedOptions; } - } - return a; - }; - - /** - * Test whether all elements in two arrays are equal. - * @param {Array} a - * @param {Array} b - * @return {boolean} Returns true if both arrays have the same length and same - * elements. - */ - exports.equalArray = function (a, b) { - if (a.length != b.length) return false; - - for (var i = 0, len = a.length; i < len; i++) { - if (a[i] != b[i]) return false; - } - - return true; - }; + }, { + key: '_createClusterEdges', - /** - * Convert an object to another type - * @param {Boolean | Number | String | Date | Moment | Null | undefined} object - * @param {String | undefined} type Name of the type. Available types: - * 'Boolean', 'Number', 'String', - * 'Date', 'Moment', ISODate', 'ASPDate'. - * @return {*} object - * @throws Error - */ - exports.convert = function (object, type) { - var match; + /** + * This function creates the edges that will be attached to the cluster. + * + * @param childNodesObj + * @param childEdgesObj + * @param newEdges + * @param options + * @private + */ + value: function _createClusterEdges(childNodesObj, childEdgesObj, newEdges, clusterNodeProperties, clusterEdgeProperties) { + var edge = undefined, + childNodeId = undefined, + childNode = undefined, + toId = undefined, + fromId = undefined, + otherNodeId = undefined; - if (object === undefined) { - return undefined; - } - if (object === null) { - return null; - } + var childKeys = Object.keys(childNodesObj); + for (var i = 0; i < childKeys.length; i++) { + childNodeId = childKeys[i]; + childNode = childNodesObj[childNodeId]; - if (!type) { - return object; - } - if (!(typeof type === 'string') && !(type instanceof String)) { - throw new Error('Type must be a string'); - } + // construct new edges from the cluster to others + for (var j = 0; j < childNode.edges.length; j++) { + edge = childNode.edges[j]; + childEdgesObj[edge.id] = edge; - //noinspection FallthroughInSwitchStatementJS - switch (type) { - case 'boolean': - case 'Boolean': - return Boolean(object); + // childNodeId position will be replaced by the cluster. + if (edge.toId == childNodeId) { + // this is a double equals because ints and strings can be interchanged here. + toId = clusterNodeProperties.id; + fromId = edge.fromId; + otherNodeId = fromId; + } else { + toId = edge.toId; + fromId = clusterNodeProperties.id; + otherNodeId = toId; + } - case 'number': - case 'Number': - return Number(object.valueOf()); + // if the node connected to the cluster is also in the cluster we do not need a new edge. + if (childNodesObj[otherNodeId] === undefined) { + var clonedOptions = this._cloneOptions(edge, 'edge'); + util.deepExtend(clonedOptions, clusterEdgeProperties); + clonedOptions.from = fromId; + clonedOptions.to = toId; + clonedOptions.id = 'clusterEdge:' + util.randomUUID(); + newEdges.push(this.body.functions.createEdge(clonedOptions)); + } + } + } + } + }, { + key: '_checkOptions', - case 'string': - case 'String': - return String(object); + /** + * This function checks the options that can be supplied to the different cluster functions + * for certain fields and inserts defaults if needed + * @param options + * @returns {*} + * @private + */ + value: function _checkOptions() { + var options = arguments[0] === undefined ? {} : arguments[0]; - case 'Date': - if (exports.isNumber(object)) { - return new Date(object); + if (options.clusterEdgeProperties === undefined) { + options.clusterEdgeProperties = {}; } - if (object instanceof Date) { - return new Date(object.valueOf()); - } else if (moment.isMoment(object)) { - return new Date(object.valueOf()); + if (options.clusterNodeProperties === undefined) { + options.clusterNodeProperties = {}; } - if (exports.isString(object)) { - match = ASPDateRegex.exec(object); - if (match) { - // object is an ASP date - return new Date(Number(match[1])); // parse number - } else { - return moment(object).toDate(); // parse string + + return options; + } + }, { + key: '_cluster', + + /** + * + * @param {Object} childNodesObj | object with node objects, id as keys, same as childNodes except it also contains a source node + * @param {Object} childEdgesObj | object with edge objects, id as keys + * @param {Array} options | object with {clusterNodeProperties, clusterEdgeProperties, processProperties} + * @param {Boolean} refreshData | when true, do not wrap up + * @private + */ + value: function _cluster(childNodesObj, childEdgesObj, options) { + var refreshData = arguments[3] === undefined ? true : arguments[3]; + + // kill condition: no children so cant cluster + if (Object.keys(childNodesObj).length === 0) { + return; + } + + var clusterNodeProperties = util.deepExtend({}, options.clusterNodeProperties); + + // construct the clusterNodeProperties + if (options.processProperties !== undefined) { + // get the childNode options + var childNodesOptions = []; + for (var nodeId in childNodesObj) { + var clonedOptions = this._cloneOptions(childNodesObj[nodeId]); + childNodesOptions.push(clonedOptions); + } + + // get clusterproperties based on childNodes + var childEdgesOptions = []; + for (var edgeId in childEdgesObj) { + var clonedOptions = this._cloneOptions(childEdgesObj[edgeId], 'edge'); + childEdgesOptions.push(clonedOptions); + } + + clusterNodeProperties = options.processProperties(clusterNodeProperties, childNodesOptions, childEdgesOptions); + if (!clusterNodeProperties) { + throw new Error('The processProperties function does not return properties!'); } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); } - case 'Moment': - if (exports.isNumber(object)) { - return moment(object); + // check if we have an unique id; + if (clusterNodeProperties.id === undefined) { + clusterNodeProperties.id = 'cluster:' + util.randomUUID(); } - if (object instanceof Date) { - return moment(object.valueOf()); - } else if (moment.isMoment(object)) { - return moment(object); + var clusterId = clusterNodeProperties.id; + + if (clusterNodeProperties.label === undefined) { + clusterNodeProperties.label = 'cluster'; } - if (exports.isString(object)) { - match = ASPDateRegex.exec(object); - if (match) { - // object is an ASP date - return moment(Number(match[1])); // parse number - } else { - return moment(object); // parse string + + // give the clusterNode a postion if it does not have one. + var pos = undefined; + if (clusterNodeProperties.x === undefined) { + pos = this._getClusterPosition(childNodesObj); + clusterNodeProperties.x = pos.x; + } + if (clusterNodeProperties.y === undefined) { + if (pos === undefined) { + pos = this._getClusterPosition(childNodesObj); } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + clusterNodeProperties.y = pos.y; } - case 'ISODate': - if (exports.isNumber(object)) { - return new Date(object); - } else if (object instanceof Date) { - return object.toISOString(); - } else if (moment.isMoment(object)) { - return object.toDate().toISOString(); - } else if (exports.isString(object)) { - match = ASPDateRegex.exec(object); - if (match) { - // object is an ASP date - return new Date(Number(match[1])).toISOString(); // parse number - } else { - return new Date(object).toISOString(); // parse string + // force the ID to remain the same + clusterNodeProperties.id = clusterId; + + // create the clusterNode + var clusterNode = this.body.functions.createNode(clusterNodeProperties, _componentsNodesCluster2['default']); + clusterNode.isCluster = true; + clusterNode.containedNodes = childNodesObj; + clusterNode.containedEdges = childEdgesObj; + // cache a copy from the cluster edge properties if we have to reconnect others later on + clusterNode.clusterEdgeProperties = options.clusterEdgeProperties; + + // finally put the cluster node into global + this.body.nodes[clusterNodeProperties.id] = clusterNode; + + // create the new edges that will connect to the cluster + var newEdges = []; + this._createClusterEdges(childNodesObj, childEdgesObj, newEdges, clusterNodeProperties, options.clusterEdgeProperties); + + // disable the childEdges + for (var edgeId in childEdgesObj) { + if (childEdgesObj.hasOwnProperty(edgeId)) { + if (this.body.edges[edgeId] !== undefined) { + var edge = this.body.edges[edgeId]; + edge.togglePhysics(false); + edge.options.hidden = true; + } } - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); } - case 'ASPDate': - if (exports.isNumber(object)) { - return '/Date(' + object + ')/'; - } else if (object instanceof Date) { - return '/Date(' + object.valueOf() + ')/'; - } else if (exports.isString(object)) { - match = ASPDateRegex.exec(object); - var value; - if (match) { - // object is an ASP date - value = new Date(Number(match[1])).valueOf(); // parse number - } else { - value = new Date(object).valueOf(); // parse string + // disable the childNodes + for (var nodeId in childNodesObj) { + if (childNodesObj.hasOwnProperty(nodeId)) { + this.clusteredNodes[nodeId] = { clusterId: clusterNodeProperties.id, node: this.body.nodes[nodeId] }; + this.body.nodes[nodeId].togglePhysics(false); + this.body.nodes[nodeId].options.hidden = true; } - return '/Date(' + value + ')/'; - } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ASPDate'); } - default: - throw new Error('Unknown type "' + type + '"'); - } - }; - - // parse ASP.Net Date pattern, - // for example '/Date(1198908717056)/' or '/Date(1198908717056-0700)/' - // code from http://momentjs.com/ - var ASPDateRegex = /^\/?Date\((\-?\d+)/i; + // push new edges to global + for (var i = 0; i < newEdges.length; i++) { + this.body.edges[newEdges[i].id] = newEdges[i]; + this.body.edges[newEdges[i].id].connect(); + } - /** - * Get the type of an object, for example exports.getType([]) returns 'Array' - * @param {*} object - * @return {String} type - */ - exports.getType = function (object) { - var type = typeof object; + // set ID to undefined so no duplicates arise + clusterNodeProperties.id = undefined; - 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'; + // wrap up + if (refreshData === true) { + this.body.emitter.emit('_dataChanged'); + } } - if (object instanceof Date) { - return 'Date'; + }, { + key: 'isCluster', + + /** + * Check if a node is a cluster. + * @param nodeId + * @returns {*} + */ + value: function isCluster(nodeId) { + if (this.body.nodes[nodeId] !== undefined) { + return this.body.nodes[nodeId].isCluster === true; + } else { + console.log('Node does not exist.'); + return false; + } } - 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'; - } + }, { + key: '_getClusterPosition', - return type; - }; + /** + * get the position of the cluster node based on what's inside + * @param {object} childNodesObj | object with node objects, id as keys + * @returns {{x: number, y: number}} + * @private + */ + value: function _getClusterPosition(childNodesObj) { + var childKeys = Object.keys(childNodesObj); + var minX = childNodesObj[childKeys[0]].x; + var maxX = childNodesObj[childKeys[0]].x; + var minY = childNodesObj[childKeys[0]].y; + var maxY = childNodesObj[childKeys[0]].y; + var node = undefined; + for (var i = 1; i < childKeys.length; i++) { + node = childNodesObj[childKeys[i]]; + minX = node.x < minX ? node.x : minX; + maxX = node.x > maxX ? node.x : maxX; + minY = node.y < minY ? node.y : minY; + maxY = node.y > maxY ? node.y : maxY; + } - /** - * 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; - }; + return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) }; + } + }, { + key: 'openCluster', - /** - * Used to extend an array and copy it. This is used to propagate paths recursively. - * - * @param arr - * @param newValue - * @returns {Array} - */ - exports.copyArray = function (arr) { - var newArr = []; - for (var i = 0; i < arr.length; i++) { - newArr.push(arr[i]); - } - return newArr; - }; + /** + * Open a cluster by calling this function. + * @param {String} clusterNodeId | the ID of the cluster node + * @param {Boolean} refreshData | wrap up afterwards if not true + */ + value: function openCluster(clusterNodeId) { + var refreshData = arguments[1] === undefined ? true : arguments[1]; - /** - * Retrieve the absolute left value of a DOM element - * @param {Element} elem A dom element, for example a div - * @return {number} left The absolute left position of this element - * in the browser page. - */ - exports.getAbsoluteLeft = function (elem) { - return elem.getBoundingClientRect().left; - }; + // kill conditions + if (clusterNodeId === undefined) { + throw new Error('No clusterNodeId supplied to openCluster.'); + } + if (this.body.nodes[clusterNodeId] === undefined) { + throw new Error('The clusterNodeId supplied to openCluster does not exist.'); + } + if (this.body.nodes[clusterNodeId].containedNodes === undefined) { + console.log('The node:' + clusterNodeId + ' is not a cluster.'); + return; + } + var clusterNode = this.body.nodes[clusterNodeId]; + var containedNodes = clusterNode.containedNodes; + var containedEdges = clusterNode.containedEdges; - /** - * Retrieve the absolute top value of a DOM element - * @param {Element} elem A dom element, for example a div - * @return {number} top The absolute top position of this element - * in the browser page. - */ - exports.getAbsoluteTop = function (elem) { - return elem.getBoundingClientRect().top; - }; + // release nodes + for (var nodeId in containedNodes) { + if (containedNodes.hasOwnProperty(nodeId)) { + var containedNode = this.body.nodes[nodeId]; + containedNode = containedNodes[nodeId]; + // inherit position + containedNode.x = clusterNode.x; + containedNode.y = clusterNode.y; - /** - * add a className to the given elements style - * @param {Element} elem - * @param {String} className - */ - exports.addClassName = function (elem, className) { - var classes = elem.className.split(' '); - if (classes.indexOf(className) == -1) { - classes.push(className); // add the class to the array - elem.className = classes.join(' '); - } - }; + // inherit speed + containedNode.vx = clusterNode.vx; + containedNode.vy = clusterNode.vy; - /** - * add a className to the given elements style - * @param {Element} elem - * @param {String} className - */ - exports.removeClassName = function (elem, className) { - var classes = elem.className.split(' '); - var index = classes.indexOf(className); - if (index != -1) { - classes.splice(index, 1); // remove the class from the array - elem.className = classes.join(' '); - } - }; + containedNode.options.hidden = false; + containedNode.togglePhysics(true); - /** - * For each method for both arrays and objects. - * In case of an array, the built-in Array.forEach() is applied. - * In case of an Object, the method loops over all properties of the object. - * @param {Object | Array} object An Object or Array - * @param {function} callback Callback method, called for each item in - * the object or array with three parameters: - * callback(value, index, object) - */ - exports.forEach = function (object, callback) { - var i, len; - if (Array.isArray(object)) { - // array - for (i = 0, len = object.length; i < len; i++) { - callback(object[i], i, object); - } - } else { - // object - for (i in object) { - if (object.hasOwnProperty(i)) { - callback(object[i], i, object); + delete this.clusteredNodes[nodeId]; + } } - } - } - }; - - /** - * Convert an object into an array: all objects properties are put into the - * array. The resulting array is unordered. - * @param {Object} object - * @param {Array} array - */ - exports.toArray = function (object) { - var array = []; - for (var prop in object) { - if (object.hasOwnProperty(prop)) array.push(object[prop]); - } + // release edges + for (var edgeId in containedEdges) { + if (containedEdges.hasOwnProperty(edgeId)) { + var edge = containedEdges[edgeId]; + // if this edge was a temporary edge and it's connected nodes do not exist anymore, we remove it from the data + if (this.body.nodes[edge.fromId] === undefined || this.body.nodes[edge.toId] === undefined) { + edge.edgeType.cleanup(); + // this removes the edge from node.edges, which is why edgeIds is formed + edge.disconnect(); + delete this.body.edges[edgeId]; + } else { - return array; - }; + // one of the nodes connected to this edge is in a cluster. We give the edge to that cluster so it will be released when that cluster is opened. + if (this.clusteredNodes[edge.fromId] !== undefined || this.clusteredNodes[edge.toId] !== undefined) { + var fromId = undefined, + toId = undefined; + var clusteredNode = this.clusteredNodes[edge.fromId] || this.clusteredNodes[edge.toId]; + var clusterId = clusteredNode.clusterId; + var _clusterNode = this.body.nodes[clusterId]; + _clusterNode.containedEdges[edgeId] = edge; - /** - * Update a property in an object - * @param {Object} object - * @param {String} key - * @param {*} value - * @return {Boolean} changed - */ - exports.updateProperty = function (object, key, value) { - if (object[key] !== value) { - object[key] = value; - return true; - } else { - return false; - } - }; + // if both from and to nodes are visible, we create a new temporary edge + if (edge.from.options.hidden !== true && edge.to.options.hidden !== true) { + if (this.clusteredNodes[edge.fromId] !== undefined) { + fromId = clusterId; + toId = edge.toId; + } else { + fromId = edge.fromId; + toId = clusterId; + } - /** - * Add and event listener. Works for all browsers - * @param {Element} element An html element - * @param {string} action The action, for example "click", - * without the prefix "on" - * @param {function} listener The callback function to be executed - * @param {boolean} [useCapture] - */ - exports.addEventListener = function (element, action, listener, useCapture) { - if (element.addEventListener) { - if (useCapture === undefined) useCapture = false; + var clonedOptions = this._cloneOptions(edge, 'edge'); + var id = 'clusterEdge:' + util.randomUUID(); + util.deepExtend(clonedOptions, _clusterNode.clusterEdgeProperties); + util.deepExtend(clonedOptions, { from: fromId, to: toId, hidden: false, physics: true, id: id }); + var newEdge = this.body.functions.createEdge(clonedOptions); - if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { - action = 'DOMMouseScroll'; // For Firefox - } + this.body.edges[id] = newEdge; + this.body.edges[id].connect(); + } + } else { + edge.options.hidden = false; + edge.togglePhysics(true); + } + } + } + } - element.addEventListener(action, listener, useCapture); - } else { - element.attachEvent('on' + action, listener); // IE browsers - } - }; + // remove all temporary edges + for (var i = 0; i < clusterNode.edges.length; i++) { + var edgeId = clusterNode.edges[i].id; + this.body.edges[edgeId].edgeType.cleanup(); + // this removes the edge from node.edges, which is why edgeIds is formed + this.body.edges[edgeId].disconnect(); + delete this.body.edges[edgeId]; + } - /** - * Remove an event listener from an element - * @param {Element} element An html dom element - * @param {string} action The name of the event, for example "mousedown" - * @param {function} listener The listener function - * @param {boolean} [useCapture] - */ - exports.removeEventListener = function (element, action, listener, useCapture) { - if (element.removeEventListener) { - // non-IE browsers - if (useCapture === undefined) useCapture = false; + // remove clusterNode + delete this.body.nodes[clusterNodeId]; - if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { - action = 'DOMMouseScroll'; // For Firefox + if (refreshData === true) { + this.body.emitter.emit('_dataChanged'); + } } + }, { + key: '_connectEdge', - element.removeEventListener(action, listener, useCapture); - } else { - // IE browsers - element.detachEvent('on' + action, listener); - } - }; + /** + * Connect an edge that was previously contained from cluster A to cluster B if the node that it was originally connected to + * is currently residing in cluster B + * @param edge + * @param nodeId + * @param from + * @private + */ + value: function _connectEdge(edge, nodeId, from) { + var clusterStack = this.findNode(nodeId); + if (from === true) { + edge.from = clusterStack[clusterStack.length - 1]; + edge.fromId = clusterStack[clusterStack.length - 1].id; + clusterStack.pop(); + edge.fromArray = clusterStack; + } else { + edge.to = clusterStack[clusterStack.length - 1]; + edge.toId = clusterStack[clusterStack.length - 1].id; + clusterStack.pop(); + edge.toArray = clusterStack; + } + edge.connect(); + } + }, { + key: 'findNode', - /** - * Cancels the event if it is cancelable, without stopping further propagation of the event. - */ - exports.preventDefault = function (event) { - if (!event) event = window.event; + /** + * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node + * @param nodeId + * @returns {Array} + * @private + */ + value: function findNode(nodeId) { + var stack = []; + var max = 100; + var counter = 0; - if (event.preventDefault) { - event.preventDefault(); // non-IE browsers - } else { - event.returnValue = false; // IE browsers - } - }; + while (this.clusteredNodes[nodeId] !== undefined && counter < max) { + stack.push(this.clusteredNodes[nodeId].node); + nodeId = this.clusteredNodes[nodeId].clusterId; + counter++; + } + stack.push(this.body.nodes[nodeId]); + return stack; + } + }, { + key: '_getConnectedId', - /** - * Get HTML element which is the target of the event - * @param {Event} event - * @return {Element} target element - */ - exports.getTarget = function (event) { - // code from http://www.quirksmode.org/js/events_properties.html - if (!event) { - event = window.event; - } + /** + * Get the Id the node is connected to + * @param edge + * @param nodeId + * @returns {*} + * @private + */ + value: function _getConnectedId(edge, nodeId) { + if (edge.toId != nodeId) { + return edge.toId; + } else if (edge.fromId != nodeId) { + return edge.fromId; + } else { + return edge.fromId; + } + } + }, { + key: '_getHubSize', - var target; + /** + * We determine how many connections denote an important hub. + * We take the mean + 2*std as the important hub size. (Assuming a normal distribution of data, ~2.2%) + * + * @private + */ + value: function _getHubSize() { + var average = 0; + var averageSquared = 0; + var hubCounter = 0; + var largestHub = 0; - if (event.target) { - target = event.target; - } else if (event.srcElement) { - target = event.srcElement; - } + for (var i = 0; i < this.body.nodeIndices.length; i++) { + var node = this.body.nodes[this.body.nodeIndices[i]]; + if (node.edges.length > largestHub) { + largestHub = node.edges.length; + } + average += node.edges.length; + averageSquared += Math.pow(node.edges.length, 2); + hubCounter += 1; + } + average = average / hubCounter; + averageSquared = averageSquared / hubCounter; - if (target.nodeType != undefined && target.nodeType == 3) { - // defeat Safari bug - target = target.parentNode; - } + var letiance = averageSquared - Math.pow(average, 2); + var standardDeviation = Math.sqrt(letiance); - return target; - }; + var hubThreshold = Math.floor(average + 2 * standardDeviation); - /** - * Check if given element contains given parent somewhere in the DOM tree - * @param {Element} element - * @param {Element} parent - */ - exports.hasParent = function (element, parent) { - var e = element; + // always have at least one to cluster + if (hubThreshold > largestHub) { + hubThreshold = largestHub; + } - while (e) { - if (e === parent) { - return true; + return hubThreshold; } - e = e.parentNode; - } - - return false; - }; + }]); - exports.option = {}; + return ClusterEngine; + })(); - /** - * Convert a value into a boolean - * @param {Boolean | function | undefined} value - * @param {Boolean} [defaultValue] - * @returns {Boolean} bool - */ - exports.option.asBoolean = function (value, defaultValue) { - if (typeof value == 'function') { - value = value(); - } + exports['default'] = ClusterEngine; + module.exports = exports['default']; - if (value != null) { - return value != false; - } +/***/ }, +/* 2 */ +/***/ function(module, exports, __webpack_require__) { - return defaultValue || null; - }; + // DOM utility methods /** - * Convert a value into a number - * @param {Boolean | function | undefined} value - * @param {Number} [defaultValue] - * @returns {Number} number + * this prepares the JSON container for allocating SVG elements + * @param JSONcontainer + * @private */ - exports.option.asNumber = function (value, defaultValue) { - if (typeof value == 'function') { - value = value(); - } + 'use strict'; - if (value != null) { - return Number(value) || defaultValue || null; + exports.prepareElements = function (JSONcontainer) { + // cleanup the redundant svgElements; + for (var elementType in JSONcontainer) { + if (JSONcontainer.hasOwnProperty(elementType)) { + JSONcontainer[elementType].redundant = JSONcontainer[elementType].used; + JSONcontainer[elementType].used = []; + } } - - return defaultValue || null; }; /** - * Convert a value into a string - * @param {String | function | undefined} value - * @param {String} [defaultValue] - * @returns {String} str + * this cleans up all the unused SVG elements. By asking for the parentNode, we only need to supply the JSON container from + * which to remove the redundant elements. + * + * @param JSONcontainer + * @private */ - exports.option.asString = function (value, defaultValue) { - if (typeof value == 'function') { - value = value(); - } - - if (value != null) { - return String(value); + exports.cleanupElements = function (JSONcontainer) { + // cleanup the redundant svgElements; + for (var elementType in JSONcontainer) { + if (JSONcontainer.hasOwnProperty(elementType)) { + if (JSONcontainer[elementType].redundant) { + for (var i = 0; i < JSONcontainer[elementType].redundant.length; i++) { + JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i]); + } + JSONcontainer[elementType].redundant = []; + } + } } - - return defaultValue || null; }; /** - * Convert a size or location into a string with pixels or a percentage - * @param {String | Number | function | undefined} value - * @param {String} [defaultValue] - * @returns {String} size + * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer + * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. + * + * @param elementType + * @param JSONcontainer + * @param svgContainer + * @returns {*} + * @private */ - exports.option.asSize = function (value, defaultValue) { - if (typeof value == 'function') { - value = value(); - } - - if (exports.isString(value)) { - return value; - } else if (exports.isNumber(value)) { - return value + 'px'; + exports.getSVGElement = function (elementType, JSONcontainer, svgContainer) { + var element; + // allocate SVG element, if it doesnt yet exist, create one. + if (JSONcontainer.hasOwnProperty(elementType)) { + // this element has been created before + // check if there is an redundant element + if (JSONcontainer[elementType].redundant.length > 0) { + element = JSONcontainer[elementType].redundant[0]; + JSONcontainer[elementType].redundant.shift(); + } else { + // create a new element and add it to the SVG + element = document.createElementNS('http://www.w3.org/2000/svg', elementType); + svgContainer.appendChild(element); + } } else { - return defaultValue || null; + // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it. + element = document.createElementNS('http://www.w3.org/2000/svg', elementType); + JSONcontainer[elementType] = { used: [], redundant: [] }; + svgContainer.appendChild(element); } + JSONcontainer[elementType].used.push(element); + return element; }; /** - * Convert a value into a DOM element - * @param {HTMLElement | function | undefined} value - * @param {HTMLElement} [defaultValue] - * @returns {HTMLElement | null} dom + * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer + * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. + * + * @param elementType + * @param JSONcontainer + * @param DOMContainer + * @returns {*} + * @private */ - exports.option.asElement = function (value, defaultValue) { - if (typeof value == 'function') { - value = value(); + exports.getDOMElement = function (elementType, JSONcontainer, DOMContainer, insertBefore) { + var element; + // allocate DOM element, if it doesnt yet exist, create one. + if (JSONcontainer.hasOwnProperty(elementType)) { + // this element has been created before + // check if there is an redundant element + if (JSONcontainer[elementType].redundant.length > 0) { + element = JSONcontainer[elementType].redundant[0]; + JSONcontainer[elementType].redundant.shift(); + } else { + // create a new element and add it to the SVG + element = document.createElement(elementType); + if (insertBefore !== undefined) { + DOMContainer.insertBefore(element, insertBefore); + } else { + DOMContainer.appendChild(element); + } + } + } else { + // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it. + element = document.createElement(elementType); + JSONcontainer[elementType] = { used: [], redundant: [] }; + if (insertBefore !== undefined) { + DOMContainer.insertBefore(element, insertBefore); + } else { + DOMContainer.appendChild(element); + } } - - return value || defaultValue || null; + JSONcontainer[elementType].used.push(element); + return element; }; /** - * http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb + * draw a point object. this is a seperate function because it can also be called by the legend. + * The reason the JSONcontainer and the target SVG svgContainer have to be supplied is so the legend can use these functions + * as well. * - * @param {String} hex - * @returns {{r: *, g: *, b: *}} | 255 range - */ - exports.hexToRGB = function (hex) { - // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") - var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; - hex = hex.replace(shorthandRegex, function (m, r, g, b) { - return r + r + g + g + b + b; - }); - var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); - return result ? { - r: parseInt(result[1], 16), - g: parseInt(result[2], 16), - b: parseInt(result[3], 16) - } : null; - }; - - /** - * This function takes color in hex format or rgb() or rgba() format and overrides the opacity. Returns rgba() string. - * @param color - * @param opacity + * @param x + * @param y + * @param group + * @param JSONcontainer + * @param svgContainer + * @param labelObj * @returns {*} */ - exports.overrideOpacity = function (color, opacity) { - if (color.indexOf('rgba') != -1) { - return color; - } else if (color.indexOf('rgb') != -1) { - var rgb = color.substr(color.indexOf('(') + 1).replace(')', '').split(','); - return 'rgba(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ',' + opacity + ')'; + exports.drawPoint = function (x, y, group, JSONcontainer, svgContainer, labelObj) { + var point; + if (group.options.drawPoints.style == 'circle') { + point = exports.getSVGElement('circle', JSONcontainer, svgContainer); + point.setAttributeNS(null, 'cx', x); + point.setAttributeNS(null, 'cy', y); + point.setAttributeNS(null, 'r', 0.5 * group.options.drawPoints.size); } else { - var rgb = exports.hexToRGB(color); - if (rgb == null) { - return color; - } else { - return 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + opacity + ')'; + point = exports.getSVGElement('rect', JSONcontainer, svgContainer); + point.setAttributeNS(null, 'x', x - 0.5 * group.options.drawPoints.size); + point.setAttributeNS(null, 'y', y - 0.5 * group.options.drawPoints.size); + point.setAttributeNS(null, 'width', group.options.drawPoints.size); + point.setAttributeNS(null, 'height', group.options.drawPoints.size); + } + + if (group.options.drawPoints.styles !== undefined) { + point.setAttributeNS(null, 'style', group.group.options.drawPoints.styles); + } + point.setAttributeNS(null, 'class', group.className + ' vis-point'); + //handle label + + if (labelObj) { + var label = exports.getSVGElement('text', JSONcontainer, svgContainer); + if (labelObj.xOffset) { + x = x + labelObj.xOffset; + } + + if (labelObj.yOffset) { + y = y + labelObj.yOffset; + } + if (labelObj.content) { + label.textContent = labelObj.content; + } + + if (labelObj.className) { + label.setAttributeNS(null, 'class', labelObj.className + ' vis-label'); } + label.setAttributeNS(null, 'x', x); + label.setAttributeNS(null, 'y', y); } + + return point; }; /** + * draw a bar SVG element centered on the X coordinate * - * @param red 0 -- 255 - * @param green 0 -- 255 - * @param blue 0 -- 255 - * @returns {string} - * @constructor + * @param x + * @param y + * @param className */ - exports.RGBToHex = function (red, green, blue) { - return '#' + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1); + exports.drawBar = function (x, y, width, height, className, JSONcontainer, svgContainer, style) { + if (height != 0) { + if (height < 0) { + height *= -1; + y -= height; + } + var rect = exports.getSVGElement('rect', JSONcontainer, svgContainer); + rect.setAttributeNS(null, 'x', x - 0.5 * width); + rect.setAttributeNS(null, 'y', y); + rect.setAttributeNS(null, 'width', width); + rect.setAttributeNS(null, 'height', height); + rect.setAttributeNS(null, 'class', className); + if (style) { + rect.setAttributeNS(null, 'style', style); + } + } }; +/***/ }, +/* 3 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var util = __webpack_require__(57); + var Queue = __webpack_require__(5); + /** - * Parse a color property into an object with border, background, and - * highlight colors - * @param {Object | String} color - * @return {Object} colorObject + * DataSet + * + * Usage: + * var dataSet = new DataSet({ + * fieldId: '_id', + * type: { + * // ... + * } + * }); + * + * dataSet.add(item); + * dataSet.add(data); + * dataSet.update(item); + * dataSet.update(data); + * dataSet.remove(id); + * dataSet.remove(ids); + * var data = dataSet.get(); + * var data = dataSet.get(id); + * var data = dataSet.get(ids); + * var data = dataSet.get(ids, options, data); + * dataSet.clear(); + * + * A data set can: + * - add/remove/update data + * - gives triggers upon changes in the data + * - can import/export data in various data formats + * + * @param {Array} [data] Optional array with initial data + * @param {Object} [options] Available options: + * {String} fieldId Field name of the id in the + * items, 'id' by default. + * {Object. increase low - low = middle + 1; + var addOrUpdate = function addOrUpdate(item) { + var id = item[fieldId]; + if (me._data[id]) { + // update item + id = me._updateItem(item); + updatedIds.push(id); + updatedData.push(item); } else { - // it is too big --> decrease high - high = middle - 1; + // add new item + id = me._addItem(item); + addedIds.push(id); } + }; - iteration++; + if (Array.isArray(data)) { + // Array + for (var i = 0, len = data.length; i < len; i++) { + addOrUpdate(data[i]); + } + } else if (data instanceof Object) { + // Single item + addOrUpdate(data); + } else { + throw new Error('Unknown dataType'); } - return -1; + if (addedIds.length) { + this._trigger('add', { items: addedIds }, senderId); + } + if (updatedIds.length) { + this._trigger('update', { items: updatedIds, data: updatedData }, senderId); + } + + return addedIds.concat(updatedIds); }; /** - * This function does a binary search for a specific value in a sorted array. If it does not exist but is in between of - * two values, we return either the one before or the one after, depending on user input - * If it is found, we return the index, else -1. + * Get a data item or multiple items. * - * @param {Array} orderedItems - * @param {{start: number, end: number}} target - * @param {String} field - * @param {String} sidePreference 'before' or 'after' - * @returns {number} - * @private - */ - exports.binarySearchValue = function (orderedItems, target, field, sidePreference) { - var maxIterations = 10000; - var iteration = 0; - var low = 0; - var high = orderedItems.length - 1; - var prevValue, value, nextValue, middle; + * Usage: + * + * get() + * get(options: Object) + * + * get(id: Number | String) + * get(id: Number | String, options: Object) + * + * get(ids: Number[] | String[]) + * get(ids: Number[] | String[], options: Object) + * + * Where: + * + * {Number | String} id The id of an item + * {Number[] | String{}} ids An array with ids of items + * {Object} options An Object with options. Available options: + * {String} [returnType] Type of data to be returned. + * Can be 'Array' (default) or 'Object'. + * {Object.} [type] + * {String[]} [fields] field names to be returned + * {function} [filter] filter items + * {String | function} [order] Order the items by a field name or custom sort function. + * @throws Error + */ + DataSet.prototype.get = function (args) { + var me = this; - while (low <= high && iteration < maxIterations) { - // get a new guess - middle = Math.floor(0.5 * (high + low)); - prevValue = orderedItems[Math.max(0, middle - 1)][field]; - value = orderedItems[middle][field]; - nextValue = orderedItems[Math.min(orderedItems.length - 1, middle + 1)][field]; + // parse the arguments + var id, ids, options; + var firstType = util.getType(arguments[0]); + if (firstType == 'String' || firstType == 'Number') { + // get(id [, options]) + id = arguments[0]; + options = arguments[1]; + } else if (firstType == 'Array') { + // get(ids [, options]) + ids = arguments[0]; + options = arguments[1]; + } else { + // get([, options]) + options = arguments[0]; + } - if (value == target) { - // we found the target - return middle; - } else if (prevValue < target && value > target) { - // target is in between of the previous and the current - return sidePreference == 'before' ? Math.max(0, middle - 1) : middle; - } else if (value < target && nextValue > target) { - // target is in between of the current and the next - return sidePreference == 'before' ? middle : Math.min(orderedItems.length - 1, middle + 1); + // determine the return type + var returnType; + if (options && options.returnType) { + var allowedValues = ['Array', 'Object']; + returnType = allowedValues.indexOf(options.returnType) == -1 ? 'Array' : options.returnType; + } else { + returnType = 'Array'; + } + + // build options + var type = options && options.type || this._options.type; + var filter = options && options.filter; + var items = [], + item, + itemId, + i, + len; + + // convert items + if (id != undefined) { + // return a single item + item = me._getItem(id, type); + if (filter && !filter(item)) { + item = null; + } + } else if (ids != undefined) { + // return a subset of items + for (i = 0, len = ids.length; i < len; i++) { + item = me._getItem(ids[i], type); + if (!filter || filter(item)) { + items.push(item); + } + } + } else { + // return all items + for (itemId in this._data) { + if (this._data.hasOwnProperty(itemId)) { + item = me._getItem(itemId, type); + if (!filter || filter(item)) { + items.push(item); + } + } + } + } + + // order the results + if (options && options.order && id == undefined) { + this._sort(items, options.order); + } + + // filter fields of the items + if (options && options.fields) { + var fields = options.fields; + if (id != undefined) { + item = this._filterFields(item, fields); } else { - // didnt find the target, we need to change our boundaries. - if (value < target) { - // it is too small --> increase low - low = middle + 1; - } else { - // it is too big --> decrease high - high = middle - 1; + for (i = 0, len = items.length; i < len; i++) { + items[i] = this._filterFields(items[i], fields); } } - iteration++; } - // didnt find anything. Return -1. - return -1; + // return the results + if (returnType == 'Object') { + var result = {}; + for (i = 0; i < items.length; i++) { + result[items[i].id] = items[i]; + } + return result; + } else { + if (id != undefined) { + // a single item + return item; + } else { + // just return our array + return items; + } + } }; - /* - * Easing Functions - inspired from http://gizma.com/easing/ - * only considering the t value for the range [0, 1] => [0, 1] - * https://gist.github.com/gre/1650294 + /** + * Get ids of all items or from a filtered set of items. + * @param {Object} [options] An Object with options. Available options: + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Array} ids */ - exports.easingFunctions = { - // no easing, no acceleration - linear: function linear(t) { - return t; - }, - // accelerating from zero velocity - easeInQuad: function easeInQuad(t) { - return t * t; - }, - // decelerating to zero velocity - easeOutQuad: function easeOutQuad(t) { - return t * (2 - t); - }, - // acceleration until halfway, then deceleration - easeInOutQuad: function easeInOutQuad(t) { - return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; - }, - // accelerating from zero velocity - easeInCubic: function easeInCubic(t) { - return t * t * t; - }, - // decelerating to zero velocity - easeOutCubic: function easeOutCubic(t) { - return --t * t * t + 1; - }, - // acceleration until halfway, then deceleration - easeInOutCubic: function easeInOutCubic(t) { - return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; - }, - // accelerating from zero velocity - easeInQuart: function easeInQuart(t) { - return t * t * t * t; - }, - // decelerating to zero velocity - easeOutQuart: function easeOutQuart(t) { - return 1 - --t * t * t * t; - }, - // acceleration until halfway, then deceleration - easeInOutQuart: function easeInOutQuart(t) { - return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t; - }, - // accelerating from zero velocity - easeInQuint: function easeInQuint(t) { - return t * t * t * t * t; - }, - // decelerating to zero velocity - easeOutQuint: function easeOutQuint(t) { - return 1 + --t * t * t * t * t; - }, - // acceleration until halfway, then deceleration - easeInOutQuint: function easeInOutQuint(t) { - return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t; - } - }; + DataSet.prototype.getIds = function (options) { + var data = this._data, + filter = options && options.filter, + order = options && options.order, + type = options && options.type || this._options.type, + i, + len, + id, + item, + items, + ids = []; -/***/ }, -/* 2 */ -/***/ function(module, exports, __webpack_require__) { + if (filter) { + // get filtered items + if (order) { + // create ordered list + items = []; + for (id in data) { + if (data.hasOwnProperty(id)) { + item = this._getItem(id, type); + if (filter(item)) { + items.push(item); + } + } + } - // DOM utility methods + this._sort(items, order); - /** - * this prepares the JSON container for allocating SVG elements - * @param JSONcontainer - * @private - */ - 'use strict'; + for (i = 0, len = items.length; i < len; i++) { + ids[i] = items[i][this._fieldId]; + } + } else { + // create unordered list + for (id in data) { + if (data.hasOwnProperty(id)) { + item = this._getItem(id, type); + if (filter(item)) { + ids.push(item[this._fieldId]); + } + } + } + } + } else { + // get all items + if (order) { + // create an ordered list + items = []; + for (id in data) { + if (data.hasOwnProperty(id)) { + items.push(data[id]); + } + } - exports.prepareElements = function (JSONcontainer) { - // cleanup the redundant svgElements; - for (var elementType in JSONcontainer) { - if (JSONcontainer.hasOwnProperty(elementType)) { - JSONcontainer[elementType].redundant = JSONcontainer[elementType].used; - JSONcontainer[elementType].used = []; + this._sort(items, order); + + for (i = 0, len = items.length; i < len; i++) { + ids[i] = items[i][this._fieldId]; + } + } else { + // create unordered list + for (id in data) { + if (data.hasOwnProperty(id)) { + item = data[id]; + ids.push(item[this._fieldId]); + } + } } } + + return ids; }; /** - * this cleans up all the unused SVG elements. By asking for the parentNode, we only need to supply the JSON container from - * which to remove the redundant elements. - * - * @param JSONcontainer - * @private + * Returns the DataSet itself. Is overwritten for example by the DataView, + * which returns the DataSet it is connected to instead. */ - exports.cleanupElements = function (JSONcontainer) { - // cleanup the redundant svgElements; - for (var elementType in JSONcontainer) { - if (JSONcontainer.hasOwnProperty(elementType)) { - if (JSONcontainer[elementType].redundant) { - for (var i = 0; i < JSONcontainer[elementType].redundant.length; i++) { - JSONcontainer[elementType].redundant[i].parentNode.removeChild(JSONcontainer[elementType].redundant[i]); - } - JSONcontainer[elementType].redundant = []; - } - } - } + DataSet.prototype.getDataSet = function () { + return this; }; /** - * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer - * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. - * - * @param elementType - * @param JSONcontainer - * @param svgContainer - * @returns {*} - * @private + * Execute a callback function for every item in the dataset. + * @param {function} callback + * @param {Object} [options] Available options: + * {Object.} [type] + * {String[]} [fields] filter fields + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. */ - exports.getSVGElement = function (elementType, JSONcontainer, svgContainer) { - var element; - // allocate SVG element, if it doesnt yet exist, create one. - if (JSONcontainer.hasOwnProperty(elementType)) { - // this element has been created before - // check if there is an redundant element - if (JSONcontainer[elementType].redundant.length > 0) { - element = JSONcontainer[elementType].redundant[0]; - JSONcontainer[elementType].redundant.shift(); - } else { - // create a new element and add it to the SVG - element = document.createElementNS('http://www.w3.org/2000/svg', elementType); - svgContainer.appendChild(element); + DataSet.prototype.forEach = function (callback, options) { + var filter = options && options.filter, + type = options && options.type || this._options.type, + data = this._data, + item, + id; + + if (options && options.order) { + // execute forEach on ordered list + var items = this.get(options); + + for (var i = 0, len = items.length; i < len; i++) { + item = items[i]; + id = item[this._fieldId]; + callback(item, id); } } else { - // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it. - element = document.createElementNS('http://www.w3.org/2000/svg', elementType); - JSONcontainer[elementType] = { used: [], redundant: [] }; - svgContainer.appendChild(element); + // unordered + for (id in data) { + if (data.hasOwnProperty(id)) { + item = this._getItem(id, type); + if (!filter || filter(item)) { + callback(item, id); + } + } + } } - JSONcontainer[elementType].used.push(element); - return element; }; /** - * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer - * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. - * - * @param elementType - * @param JSONcontainer - * @param DOMContainer - * @returns {*} - * @private + * Map every item in the dataset. + * @param {function} callback + * @param {Object} [options] Available options: + * {Object.} [type] + * {String[]} [fields] filter fields + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Object[]} mappedItems */ - exports.getDOMElement = function (elementType, JSONcontainer, DOMContainer, insertBefore) { - var element; - // allocate DOM element, if it doesnt yet exist, create one. - if (JSONcontainer.hasOwnProperty(elementType)) { - // this element has been created before - // check if there is an redundant element - if (JSONcontainer[elementType].redundant.length > 0) { - element = JSONcontainer[elementType].redundant[0]; - JSONcontainer[elementType].redundant.shift(); - } else { - // create a new element and add it to the SVG - element = document.createElement(elementType); - if (insertBefore !== undefined) { - DOMContainer.insertBefore(element, insertBefore); - } else { - DOMContainer.appendChild(element); + DataSet.prototype.map = function (callback, options) { + var filter = options && options.filter, + type = options && options.type || this._options.type, + mappedItems = [], + data = this._data, + item; + + // convert and filter items + for (var id in data) { + if (data.hasOwnProperty(id)) { + item = this._getItem(id, type); + if (!filter || filter(item)) { + mappedItems.push(callback(item, id)); } } - } else { - // create a new element and add it to the SVG, also create a new object in the svgElements to keep track of it. - element = document.createElement(elementType); - JSONcontainer[elementType] = { used: [], redundant: [] }; - if (insertBefore !== undefined) { - DOMContainer.insertBefore(element, insertBefore); - } else { - DOMContainer.appendChild(element); - } } - JSONcontainer[elementType].used.push(element); - return element; + + // order items + if (options && options.order) { + this._sort(mappedItems, options.order); + } + + return mappedItems; }; /** - * draw a point object. this is a seperate function because it can also be called by the legend. - * The reason the JSONcontainer and the target SVG svgContainer have to be supplied is so the legend can use these functions - * as well. - * - * @param x - * @param y - * @param group - * @param JSONcontainer - * @param svgContainer - * @param labelObj - * @returns {*} + * Filter the fields of an item + * @param {Object | null} item + * @param {String[]} fields Field names + * @return {Object | null} filteredItem or null if no item is provided + * @private */ - exports.drawPoint = function (x, y, group, JSONcontainer, svgContainer, labelObj) { - var point; - if (group.options.drawPoints.style == 'circle') { - point = exports.getSVGElement('circle', JSONcontainer, svgContainer); - point.setAttributeNS(null, 'cx', x); - point.setAttributeNS(null, 'cy', y); - point.setAttributeNS(null, 'r', 0.5 * group.options.drawPoints.size); - } else { - point = exports.getSVGElement('rect', JSONcontainer, svgContainer); - point.setAttributeNS(null, 'x', x - 0.5 * group.options.drawPoints.size); - point.setAttributeNS(null, 'y', y - 0.5 * group.options.drawPoints.size); - point.setAttributeNS(null, 'width', group.options.drawPoints.size); - point.setAttributeNS(null, 'height', group.options.drawPoints.size); - } - - if (group.options.drawPoints.styles !== undefined) { - point.setAttributeNS(null, 'style', group.group.options.drawPoints.styles); + DataSet.prototype._filterFields = function (item, fields) { + if (!item) { + // item is null + return item; } - point.setAttributeNS(null, 'class', group.className + ' vis-point'); - //handle label - if (labelObj) { - var label = exports.getSVGElement('text', JSONcontainer, svgContainer); - if (labelObj.xOffset) { - x = x + labelObj.xOffset; - } + var filteredItem = {}; - if (labelObj.yOffset) { - y = y + labelObj.yOffset; - } - if (labelObj.content) { - label.textContent = labelObj.content; + if (Array.isArray(fields)) { + for (var field in item) { + if (item.hasOwnProperty(field) && fields.indexOf(field) != -1) { + filteredItem[field] = item[field]; + } } - - if (labelObj.className) { - label.setAttributeNS(null, 'class', labelObj.className + ' vis-label'); + } else { + for (var field in item) { + if (item.hasOwnProperty(field) && fields.hasOwnProperty(field)) { + filteredItem[fields[field]] = item[field]; + } } - label.setAttributeNS(null, 'x', x); - label.setAttributeNS(null, 'y', y); } - return point; + return filteredItem; }; /** - * draw a bar SVG element centered on the X coordinate - * - * @param x - * @param y - * @param className + * Sort the provided array with items + * @param {Object[]} items + * @param {String | function} order A field name or custom sort function. + * @private */ - exports.drawBar = function (x, y, width, height, className, JSONcontainer, svgContainer, style) { - if (height != 0) { - if (height < 0) { - height *= -1; - y -= height; - } - var rect = exports.getSVGElement('rect', JSONcontainer, svgContainer); - rect.setAttributeNS(null, 'x', x - 0.5 * width); - rect.setAttributeNS(null, 'y', y); - rect.setAttributeNS(null, 'width', width); - rect.setAttributeNS(null, 'height', height); - rect.setAttributeNS(null, 'class', className); - if (style) { - rect.setAttributeNS(null, 'style', style); - } + DataSet.prototype._sort = function (items, order) { + if (util.isString(order)) { + // order by provided field name + var name = order; // field name + items.sort(function (a, b) { + var av = a[name]; + var bv = b[name]; + return av > bv ? 1 : av < bv ? -1 : 0; + }); + } else if (typeof order === 'function') { + // order by sort function + items.sort(order); + } + // TODO: extend order by an Object {field:String, direction:String} + // where direction can be 'asc' or 'desc' + else { + throw new TypeError('Order must be a function or a string'); } }; -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var util = __webpack_require__(1); - var Queue = __webpack_require__(5); - /** - * DataSet - * - * Usage: - * var dataSet = new DataSet({ - * fieldId: '_id', - * type: { - * // ... - * } - * }); - * - * dataSet.add(item); - * dataSet.add(data); - * dataSet.update(item); - * dataSet.update(data); - * dataSet.remove(id); - * dataSet.remove(ids); - * var data = dataSet.get(); - * var data = dataSet.get(id); - * var data = dataSet.get(ids); - * var data = dataSet.get(ids, options, data); - * dataSet.clear(); - * - * A data set can: - * - add/remove/update data - * - gives triggers upon changes in the data - * - can import/export data in various data formats - * - * @param {Array} [data] Optional array with initial data - * @param {Object} [options] Available options: - * {String} fieldId Field name of the id in the - * items, 'id' by default. - * {Object. maxField)) { + max = item; + maxField = itemField; + } + } } - }; - // TODO: remove this deprecated function some day (replaced with `on` since version 0.5, deprecated since v4.0) - DataSet.prototype.unsubscribe = function () { - throw new Error('DataSet.unsubscribe is deprecated. Use DataSet.off instead.'); + return max; }; /** - * Trigger an event - * @param {String} event - * @param {Object | null} params - * @param {String} [senderId] Optional id of the sender. - * @private + * Find the item with minimum value of a specified field + * @param {String} field + * @return {Object | null} item Item containing max value, or null if no items */ - DataSet.prototype._trigger = function (event, params, senderId) { - if (event == '*') { - throw new Error('Cannot trigger event *'); - } + DataSet.prototype.min = function (field) { + var data = this._data, + min = null, + minField = null; - var subscribers = []; - if (event in this._subscribers) { - subscribers = subscribers.concat(this._subscribers[event]); + for (var id in data) { + if (data.hasOwnProperty(id)) { + var item = data[id]; + var itemField = item[field]; + if (itemField != null && (!min || itemField < minField)) { + min = item; + minField = itemField; + } + } } - if ('*' in this._subscribers) { - subscribers = subscribers.concat(this._subscribers['*']); + + return min; + }; + + /** + * Find all distinct values of a specified field + * @param {String} field + * @return {Array} values Array containing all distinct values. If data items + * do not contain the specified field are ignored. + * The returned array is unordered. + */ + DataSet.prototype.distinct = function (field) { + var data = this._data; + var values = []; + var fieldType = this._options.type && this._options.type[field] || null; + var count = 0; + var i; + + for (var prop in data) { + if (data.hasOwnProperty(prop)) { + var item = data[prop]; + var value = item[field]; + var exists = false; + for (i = 0; i < count; i++) { + if (values[i] == value) { + exists = true; + break; + } + } + if (!exists && value !== undefined) { + values[count] = value; + count++; + } + } } - for (var i = 0; i < subscribers.length; i++) { - var subscriber = subscribers[i]; - if (subscriber.callback) { - subscriber.callback(event, params, senderId || null); + if (fieldType) { + for (i = 0; i < values.length; i++) { + values[i] = util.convert(values[i], fieldType); } } + + return values; }; /** - * Add data. - * Adding an item will fail when there already is an item with the same id. - * @param {Object | Array} data - * @param {String} [senderId] Optional sender id - * @return {Array} addedIds Array with the ids of the added items + * Add a single item. Will fail when an item with the same id already exists. + * @param {Object} item + * @return {String} id + * @private */ - DataSet.prototype.add = function (data, senderId) { - var addedIds = [], - id, - me = this; + DataSet.prototype._addItem = function (item) { + var id = item[this._fieldId]; - if (Array.isArray(data)) { - // Array - for (var i = 0, len = data.length; i < len; i++) { - id = me._addItem(data[i]); - addedIds.push(id); + if (id != undefined) { + // check whether this id is already taken + if (this._data[id]) { + // item already exists + throw new Error('Cannot add item: item with id ' + id + ' already exists'); } - } else if (data instanceof Object) { - // Single item - id = me._addItem(data); - addedIds.push(id); } else { - throw new Error('Unknown dataType'); + // generate an id + id = util.randomUUID(); + item[this._fieldId] = id; } - if (addedIds.length) { - this._trigger('add', { items: addedIds }, senderId); + var d = {}; + for (var field in item) { + if (item.hasOwnProperty(field)) { + var fieldType = this._type[field]; // type may be undefined + d[field] = util.convert(item[field], fieldType); + } } + this._data[id] = d; + this.length++; - return addedIds; + return id; }; /** - * Update existing items. When an item does not exist, it will be created - * @param {Object | Array} data - * @param {String} [senderId] Optional sender id - * @return {Array} updatedIds The ids of the added or updated items + * Get an item. Fields can be converted to a specific type + * @param {String} id + * @param {Object.} [types] field types to convert + * @return {Object | null} item + * @private */ - DataSet.prototype.update = function (data, senderId) { - var addedIds = []; - var updatedIds = []; - var updatedData = []; - var me = this; - var fieldId = me._fieldId; + DataSet.prototype._getItem = function (id, types) { + var field, value; - var addOrUpdate = function addOrUpdate(item) { - var id = item[fieldId]; - if (me._data[id]) { - // update item - id = me._updateItem(item); - updatedIds.push(id); - updatedData.push(item); - } else { - // add new item - id = me._addItem(item); - addedIds.push(id); - } - }; + // get the item from the dataset + var raw = this._data[id]; + if (!raw) { + return null; + } - if (Array.isArray(data)) { - // Array - for (var i = 0, len = data.length; i < len; i++) { - addOrUpdate(data[i]); + // convert the items field types + var converted = {}; + if (types) { + for (field in raw) { + if (raw.hasOwnProperty(field)) { + value = raw[field]; + converted[field] = util.convert(value, types[field]); + } } - } else if (data instanceof Object) { - // Single item - addOrUpdate(data); } else { - throw new Error('Unknown dataType'); + // no field types specified, no converting needed + for (field in raw) { + if (raw.hasOwnProperty(field)) { + value = raw[field]; + converted[field] = value; + } + } } + return converted; + }; - if (addedIds.length) { - this._trigger('add', { items: addedIds }, senderId); + /** + * Update a single item: merge with existing item. + * Will fail when the item has no id, or when there does not exist an item + * with the same id. + * @param {Object} item + * @return {String} id + * @private + */ + DataSet.prototype._updateItem = function (item) { + var id = item[this._fieldId]; + if (id == undefined) { + throw new Error('Cannot update item: item has no id (item: ' + JSON.stringify(item) + ')'); } - if (updatedIds.length) { - this._trigger('update', { items: updatedIds, data: updatedData }, senderId); + var d = this._data[id]; + if (!d) { + // item doesn't exist + throw new Error('Cannot update item: no item with id ' + id + ' found'); } - return addedIds.concat(updatedIds); + // merge with current item + for (var field in item) { + if (item.hasOwnProperty(field)) { + var fieldType = this._type[field]; // type may be undefined + d[field] = util.convert(item[field], fieldType); + } + } + + return id; }; + module.exports = DataSet; + +/***/ }, +/* 4 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + + var util = __webpack_require__(57); + var DataSet = __webpack_require__(3); + /** - * Get a data item or multiple items. - * - * Usage: - * - * get() - * get(options: Object) - * - * get(id: Number | String) - * get(id: Number | String, options: Object) + * DataView * - * get(ids: Number[] | String[]) - * get(ids: Number[] | String[], options: Object) + * a dataview offers a filtered view on a dataset or an other dataview. * - * Where: + * @param {DataSet | DataView} data + * @param {Object} [options] Available options: see method get * - * {Number | String} id The id of an item - * {Number[] | String{}} ids An array with ids of items - * {Object} options An Object with options. Available options: - * {String} [returnType] Type of data to be returned. - * Can be 'Array' (default) or 'Object'. - * {Object.} [type] - * {String[]} [fields] field names to be returned - * {function} [filter] filter items - * {String | function} [order] Order the items by a field name or custom sort function. - * @throws Error + * @constructor DataView */ - DataSet.prototype.get = function (args) { + function DataView(data, options) { + this._data = null; + this._ids = {}; // ids of the items currently in memory (just contains a boolean true) + this.length = 0; // number of items in the DataView + this._options = options || {}; + this._fieldId = 'id'; // name of the field containing id + this._subscribers = {}; // event subscribers + var me = this; + this.listener = function () { + me._onEvent.apply(me, arguments); + }; - // parse the arguments - var id, ids, options; - var firstType = util.getType(arguments[0]); - if (firstType == 'String' || firstType == 'Number') { - // get(id [, options]) - id = arguments[0]; - options = arguments[1]; - } else if (firstType == 'Array') { - // get(ids [, options]) - ids = arguments[0]; - options = arguments[1]; - } else { - // get([, options]) - options = arguments[0]; - } + this.setData(data); + } - // determine the return type - var returnType; - if (options && options.returnType) { - var allowedValues = ['Array', 'Object']; - returnType = allowedValues.indexOf(options.returnType) == -1 ? 'Array' : options.returnType; - } else { - returnType = 'Array'; - } + // TODO: implement a function .config() to dynamically update things like configured filter + // and trigger changes accordingly - // build options - var type = options && options.type || this._options.type; - var filter = options && options.filter; - var items = [], - item, - itemId, - i, - len; + /** + * Set a data source for the view + * @param {DataSet | DataView} data + */ + DataView.prototype.setData = function (data) { + var ids, i, len; - // convert items - if (id != undefined) { - // return a single item - item = me._getItem(id, type); - if (filter && !filter(item)) { - item = null; - } - } else if (ids != undefined) { - // return a subset of items - for (i = 0, len = ids.length; i < len; i++) { - item = me._getItem(ids[i], type); - if (!filter || filter(item)) { - items.push(item); - } + if (this._data) { + // unsubscribe from current dataset + if (this._data.off) { + this._data.off('*', this.listener); } - } else { - // return all items - for (itemId in this._data) { - if (this._data.hasOwnProperty(itemId)) { - item = me._getItem(itemId, type); - if (!filter || filter(item)) { - items.push(item); - } + + // trigger a remove of all items in memory + ids = []; + for (var id in this._ids) { + if (this._ids.hasOwnProperty(id)) { + ids.push(id); } } + this._ids = {}; + this.length = 0; + this._trigger('remove', { items: ids }); } - // order the results - if (options && options.order && id == undefined) { - this._sort(items, options.order); - } + this._data = data; - // filter fields of the items - if (options && options.fields) { - var fields = options.fields; - if (id != undefined) { - item = this._filterFields(item, fields); - } else { - for (i = 0, len = items.length; i < len; i++) { - items[i] = this._filterFields(items[i], fields); - } - } - } + if (this._data) { + // update fieldId + this._fieldId = this._options.fieldId || this._data && this._data.options && this._data.options.fieldId || 'id'; - // return the results - if (returnType == 'Object') { - var result = {}; - for (i = 0; i < items.length; i++) { - result[items[i].id] = items[i]; + // trigger an add of all added items + ids = this._data.getIds({ filter: this._options && this._options.filter }); + for (i = 0, len = ids.length; i < len; i++) { + id = ids[i]; + this._ids[id] = true; } - return result; - } else { - if (id != undefined) { - // a single item - return item; - } else { - // just return our array - return items; + this.length = ids.length; + this._trigger('add', { items: ids }); + + // subscribe to new dataset + if (this._data.on) { + this._data.on('*', this.listener); } } }; /** - * Get ids of all items or from a filtered set of items. - * @param {Object} [options] An Object with options. Available options: - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Array} ids + * Refresh the DataView. Useful when the DataView has a filter function + * containing a variable parameter. */ - DataSet.prototype.getIds = function (options) { - var data = this._data, - filter = options && options.filter, - order = options && options.order, - type = options && options.type || this._options.type, - i, - len, - id, - item, - items, - ids = []; - - if (filter) { - // get filtered items - if (order) { - // create ordered list - items = []; - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (filter(item)) { - items.push(item); - } - } - } - - this._sort(items, order); + DataView.prototype.refresh = function () { + var id; + var ids = this._data.getIds({ filter: this._options && this._options.filter }); + var newIds = {}; + var added = []; + var removed = []; - for (i = 0, len = items.length; i < len; i++) { - ids[i] = items[i][this._fieldId]; - } - } else { - // create unordered list - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (filter(item)) { - ids.push(item[this._fieldId]); - } - } - } + // check for additions + for (var i = 0; i < ids.length; i++) { + id = ids[i]; + newIds[id] = true; + if (!this._ids[id]) { + added.push(id); + this._ids[id] = true; + this.length++; } - } else { - // get all items - if (order) { - // create an ordered list - items = []; - for (id in data) { - if (data.hasOwnProperty(id)) { - items.push(data[id]); - } - } - - this._sort(items, order); + } - for (i = 0, len = items.length; i < len; i++) { - ids[i] = items[i][this._fieldId]; - } - } else { - // create unordered list - for (id in data) { - if (data.hasOwnProperty(id)) { - item = data[id]; - ids.push(item[this._fieldId]); - } + // check for removals + for (id in this._ids) { + if (this._ids.hasOwnProperty(id)) { + if (!newIds[id]) { + removed.push(id); + delete this._ids[id]; + this.length--; } } } - return ids; - }; - - /** - * Returns the DataSet itself. Is overwritten for example by the DataView, - * which returns the DataSet it is connected to instead. - */ - DataSet.prototype.getDataSet = function () { - return this; + // trigger events + if (added.length) { + this._trigger('add', { items: added }); + } + if (removed.length) { + this._trigger('remove', { items: removed }); + } }; /** - * Execute a callback function for every item in the dataset. - * @param {function} callback - * @param {Object} [options] Available options: - * {Object.} [type] - * {String[]} [fields] filter fields + * Get data from the data view + * + * Usage: + * + * get() + * get(options: Object) + * get(options: Object, data: Array | DataTable) + * + * get(id: Number) + * get(id: Number, options: Object) + * get(id: Number, options: Object, data: Array | DataTable) + * + * get(ids: Number[]) + * get(ids: Number[], options: Object) + * get(ids: Number[], options: Object, data: Array | DataTable) + * + * Where: + * + * {Number | String} id The id of an item + * {Number[] | String{}} ids An array with ids of items + * {Object} options An Object with options. Available options: + * {String} [type] Type of data to be returned. Can + * be 'DataTable' or 'Array' (default) + * {Object.} [convert] + * {String[]} [fields] field names to be returned * {function} [filter] filter items * {String | function} [order] Order the items by * a field name or custom sort function. + * {Array | DataTable} [data] If provided, items will be appended to this + * array or table. Required in case of Google + * DataTable. + * @param args */ - DataSet.prototype.forEach = function (callback, options) { - var filter = options && options.filter, - type = options && options.type || this._options.type, - data = this._data, - item, - id; - - if (options && options.order) { - // execute forEach on ordered list - var items = this.get(options); + DataView.prototype.get = function (args) { + var me = this; - for (var i = 0, len = items.length; i < len; i++) { - item = items[i]; - id = item[this._fieldId]; - callback(item, id); - } + // parse the arguments + var ids, options, data; + var firstType = util.getType(arguments[0]); + if (firstType == 'String' || firstType == 'Number' || firstType == 'Array') { + // get(id(s) [, options] [, data]) + ids = arguments[0]; // can be a single id or an array with ids + options = arguments[1]; + data = arguments[2]; } else { - // unordered - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (!filter || filter(item)) { - callback(item, id); - } - } - } + // get([, options] [, data]) + options = arguments[0]; + data = arguments[1]; } - }; - /** - * Map every item in the dataset. - * @param {function} callback - * @param {Object} [options] Available options: - * {Object.} [type] - * {String[]} [fields] filter fields - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Object[]} mappedItems - */ - DataSet.prototype.map = function (callback, options) { - var filter = options && options.filter, - type = options && options.type || this._options.type, - mappedItems = [], - data = this._data, - item; + // extend the options with the default options and provided options + var viewOptions = util.extend({}, this._options, options); - // convert and filter items - for (var id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (!filter || filter(item)) { - mappedItems.push(callback(item, id)); - } - } + // create a combined filter method when needed + if (this._options.filter && options && options.filter) { + viewOptions.filter = function (item) { + return me._options.filter(item) && options.filter(item); + }; } - // order items - if (options && options.order) { - this._sort(mappedItems, options.order); + // build up the call to the linked data set + var getArguments = []; + if (ids != undefined) { + getArguments.push(ids); } + getArguments.push(viewOptions); + getArguments.push(data); - return mappedItems; + return this._data && this._data.get.apply(this._data, getArguments); }; /** - * Filter the fields of an item - * @param {Object | null} item - * @param {String[]} fields Field names - * @return {Object | null} filteredItem or null if no item is provided - * @private + * Get ids of all items or from a filtered set of items. + * @param {Object} [options] An Object with options. Available options: + * {function} [filter] filter items + * {String | function} [order] Order the items by + * a field name or custom sort function. + * @return {Array} ids */ - DataSet.prototype._filterFields = function (item, fields) { - if (!item) { - // item is null - return item; - } + DataView.prototype.getIds = function (options) { + var ids; - var filteredItem = {}; + if (this._data) { + var defaultFilter = this._options.filter; + var filter; - if (Array.isArray(fields)) { - for (var field in item) { - if (item.hasOwnProperty(field) && fields.indexOf(field) != -1) { - filteredItem[field] = item[field]; - } - } - } else { - for (var field in item) { - if (item.hasOwnProperty(field) && fields.hasOwnProperty(field)) { - filteredItem[fields[field]] = item[field]; + if (options && options.filter) { + if (defaultFilter) { + filter = function (item) { + return defaultFilter(item) && options.filter(item); + }; + } else { + filter = options.filter; } + } else { + filter = defaultFilter; } - } - return filteredItem; - }; - - /** - * Sort the provided array with items - * @param {Object[]} items - * @param {String | function} order A field name or custom sort function. - * @private - */ - DataSet.prototype._sort = function (items, order) { - if (util.isString(order)) { - // order by provided field name - var name = order; // field name - items.sort(function (a, b) { - var av = a[name]; - var bv = b[name]; - return av > bv ? 1 : av < bv ? -1 : 0; + ids = this._data.getIds({ + filter: filter, + order: options && options.order }); - } else if (typeof order === 'function') { - // order by sort function - items.sort(order); - } - // TODO: extend order by an Object {field:String, direction:String} - // where direction can be 'asc' or 'desc' - else { - throw new TypeError('Order must be a function or a string'); - } - }; - - /** - * Remove an object by pointer or by id - * @param {String | Number | Object | Array} id Object or id, or an array with - * objects or ids to be removed - * @param {String} [senderId] Optional sender id - * @return {Array} removedIds - */ - DataSet.prototype.remove = function (id, senderId) { - var removedIds = [], - i, - len, - removedId; - - if (Array.isArray(id)) { - for (i = 0, len = id.length; i < len; i++) { - removedId = this._remove(id[i]); - if (removedId != null) { - removedIds.push(removedId); - } - } } else { - removedId = this._remove(id); - if (removedId != null) { - removedIds.push(removedId); - } - } - - if (removedIds.length) { - this._trigger('remove', { items: removedIds }, senderId); + ids = []; } - return removedIds; + return ids; }; /** - * Remove an item by its id - * @param {Number | String | Object} id id or item - * @returns {Number | String | null} id - * @private + * Get the DataSet to which this DataView is connected. In case there is a chain + * of multiple DataViews, the root DataSet of this chain is returned. + * @return {DataSet} dataSet */ - DataSet.prototype._remove = function (id) { - if (util.isNumber(id) || util.isString(id)) { - if (this._data[id]) { - delete this._data[id]; - this.length--; - return id; - } - } else if (id instanceof Object) { - var itemId = id[this._fieldId]; - if (itemId && this._data[itemId]) { - delete this._data[itemId]; - this.length--; - return itemId; - } + DataView.prototype.getDataSet = function () { + var dataSet = this; + while (dataSet instanceof DataView) { + dataSet = dataSet._data; } - return null; + return dataSet || null; }; /** - * Clear the data - * @param {String} [senderId] Optional sender id - * @return {Array} removedIds The ids of all removed items + * Event listener. Will propagate all events from the connected data set to + * the subscribers of the DataView, but will filter the items and only trigger + * when there are changes in the filtered data set. + * @param {String} event + * @param {Object | null} params + * @param {String} senderId + * @private */ - DataSet.prototype.clear = function (senderId) { - var ids = Object.keys(this._data); + DataView.prototype._onEvent = function (event, params, senderId) { + var i, len, id, item; + var ids = params && params.items; + var data = this._data; + var updatedData = []; + var added = []; + var updated = []; + var removed = []; - this._data = {}; - this.length = 0; + if (ids && data) { + switch (event) { + case 'add': + // filter the ids of the added items + for (i = 0, len = ids.length; i < len; i++) { + id = ids[i]; + item = this.get(id); + if (item) { + this._ids[id] = true; + added.push(id); + } + } - this._trigger('remove', { items: ids }, senderId); + break; - return ids; - }; - - /** - * Find the item with maximum value of a specified field - * @param {String} field - * @return {Object | null} item Item containing max value, or null if no items - */ - DataSet.prototype.max = function (field) { - var data = this._data, - max = null, - maxField = null; - - for (var id in data) { - if (data.hasOwnProperty(id)) { - var item = data[id]; - var itemField = item[field]; - if (itemField != null && (!max || itemField > maxField)) { - max = item; - maxField = itemField; - } - } - } - - return max; - }; - - /** - * Find the item with minimum value of a specified field - * @param {String} field - * @return {Object | null} item Item containing max value, or null if no items - */ - DataSet.prototype.min = function (field) { - var data = this._data, - min = null, - minField = null; - - for (var id in data) { - if (data.hasOwnProperty(id)) { - var item = data[id]; - var itemField = item[field]; - if (itemField != null && (!min || itemField < minField)) { - min = item; - minField = itemField; - } - } - } - - return min; - }; - - /** - * Find all distinct values of a specified field - * @param {String} field - * @return {Array} values Array containing all distinct values. If data items - * do not contain the specified field are ignored. - * The returned array is unordered. - */ - DataSet.prototype.distinct = function (field) { - var data = this._data; - var values = []; - var fieldType = this._options.type && this._options.type[field] || null; - var count = 0; - var i; - - for (var prop in data) { - if (data.hasOwnProperty(prop)) { - var item = data[prop]; - var value = item[field]; - var exists = false; - for (i = 0; i < count; i++) { - if (values[i] == value) { - exists = true; - break; - } - } - if (!exists && value !== undefined) { - values[count] = value; - count++; - } - } - } - - if (fieldType) { - for (i = 0; i < values.length; i++) { - values[i] = util.convert(values[i], fieldType); - } - } - - return values; - }; - - /** - * Add a single item. Will fail when an item with the same id already exists. - * @param {Object} item - * @return {String} id - * @private - */ - DataSet.prototype._addItem = function (item) { - var id = item[this._fieldId]; - - if (id != undefined) { - // check whether this id is already taken - if (this._data[id]) { - // item already exists - throw new Error('Cannot add item: item with id ' + id + ' already exists'); - } - } else { - // generate an id - id = util.randomUUID(); - item[this._fieldId] = id; - } - - var d = {}; - for (var field in item) { - if (item.hasOwnProperty(field)) { - var fieldType = this._type[field]; // type may be undefined - d[field] = util.convert(item[field], fieldType); - } - } - this._data[id] = d; - this.length++; - - return id; - }; - - /** - * Get an item. Fields can be converted to a specific type - * @param {String} id - * @param {Object.} [types] field types to convert - * @return {Object | null} item - * @private - */ - DataSet.prototype._getItem = function (id, types) { - var field, value; - - // get the item from the dataset - var raw = this._data[id]; - if (!raw) { - return null; - } - - // convert the items field types - var converted = {}; - if (types) { - for (field in raw) { - if (raw.hasOwnProperty(field)) { - value = raw[field]; - converted[field] = util.convert(value, types[field]); - } - } - } else { - // no field types specified, no converting needed - for (field in raw) { - if (raw.hasOwnProperty(field)) { - value = raw[field]; - converted[field] = value; - } - } - } - return converted; - }; - - /** - * Update a single item: merge with existing item. - * Will fail when the item has no id, or when there does not exist an item - * with the same id. - * @param {Object} item - * @return {String} id - * @private - */ - DataSet.prototype._updateItem = function (item) { - var id = item[this._fieldId]; - if (id == undefined) { - throw new Error('Cannot update item: item has no id (item: ' + JSON.stringify(item) + ')'); - } - var d = this._data[id]; - if (!d) { - // item doesn't exist - throw new Error('Cannot update item: no item with id ' + id + ' found'); - } - - // merge with current item - for (var field in item) { - if (item.hasOwnProperty(field)) { - var fieldType = this._type[field]; // type may be undefined - d[field] = util.convert(item[field], fieldType); - } - } - - return id; - }; - - module.exports = DataSet; - -/***/ }, -/* 4 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var util = __webpack_require__(1); - var DataSet = __webpack_require__(3); - - /** - * DataView - * - * a dataview offers a filtered view on a dataset or an other dataview. - * - * @param {DataSet | DataView} data - * @param {Object} [options] Available options: see method get - * - * @constructor DataView - */ - function DataView(data, options) { - this._data = null; - this._ids = {}; // ids of the items currently in memory (just contains a boolean true) - this.length = 0; // number of items in the DataView - this._options = options || {}; - this._fieldId = 'id'; // name of the field containing id - this._subscribers = {}; // event subscribers - - var me = this; - this.listener = function () { - me._onEvent.apply(me, arguments); - }; - - this.setData(data); - } - - // TODO: implement a function .config() to dynamically update things like configured filter - // and trigger changes accordingly - - /** - * Set a data source for the view - * @param {DataSet | DataView} data - */ - DataView.prototype.setData = function (data) { - var ids, i, len; - - if (this._data) { - // unsubscribe from current dataset - if (this._data.off) { - this._data.off('*', this.listener); - } - - // trigger a remove of all items in memory - ids = []; - for (var id in this._ids) { - if (this._ids.hasOwnProperty(id)) { - ids.push(id); - } - } - this._ids = {}; - this.length = 0; - this._trigger('remove', { items: ids }); - } - - this._data = data; - - if (this._data) { - // update fieldId - this._fieldId = this._options.fieldId || this._data && this._data.options && this._data.options.fieldId || 'id'; - - // trigger an add of all added items - ids = this._data.getIds({ filter: this._options && this._options.filter }); - for (i = 0, len = ids.length; i < len; i++) { - id = ids[i]; - this._ids[id] = true; - } - this.length = ids.length; - this._trigger('add', { items: ids }); - - // subscribe to new dataset - if (this._data.on) { - this._data.on('*', this.listener); - } - } - }; - - /** - * Refresh the DataView. Useful when the DataView has a filter function - * containing a variable parameter. - */ - DataView.prototype.refresh = function () { - var id; - var ids = this._data.getIds({ filter: this._options && this._options.filter }); - var newIds = {}; - var added = []; - var removed = []; - - // check for additions - for (var i = 0; i < ids.length; i++) { - id = ids[i]; - newIds[id] = true; - if (!this._ids[id]) { - added.push(id); - this._ids[id] = true; - this.length++; - } - } - - // check for removals - for (id in this._ids) { - if (this._ids.hasOwnProperty(id)) { - if (!newIds[id]) { - removed.push(id); - delete this._ids[id]; - this.length--; - } - } - } - - // trigger events - if (added.length) { - this._trigger('add', { items: added }); - } - if (removed.length) { - this._trigger('remove', { items: removed }); - } - }; - - /** - * Get data from the data view - * - * Usage: - * - * get() - * get(options: Object) - * get(options: Object, data: Array | DataTable) - * - * get(id: Number) - * get(id: Number, options: Object) - * get(id: Number, options: Object, data: Array | DataTable) - * - * get(ids: Number[]) - * get(ids: Number[], options: Object) - * get(ids: Number[], options: Object, data: Array | DataTable) - * - * Where: - * - * {Number | String} id The id of an item - * {Number[] | String{}} ids An array with ids of items - * {Object} options An Object with options. Available options: - * {String} [type] Type of data to be returned. Can - * be 'DataTable' or 'Array' (default) - * {Object.} [convert] - * {String[]} [fields] field names to be returned - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * {Array | DataTable} [data] If provided, items will be appended to this - * array or table. Required in case of Google - * DataTable. - * @param args - */ - DataView.prototype.get = function (args) { - var me = this; - - // parse the arguments - var ids, options, data; - var firstType = util.getType(arguments[0]); - if (firstType == 'String' || firstType == 'Number' || firstType == 'Array') { - // get(id(s) [, options] [, data]) - ids = arguments[0]; // can be a single id or an array with ids - options = arguments[1]; - data = arguments[2]; - } else { - // get([, options] [, data]) - options = arguments[0]; - data = arguments[1]; - } - - // extend the options with the default options and provided options - var viewOptions = util.extend({}, this._options, options); - - // create a combined filter method when needed - if (this._options.filter && options && options.filter) { - viewOptions.filter = function (item) { - return me._options.filter(item) && options.filter(item); - }; - } - - // build up the call to the linked data set - var getArguments = []; - if (ids != undefined) { - getArguments.push(ids); - } - getArguments.push(viewOptions); - getArguments.push(data); - - return this._data && this._data.get.apply(this._data, getArguments); - }; - - /** - * Get ids of all items or from a filtered set of items. - * @param {Object} [options] An Object with options. Available options: - * {function} [filter] filter items - * {String | function} [order] Order the items by - * a field name or custom sort function. - * @return {Array} ids - */ - DataView.prototype.getIds = function (options) { - var ids; - - if (this._data) { - var defaultFilter = this._options.filter; - var filter; - - if (options && options.filter) { - if (defaultFilter) { - filter = function (item) { - return defaultFilter(item) && options.filter(item); - }; - } else { - filter = options.filter; - } - } else { - filter = defaultFilter; - } - - ids = this._data.getIds({ - filter: filter, - order: options && options.order - }); - } else { - ids = []; - } - - return ids; - }; - - /** - * Get the DataSet to which this DataView is connected. In case there is a chain - * of multiple DataViews, the root DataSet of this chain is returned. - * @return {DataSet} dataSet - */ - DataView.prototype.getDataSet = function () { - var dataSet = this; - while (dataSet instanceof DataView) { - dataSet = dataSet._data; - } - return dataSet || null; - }; - - /** - * Event listener. Will propagate all events from the connected data set to - * the subscribers of the DataView, but will filter the items and only trigger - * when there are changes in the filtered data set. - * @param {String} event - * @param {Object | null} params - * @param {String} senderId - * @private - */ - DataView.prototype._onEvent = function (event, params, senderId) { - var i, len, id, item; - var ids = params && params.items; - var data = this._data; - var updatedData = []; - var added = []; - var updated = []; - var removed = []; - - if (ids && data) { - switch (event) { - case 'add': - // filter the ids of the added items - for (i = 0, len = ids.length; i < len; i++) { - id = ids[i]; - item = this.get(id); - if (item) { - this._ids[id] = true; - added.push(id); - } - } - - break; - - case 'update': - // determine the event from the views viewpoint: an updated - // item can be added, updated, or removed from this view. - for (i = 0, len = ids.length; i < len; i++) { - id = ids[i]; - item = this.get(id); + case 'update': + // determine the event from the views viewpoint: an updated + // item can be added, updated, or removed from this view. + for (i = 0, len = ids.length; i < len; i++) { + id = ids[i]; + item = this.get(id); if (item) { if (this._ids[id]) { @@ -3156,10 +2553,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Point3d = __webpack_require__(10); var Point2d = __webpack_require__(9); var Camera = __webpack_require__(7); @@ -5827,7 +5224,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @constructor Slider @@ -6319,23 +5716,23 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); var Range = __webpack_require__(17); - var Core = __webpack_require__(44); + var Core = __webpack_require__(43); var TimeAxis = __webpack_require__(35); var CurrentTime = __webpack_require__(26); var CustomTime = __webpack_require__(27); var ItemSet = __webpack_require__(32); - var Configurator = __webpack_require__(45); - var Validator = __webpack_require__(46)['default']; - var printStyle = __webpack_require__(46).printStyle; - var allOptions = __webpack_require__(47).allOptions; - var configureOptions = __webpack_require__(47).configureOptions; + var Configurator = __webpack_require__(44); + var Validator = __webpack_require__(45)['default']; + var printStyle = __webpack_require__(45).printStyle; + var allOptions = __webpack_require__(46).allOptions; + var configureOptions = __webpack_require__(46).configureOptions; /** * Create a timeline visualization @@ -6760,23 +6157,23 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); var Range = __webpack_require__(17); - var Core = __webpack_require__(44); + var Core = __webpack_require__(43); var TimeAxis = __webpack_require__(35); var CurrentTime = __webpack_require__(26); var CustomTime = __webpack_require__(27); var LineGraph = __webpack_require__(34); - var Configurator = __webpack_require__(45); - var Validator = __webpack_require__(46)['default']; - var printStyle = __webpack_require__(46).printStyle; - var allOptions = __webpack_require__(48).allOptions; - var configureOptions = __webpack_require__(48).configureOptions; + var Configurator = __webpack_require__(44); + var Validator = __webpack_require__(45)['default']; + var printStyle = __webpack_require__(45).printStyle; + var allOptions = __webpack_require__(47).allOptions; + var configureOptions = __webpack_require__(47).configureOptions; /** * Create a timeline visualization @@ -7777,8 +7174,8 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); - var hammerUtil = __webpack_require__(49); + var util = __webpack_require__(57); + var hammerUtil = __webpack_require__(48); var moment = __webpack_require__(40); var Component = __webpack_require__(25); var DateUtil = __webpack_require__(15); @@ -8579,7 +7976,7 @@ return /******/ (function(modules) { // webpackBootstrap var moment = __webpack_require__(40); var DateUtil = __webpack_require__(15); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @constructor TimeStep @@ -9267,8 +8664,230 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; + var Item = __webpack_require__(21); + var util = __webpack_require__(57); + + /** + * @constructor BoxItem + * @extends Item + * @param {Object} data Object containing parameters start + * content, className. + * @param {{toScreen: function, toTime: function}} conversion + * Conversion functions from time to screen and vice versa + * @param {Object} [options] Configuration options + * // TODO: describe available options + */ + function BoxItem(data, conversion, options) { + this.props = { + dot: { + width: 0, + height: 0 + }, + line: { + width: 0, + height: 0 + } + }; + + // validate data + if (data) { + if (data.start == undefined) { + throw new Error('Property "start" missing in item ' + data); + } + } + + Item.call(this, data, conversion, options); + } + + BoxItem.prototype = new Item(null, null, null); + + /** + * Check whether this item is visible inside given range + * @returns {{start: Number, end: Number}} range with a timestamp for start and end + * @returns {boolean} True if visible + */ + BoxItem.prototype.isVisible = function (range) { + // determine visibility + // TODO: account for the real width of the item. Right now we just add 1/4 to the window + var interval = (range.end - range.start) / 4; + return this.data.start > range.start - interval && this.data.start < range.end + interval; + }; + + /** + * Repaint the item + */ + BoxItem.prototype.redraw = function () { + var dom = this.dom; + if (!dom) { + // create DOM + this.dom = {}; + dom = this.dom; + + // create main box + dom.box = document.createElement('DIV'); + + // contents box (inside the background box). used for making margins + dom.content = document.createElement('DIV'); + dom.content.className = 'vis-item-content'; + dom.box.appendChild(dom.content); + + // line to axis + dom.line = document.createElement('DIV'); + dom.line.className = 'vis-line'; + + // dot on axis + dom.dot = document.createElement('DIV'); + dom.dot.className = 'vis-dot'; + + // attach this item as attribute + dom.box['timeline-item'] = this; + + this.dirty = true; + } + + // append DOM to parent DOM + if (!this.parent) { + throw new Error('Cannot redraw item: no parent attached'); + } + if (!dom.box.parentNode) { + var foreground = this.parent.dom.foreground; + if (!foreground) throw new Error('Cannot redraw item: parent has no foreground container element'); + foreground.appendChild(dom.box); + } + if (!dom.line.parentNode) { + var background = this.parent.dom.background; + if (!background) throw new Error('Cannot redraw item: parent has no background container element'); + background.appendChild(dom.line); + } + if (!dom.dot.parentNode) { + var axis = this.parent.dom.axis; + if (!background) throw new Error('Cannot redraw item: parent has no axis container element'); + axis.appendChild(dom.dot); + } + this.displayed = true; + + // Update DOM when item is marked dirty. An item is marked dirty when: + // - the item is not yet rendered + // - the item's data is changed + // - the item is selected/deselected + if (this.dirty) { + this._updateContents(this.dom.content); + this._updateTitle(this.dom.box); + this._updateDataAttributes(this.dom.box); + this._updateStyle(this.dom.box); + + // update class + var className = (this.data.className ? ' ' + this.data.className : '') + (this.selected ? ' vis-selected' : ''); + dom.box.className = 'vis-item vis-box' + className; + dom.line.className = 'vis-item vis-line' + className; + dom.dot.className = 'vis-item vis-dot' + className; + + // recalculate size + this.props.dot.height = dom.dot.offsetHeight; + this.props.dot.width = dom.dot.offsetWidth; + this.props.line.width = dom.line.offsetWidth; + this.width = dom.box.offsetWidth; + this.height = dom.box.offsetHeight; + + this.dirty = false; + } + + this._repaintDeleteButton(dom.box); + }; + + /** + * Show the item in the DOM (when not already displayed). The items DOM will + * be created when needed. + */ + BoxItem.prototype.show = function () { + if (!this.displayed) { + this.redraw(); + } + }; + + /** + * Hide the item from the DOM (when visible) + */ + BoxItem.prototype.hide = function () { + if (this.displayed) { + var dom = this.dom; + + if (dom.box.parentNode) dom.box.parentNode.removeChild(dom.box); + if (dom.line.parentNode) dom.line.parentNode.removeChild(dom.line); + if (dom.dot.parentNode) dom.dot.parentNode.removeChild(dom.dot); + + this.displayed = false; + } + }; + + /** + * Reposition the item horizontally + * @Override + */ + BoxItem.prototype.repositionX = function () { + var start = this.conversion.toScreen(this.data.start); + var align = this.options.align; + var left; + + // calculate left position of the box + if (align == 'right') { + this.left = start - this.width; + } else if (align == 'left') { + this.left = start; + } else { + // default or 'center' + this.left = start - this.width / 2; + } + + // reposition box + this.dom.box.style.left = this.left + 'px'; + + // reposition line + this.dom.line.style.left = start - this.props.line.width / 2 + 'px'; + + // reposition dot + this.dom.dot.style.left = start - this.props.dot.width / 2 + 'px'; + }; + + /** + * Reposition the item vertically + * @Override + */ + BoxItem.prototype.repositionY = function () { + var orientation = this.options.orientation.item; + var box = this.dom.box; + var line = this.dom.line; + var dot = this.dom.dot; + + if (orientation == 'top') { + box.style.top = (this.top || 0) + 'px'; + + line.style.top = '0'; + line.style.height = this.parent.top + this.top + 1 + 'px'; + line.style.bottom = ''; + } else { + // orientation 'bottom' + var itemSetHeight = this.parent.itemSet.props.height; // TODO: this is nasty + var lineHeight = itemSetHeight - this.parent.top - this.parent.height + this.top; + + box.style.top = (this.parent.height - this.top - this.height || 0) + 'px'; + line.style.top = itemSetHeight - lineHeight + 'px'; + line.style.bottom = '0'; + } + + dot.style.top = -this.props.dot.height / 2 + 'px'; + }; + + module.exports = BoxItem; + +/***/ }, +/* 21 */ +/***/ function(module, exports, __webpack_require__) { + + 'use strict'; + var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @constructor Item @@ -9536,13 +9155,13 @@ return /******/ (function(modules) { // webpackBootstrap // should be implemented by the item /***/ }, -/* 21 */ +/* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var Hammer = __webpack_require__(41); - var Item = __webpack_require__(20); + var Item = __webpack_require__(21); var BackgroundGroup = __webpack_require__(31); var RangeItem = __webpack_require__(24); @@ -9756,235 +9375,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = BackgroundItem; -/***/ }, -/* 22 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Item = __webpack_require__(20); - var util = __webpack_require__(1); - - /** - * @constructor BoxItem - * @extends Item - * @param {Object} data Object containing parameters start - * content, className. - * @param {{toScreen: function, toTime: function}} conversion - * Conversion functions from time to screen and vice versa - * @param {Object} [options] Configuration options - * // TODO: describe available options - */ - function BoxItem(data, conversion, options) { - this.props = { - dot: { - width: 0, - height: 0 - }, - line: { - width: 0, - height: 0 - } - }; - - // validate data - if (data) { - if (data.start == undefined) { - throw new Error('Property "start" missing in item ' + data); - } - } - - Item.call(this, data, conversion, options); - } - - BoxItem.prototype = new Item(null, null, null); - - /** - * Check whether this item is visible inside given range - * @returns {{start: Number, end: Number}} range with a timestamp for start and end - * @returns {boolean} True if visible - */ - BoxItem.prototype.isVisible = function (range) { - // determine visibility - // TODO: account for the real width of the item. Right now we just add 1/4 to the window - var interval = (range.end - range.start) / 4; - return this.data.start > range.start - interval && this.data.start < range.end + interval; - }; - - /** - * Repaint the item - */ - BoxItem.prototype.redraw = function () { - var dom = this.dom; - if (!dom) { - // create DOM - this.dom = {}; - dom = this.dom; - - // create main box - dom.box = document.createElement('DIV'); - - // contents box (inside the background box). used for making margins - dom.content = document.createElement('DIV'); - dom.content.className = 'vis-item-content'; - dom.box.appendChild(dom.content); - - // line to axis - dom.line = document.createElement('DIV'); - dom.line.className = 'vis-line'; - - // dot on axis - dom.dot = document.createElement('DIV'); - dom.dot.className = 'vis-dot'; - - // attach this item as attribute - dom.box['timeline-item'] = this; - - this.dirty = true; - } - - // append DOM to parent DOM - if (!this.parent) { - throw new Error('Cannot redraw item: no parent attached'); - } - if (!dom.box.parentNode) { - var foreground = this.parent.dom.foreground; - if (!foreground) throw new Error('Cannot redraw item: parent has no foreground container element'); - foreground.appendChild(dom.box); - } - if (!dom.line.parentNode) { - var background = this.parent.dom.background; - if (!background) throw new Error('Cannot redraw item: parent has no background container element'); - background.appendChild(dom.line); - } - if (!dom.dot.parentNode) { - var axis = this.parent.dom.axis; - if (!background) throw new Error('Cannot redraw item: parent has no axis container element'); - axis.appendChild(dom.dot); - } - this.displayed = true; - - // Update DOM when item is marked dirty. An item is marked dirty when: - // - the item is not yet rendered - // - the item's data is changed - // - the item is selected/deselected - if (this.dirty) { - this._updateContents(this.dom.content); - this._updateTitle(this.dom.box); - this._updateDataAttributes(this.dom.box); - this._updateStyle(this.dom.box); - - // update class - var className = (this.data.className ? ' ' + this.data.className : '') + (this.selected ? ' vis-selected' : ''); - dom.box.className = 'vis-item vis-box' + className; - dom.line.className = 'vis-item vis-line' + className; - dom.dot.className = 'vis-item vis-dot' + className; - - // recalculate size - this.props.dot.height = dom.dot.offsetHeight; - this.props.dot.width = dom.dot.offsetWidth; - this.props.line.width = dom.line.offsetWidth; - this.width = dom.box.offsetWidth; - this.height = dom.box.offsetHeight; - - this.dirty = false; - } - - this._repaintDeleteButton(dom.box); - }; - - /** - * Show the item in the DOM (when not already displayed). The items DOM will - * be created when needed. - */ - BoxItem.prototype.show = function () { - if (!this.displayed) { - this.redraw(); - } - }; - - /** - * Hide the item from the DOM (when visible) - */ - BoxItem.prototype.hide = function () { - if (this.displayed) { - var dom = this.dom; - - if (dom.box.parentNode) dom.box.parentNode.removeChild(dom.box); - if (dom.line.parentNode) dom.line.parentNode.removeChild(dom.line); - if (dom.dot.parentNode) dom.dot.parentNode.removeChild(dom.dot); - - this.displayed = false; - } - }; - - /** - * Reposition the item horizontally - * @Override - */ - BoxItem.prototype.repositionX = function () { - var start = this.conversion.toScreen(this.data.start); - var align = this.options.align; - var left; - - // calculate left position of the box - if (align == 'right') { - this.left = start - this.width; - } else if (align == 'left') { - this.left = start; - } else { - // default or 'center' - this.left = start - this.width / 2; - } - - // reposition box - this.dom.box.style.left = this.left + 'px'; - - // reposition line - this.dom.line.style.left = start - this.props.line.width / 2 + 'px'; - - // reposition dot - this.dom.dot.style.left = start - this.props.dot.width / 2 + 'px'; - }; - - /** - * Reposition the item vertically - * @Override - */ - BoxItem.prototype.repositionY = function () { - var orientation = this.options.orientation.item; - var box = this.dom.box; - var line = this.dom.line; - var dot = this.dom.dot; - - if (orientation == 'top') { - box.style.top = (this.top || 0) + 'px'; - - line.style.top = '0'; - line.style.height = this.parent.top + this.top + 1 + 'px'; - line.style.bottom = ''; - } else { - // orientation 'bottom' - var itemSetHeight = this.parent.itemSet.props.height; // TODO: this is nasty - var lineHeight = itemSetHeight - this.parent.top - this.parent.height + this.top; - - box.style.top = (this.parent.height - this.top - this.height || 0) + 'px'; - line.style.top = itemSetHeight - lineHeight + 'px'; - line.style.bottom = '0'; - } - - dot.style.top = -this.props.dot.height / 2 + 'px'; - }; - - module.exports = BoxItem; - /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var Item = __webpack_require__(20); + var Item = __webpack_require__(21); /** * @constructor PointItem @@ -10170,7 +9567,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var Hammer = __webpack_require__(41); - var Item = __webpack_require__(20); + var Item = __webpack_require__(21); /** * @constructor RangeItem @@ -10523,10 +9920,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Component = __webpack_require__(25); var moment = __webpack_require__(40); - var locales = __webpack_require__(50); + var locales = __webpack_require__(49); /** * A current time bar @@ -10700,10 +10097,10 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Component = __webpack_require__(25); var moment = __webpack_require__(40); - var locales = __webpack_require__(50); + var locales = __webpack_require__(49); /** * A custom time bar @@ -10938,7 +10335,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DOMutil = __webpack_require__(2); var Component = __webpack_require__(25); var DataStep = __webpack_require__(16); @@ -11542,11 +10939,11 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DOMutil = __webpack_require__(2); - var Line = __webpack_require__(51); - var Bar = __webpack_require__(52); - var Points = __webpack_require__(53); + var Line = __webpack_require__(50); + var Bar = __webpack_require__(51); + var Points = __webpack_require__(52); /** * /** @@ -11736,7 +11133,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var stack = __webpack_require__(18); var RangeItem = __webpack_require__(24); @@ -12322,7 +11719,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Group = __webpack_require__(30); /** @@ -12387,17 +11784,17 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); var TimeStep = __webpack_require__(19); var Component = __webpack_require__(25); var Group = __webpack_require__(30); var BackgroundGroup = __webpack_require__(31); - var BoxItem = __webpack_require__(22); + var BoxItem = __webpack_require__(20); var PointItem = __webpack_require__(23); var RangeItem = __webpack_require__(24); - var BackgroundItem = __webpack_require__(21); + var BackgroundItem = __webpack_require__(22); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items var BACKGROUND = '__background__'; // reserved group id for background items without group @@ -13995,7 +13392,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DOMutil = __webpack_require__(2); var Component = __webpack_require__(25); @@ -14209,7 +13606,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DOMutil = __webpack_require__(2); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); @@ -14217,8 +13614,8 @@ return /******/ (function(modules) { // webpackBootstrap var DataAxis = __webpack_require__(28); var GraphGroup = __webpack_require__(29); var Legend = __webpack_require__(33); - var BarFunctions = __webpack_require__(52); - var LineFunctions = __webpack_require__(51); + var BarFunctions = __webpack_require__(51); + var LineFunctions = __webpack_require__(50); var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items @@ -15185,7 +14582,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Component = __webpack_require__(25); var TimeStep = __webpack_require__(19); var DateUtil = __webpack_require__(15); @@ -15623,81 +15020,81 @@ return /******/ (function(modules) { // webpackBootstrap /* 36 */ /***/ function(module, exports, __webpack_require__) { + // Load custom shapes into CanvasRenderingContext2D 'use strict'; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - var _modulesGroups = __webpack_require__(54); + var _modulesGroups = __webpack_require__(53); var _modulesGroups2 = _interopRequireDefault(_modulesGroups); - var _modulesNodesHandler = __webpack_require__(55); + var _modulesNodesHandler = __webpack_require__(54); var _modulesNodesHandler2 = _interopRequireDefault(_modulesNodesHandler); - var _modulesEdgesHandler = __webpack_require__(56); + var _modulesEdgesHandler = __webpack_require__(55); var _modulesEdgesHandler2 = _interopRequireDefault(_modulesEdgesHandler); - var _modulesPhysicsEngine = __webpack_require__(57); + var _modulesPhysicsEngine = __webpack_require__(56); var _modulesPhysicsEngine2 = _interopRequireDefault(_modulesPhysicsEngine); - var _modulesClustering = __webpack_require__(58); + var _modulesClustering = __webpack_require__(1); var _modulesClustering2 = _interopRequireDefault(_modulesClustering); - var _modulesCanvasRenderer = __webpack_require__(59); + var _modulesCanvasRenderer = __webpack_require__(58); var _modulesCanvasRenderer2 = _interopRequireDefault(_modulesCanvasRenderer); - var _modulesCanvas = __webpack_require__(60); + var _modulesCanvas = __webpack_require__(59); var _modulesCanvas2 = _interopRequireDefault(_modulesCanvas); - var _modulesView = __webpack_require__(61); + var _modulesView = __webpack_require__(60); var _modulesView2 = _interopRequireDefault(_modulesView); - var _modulesInteractionHandler = __webpack_require__(62); + var _modulesInteractionHandler = __webpack_require__(61); var _modulesInteractionHandler2 = _interopRequireDefault(_modulesInteractionHandler); - var _modulesSelectionHandler = __webpack_require__(63); + var _modulesSelectionHandler = __webpack_require__(62); var _modulesSelectionHandler2 = _interopRequireDefault(_modulesSelectionHandler); - var _modulesLayoutEngine = __webpack_require__(64); + var _modulesLayoutEngine = __webpack_require__(63); var _modulesLayoutEngine2 = _interopRequireDefault(_modulesLayoutEngine); - var _modulesManipulationSystem = __webpack_require__(65); + var _modulesManipulationSystem = __webpack_require__(64); var _modulesManipulationSystem2 = _interopRequireDefault(_modulesManipulationSystem); - var _sharedConfigurator = __webpack_require__(45); + var _sharedConfigurator = __webpack_require__(44); var _sharedConfigurator2 = _interopRequireDefault(_sharedConfigurator); - var _sharedValidator = __webpack_require__(46); + var _sharedValidator = __webpack_require__(45); var _sharedValidator2 = _interopRequireDefault(_sharedValidator); - var _optionsJs = __webpack_require__(66); + var _optionsJs = __webpack_require__(65); - // Load custom shapes into CanvasRenderingContext2D - __webpack_require__(67); + __webpack_require__(66); - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); var dotparser = __webpack_require__(38); var gephiParser = __webpack_require__(39); var Images = __webpack_require__(37); - var Activator = __webpack_require__(68); - var locales = __webpack_require__(69); + var Activator = __webpack_require__(67); + var locales = __webpack_require__(68); /** * @constructor Network @@ -17508,188 +16905,18 @@ return /******/ (function(modules) { // webpackBootstrap /* 43 */ /***/ function(module, exports, __webpack_require__) { - - /** - * Expose `Emitter`. - */ - - module.exports = Emitter; - - /** - * Initialize a new `Emitter`. - * - * @api public - */ - - function Emitter(obj) { - if (obj) return mixin(obj); - }; - - /** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - - function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; - } - - /** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.on = - Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks[event] = this._callbacks[event] || []) - .push(fn); - return this; - }; - - /** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.once = function(event, fn){ - var self = this; - this._callbacks = this._callbacks || {}; - - function on() { - self.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; - }; - - /** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - - Emitter.prototype.off = - Emitter.prototype.removeListener = - Emitter.prototype.removeAllListeners = - Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks[event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks[event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; - }; - - /** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - - Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks[event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; - }; - - /** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - - Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks[event] || []; - }; - - /** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - - Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; - }; - - -/***/ }, -/* 44 */ -/***/ function(module, exports, __webpack_require__) { - 'use strict'; - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(49); - var util = __webpack_require__(1); + var hammerUtil = __webpack_require__(48); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); var Range = __webpack_require__(17); var ItemSet = __webpack_require__(32); var TimeAxis = __webpack_require__(35); - var Activator = __webpack_require__(68); + var Activator = __webpack_require__(67); var DateUtil = __webpack_require__(15); var CustomTime = __webpack_require__(27); @@ -18641,7 +17868,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Core; /***/ }, -/* 45 */ +/* 44 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -18660,7 +17887,7 @@ return /******/ (function(modules) { // webpackBootstrap var _ColorPicker2 = _interopRequireDefault(_ColorPicker); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. @@ -19316,7 +18543,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 46 */ +/* 45 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -19329,7 +18556,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var errorFound = false; var allOptions = undefined; @@ -19585,9 +18812,9 @@ return /******/ (function(modules) { // webpackBootstrap // 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. + 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; @@ -19635,231 +18862,226 @@ return /******/ (function(modules) { // webpackBootstrap // item is a function, which is allowed /***/ }, -/* 47 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - /** - * This object contains all possible options. It will check if the types are correct, if required if the option is one - * of the allowed values. - * - * __any__ means that the name of the property does not matter. - * __type__ is a required field for all objects and contains the allowed types of all objects - */ - var string = 'string'; - var boolean = 'boolean'; - var number = 'number'; - var array = 'array'; - var date = 'date'; - var object = 'object'; // should only be in a __type__ property - var dom = 'dom'; - var moment = 'moment'; - var fn = 'function'; - var nada = 'null'; - var undef = 'undefined'; - var any = 'any'; - - var allOptions = { - configure: { - enabled: { boolean: boolean }, - filter: { boolean: boolean, fn: fn }, - container: { dom: dom }, - __type__: { object: object, boolean: boolean, fn: fn } - }, - - //globals : - align: { string: string }, - autoResize: { boolean: boolean }, - clickToUse: { boolean: boolean }, - dataAttributes: { string: string, array: array }, - editable: { - add: { boolean: boolean, undef: undef }, - remove: { boolean: boolean, undef: undef }, - updateGroup: { boolean: boolean, undef: undef }, - updateTime: { boolean: boolean, undef: undef }, - __type__: { boolean: boolean, object: object } - }, - end: { number: number, date: date, string: string, moment: moment }, - format: { - minorLabels: { - millisecond: { string: string, undef: undef }, - second: { string: string, undef: undef }, - minute: { string: string, undef: undef }, - hour: { string: string, undef: undef }, - weekday: { string: string, undef: undef }, - day: { string: string, undef: undef }, - month: { string: string, undef: undef }, - year: { string: string, undef: undef }, - __type__: { object: object } - }, - majorLabels: { - millisecond: { string: string, undef: undef }, - second: { string: string, undef: undef }, - minute: { string: string, undef: undef }, - hour: { string: string, undef: undef }, - weekday: { string: string, undef: undef }, - day: { string: string, undef: undef }, - month: { string: string, undef: undef }, - year: { string: string, undef: undef }, - __type__: { object: object } - }, - __type__: { object: object } - }, - groupOrder: { string: string, fn: fn }, - height: { string: string, number: number }, - hiddenDates: { object: object, array: array }, - locale: { string: string }, - locales: { - __any__: { object: object }, - __type__: { object: object } - }, - margin: { - axis: { number: number }, - item: { - horizontal: { number: number, undef: undef }, - vertical: { number: number, undef: undef }, - __type__: { object: object, number: number } - }, - __type__: { object: object, number: number } - }, - max: { date: date, number: number, string: string, moment: moment }, - maxHeight: { number: number, string: string }, - min: { date: date, number: number, string: string, moment: moment }, - minHeight: { number: number, string: string }, - moveable: { boolean: boolean }, - multiselect: { boolean: boolean }, - onAdd: { fn: fn }, - onUpdate: { fn: fn }, - onMove: { fn: fn }, - onMoving: { fn: fn }, - onRemove: { fn: fn }, - order: { fn: fn }, - orientation: { - axis: { string: string, undef: undef }, - item: { string: string, undef: undef }, - __type__: { string: string, object: object } - }, - selectable: { boolean: boolean }, - showCurrentTime: { boolean: boolean }, - showMajorLabels: { boolean: boolean }, - showMinorLabels: { boolean: boolean }, - stack: { boolean: boolean }, - snap: { fn: fn, nada: nada }, - start: { date: date, number: number, string: string, moment: moment }, - template: { fn: fn }, - timeAxis: { - scale: { string: string, undef: undef }, - step: { number: number, undef: undef }, - __type__: { object: object } - }, - type: { string: string }, - width: { string: string, number: number }, - zoomable: { boolean: boolean }, - zoomMax: { number: number }, - zoomMin: { number: number }, - - __type__: { object: object } - }; - - var configureOptions = { - global: { - align: ['center', 'left', 'right'], - autoResize: true, - clickToUse: false, - // dataAttributes: ['all'], // FIXME: can be 'all' or string[] - editable: { - add: false, - remove: false, - updateGroup: false, - updateTime: false - }, - end: '', - 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: '' - } - }, - - //groupOrder: {string, fn}, - height: '', - //hiddenDates: {object, array}, - locale: '', - margin: { - axis: [20, 0, 100, 1], - item: { - horizontal: [10, 0, 100, 1], - vertical: [10, 0, 100, 1] - } - }, - max: '', - maxHeight: '', - min: '', - minHeight: '', - moveable: false, - multiselect: false, - //onAdd: {fn}, - //onUpdate: {fn}, - //onMove: {fn}, - //onMoving: {fn}, - //onRename: {fn}, - //order: {fn}, - orientation: { - axis: ['both', 'bottom', 'top'], - item: ['bottom', 'top'] - }, - selectable: true, - showCurrentTime: false, - showMajorLabels: true, - showMinorLabels: true, - stack: true, - //snap: {fn, nada}, - start: '', - //template: {fn}, - //timeAxis: { - // scale: ['millisecond', 'second', 'minute', 'hour', 'weekday', 'day', 'month', 'year'], - // step: [1, 1, 10, 1] - //}, - type: ['box', 'point', 'range', 'background'], - width: '100%', - zoomable: true, - zoomMax: [315360000000000, 10, 315360000000000, 1], - zoomMin: [10, 10, 315360000000000, 1] - } - }; - - exports.allOptions = allOptions; - exports.configureOptions = configureOptions; - -/***/ }, -/* 48 */ +/* 46 */ /***/ function(module, exports, __webpack_require__) { + /** + * This object contains all possible options. It will check if the types are correct, if required if the option is one + * of the allowed values. + * + * __any__ means that the name of the property does not matter. + * __type__ is a required field for all objects and contains the allowed types of all objects + */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); + var string = 'string'; + var boolean = 'boolean'; + var number = 'number'; + var array = 'array'; + var date = 'date'; + var object = 'object'; // should only be in a __type__ property + var dom = 'dom'; + var moment = 'moment'; + var fn = 'function'; + var nada = 'null'; + var undef = 'undefined'; + var any = 'any'; + + var allOptions = { + configure: { + enabled: { boolean: boolean }, + filter: { boolean: boolean, fn: fn }, + container: { dom: dom }, + __type__: { object: object, boolean: boolean, fn: fn } + }, + + //globals : + align: { string: string }, + autoResize: { boolean: boolean }, + clickToUse: { boolean: boolean }, + dataAttributes: { string: string, array: array }, + editable: { + add: { boolean: boolean, undef: undef }, + remove: { boolean: boolean, undef: undef }, + updateGroup: { boolean: boolean, undef: undef }, + updateTime: { boolean: boolean, undef: undef }, + __type__: { boolean: boolean, object: object } + }, + end: { number: number, date: date, string: string, moment: moment }, + format: { + minorLabels: { + millisecond: { string: string, undef: undef }, + second: { string: string, undef: undef }, + minute: { string: string, undef: undef }, + hour: { string: string, undef: undef }, + weekday: { string: string, undef: undef }, + day: { string: string, undef: undef }, + month: { string: string, undef: undef }, + year: { string: string, undef: undef }, + __type__: { object: object } + }, + majorLabels: { + millisecond: { string: string, undef: undef }, + second: { string: string, undef: undef }, + minute: { string: string, undef: undef }, + hour: { string: string, undef: undef }, + weekday: { string: string, undef: undef }, + day: { string: string, undef: undef }, + month: { string: string, undef: undef }, + year: { string: string, undef: undef }, + __type__: { object: object } + }, + __type__: { object: object } + }, + groupOrder: { string: string, fn: fn }, + height: { string: string, number: number }, + hiddenDates: { object: object, array: array }, + locale: { string: string }, + locales: { + __any__: { object: object }, + __type__: { object: object } + }, + margin: { + axis: { number: number }, + item: { + horizontal: { number: number, undef: undef }, + vertical: { number: number, undef: undef }, + __type__: { object: object, number: number } + }, + __type__: { object: object, number: number } + }, + max: { date: date, number: number, string: string, moment: moment }, + maxHeight: { number: number, string: string }, + min: { date: date, number: number, string: string, moment: moment }, + minHeight: { number: number, string: string }, + moveable: { boolean: boolean }, + multiselect: { boolean: boolean }, + onAdd: { fn: fn }, + onUpdate: { fn: fn }, + onMove: { fn: fn }, + onMoving: { fn: fn }, + onRemove: { fn: fn }, + order: { fn: fn }, + orientation: { + axis: { string: string, undef: undef }, + item: { string: string, undef: undef }, + __type__: { string: string, object: object } + }, + selectable: { boolean: boolean }, + showCurrentTime: { boolean: boolean }, + showMajorLabels: { boolean: boolean }, + showMinorLabels: { boolean: boolean }, + stack: { boolean: boolean }, + snap: { fn: fn, nada: nada }, + start: { date: date, number: number, string: string, moment: moment }, + template: { fn: fn }, + timeAxis: { + scale: { string: string, undef: undef }, + step: { number: number, undef: undef }, + __type__: { object: object } + }, + type: { string: string }, + width: { string: string, number: number }, + zoomable: { boolean: boolean }, + zoomMax: { number: number }, + zoomMin: { number: number }, + + __type__: { object: object } + }; + + var configureOptions = { + global: { + align: ['center', 'left', 'right'], + autoResize: true, + clickToUse: false, + // dataAttributes: ['all'], // FIXME: can be 'all' or string[] + editable: { + add: false, + remove: false, + updateGroup: false, + updateTime: false + }, + end: '', + 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: '' + } + }, + + //groupOrder: {string, fn}, + height: '', + //hiddenDates: {object, array}, + locale: '', + margin: { + axis: [20, 0, 100, 1], + item: { + horizontal: [10, 0, 100, 1], + vertical: [10, 0, 100, 1] + } + }, + max: '', + maxHeight: '', + min: '', + minHeight: '', + moveable: false, + multiselect: false, + //onAdd: {fn}, + //onUpdate: {fn}, + //onMove: {fn}, + //onMoving: {fn}, + //onRename: {fn}, + //order: {fn}, + orientation: { + axis: ['both', 'bottom', 'top'], + item: ['bottom', 'top'] + }, + selectable: true, + showCurrentTime: false, + showMajorLabels: true, + showMinorLabels: true, + stack: true, + //snap: {fn, nada}, + start: '', + //template: {fn}, + //timeAxis: { + // scale: ['millisecond', 'second', 'minute', 'hour', 'weekday', 'day', 'month', 'year'], + // step: [1, 1, 10, 1] + //}, + type: ['box', 'point', 'range', 'background'], + width: '100%', + zoomable: true, + zoomMax: [315360000000000, 10, 315360000000000, 1], + zoomMin: [10, 10, 315360000000000, 1] + } + }; + + exports.allOptions = allOptions; + exports.configureOptions = configureOptions; + +/***/ }, +/* 47 */ +/***/ function(module, exports, __webpack_require__) { + /** * This object contains all possible options. It will check if the types are correct, if required if the option is one * of the allowed values. @@ -19867,6 +19089,11 @@ return /******/ (function(modules) { // webpackBootstrap * __any__ means that the name of the property does not matter. * __type__ is a required field for all objects and contains the allowed types of all objects */ + 'use strict'; + + Object.defineProperty(exports, '__esModule', { + value: true + }); var string = 'string'; var boolean = 'boolean'; var number = 'number'; @@ -20123,7 +19350,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 49 */ +/* 48 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -20195,7 +19422,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.offRelease = exports.offTouch; /***/ }, -/* 50 */ +/* 49 */ /***/ function(module, exports, __webpack_require__) { // English @@ -20217,13 +19444,13 @@ return /******/ (function(modules) { // webpackBootstrap exports['nl_BE'] = exports['nl']; /***/ }, -/* 51 */ +/* 50 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var DOMutil = __webpack_require__(2); - var Points = __webpack_require__(53); + var Points = __webpack_require__(52); function Line(groupId, options) { this.groupId = groupId; @@ -20512,13 +19739,13 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Line; /***/ }, -/* 52 */ +/* 51 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var DOMutil = __webpack_require__(2); - var Points = __webpack_require__(53); + var Points = __webpack_require__(52); function Bargraph(groupId, options) { this.groupId = groupId; @@ -20760,7 +19987,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Bargraph; /***/ }, -/* 53 */ +/* 52 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -20807,7 +20034,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Points; /***/ }, -/* 54 */ +/* 53 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -20820,7 +20047,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @class Groups @@ -20949,7 +20176,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 55 */ +/* 54 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -20972,7 +20199,7 @@ return /******/ (function(modules) { // webpackBootstrap var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); @@ -21424,7 +20651,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 56 */ +/* 55 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -21447,7 +20674,7 @@ return /******/ (function(modules) { // webpackBootstrap var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); @@ -21858,7 +21085,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 57 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -21905,7 +21132,7 @@ return /******/ (function(modules) { // webpackBootstrap var _componentsPhysicsFA2BasedCentralGravitySolver2 = _interopRequireDefault(_componentsPhysicsFA2BasedCentralGravitySolver); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var PhysicsEngine = (function () { function PhysicsEngine(body) { @@ -22481,744 +21708,1347 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 58 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + // utility functions - function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + // first check if moment.js is already loaded in the browser window, if so, + // use this instance. Else, load via commonjs. - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + 'use strict'; - var _componentsNodesCluster = __webpack_require__(85); + var moment = __webpack_require__(40); + var uuid = __webpack_require__(42); - var _componentsNodesCluster2 = _interopRequireDefault(_componentsNodesCluster); + /** + * Test whether given object is a number + * @param {*} object + * @return {Boolean} isNumber + */ + exports.isNumber = function (object) { + return object instanceof Number || typeof object == 'number'; + }; - var util = __webpack_require__(1); + exports.recursiveDOMDelete = function (DOMobject) { + while (DOMobject.hasChildNodes() == true) { + exports.recursiveDOMDelete(DOMobject.firstChild); + DOMobject.removeChild(DOMobject.firstChild); + } + }; - var ClusterEngine = (function () { - function ClusterEngine(body) { - var _this = this; + /** + * this function gives you a range between 0 and 1 based on the min and max values in the set, the total sum of all values and the current value. + * + * @param min + * @param max + * @param total + * @param value + * @returns {number} + */ + exports.giveRange = function (min, max, total, value) { + if (max == min) { + return 0.5; + } else { + var scale = 1 / (max - min); + return Math.max(0, (value - min) * scale); + } + }; - _classCallCheck(this, ClusterEngine); + /** + * Test whether given object is a string + * @param {*} object + * @return {Boolean} isString + */ + exports.isString = function (object) { + return object instanceof String || typeof object == 'string'; + }; - this.body = body; - this.clusteredNodes = {}; + /** + * Test whether given object is a Date, or a String containing a Date + * @param {Date | String} object + * @return {Boolean} isDate + */ + exports.isDate = function (object) { + if (object instanceof Date) { + return true; + } else if (exports.isString(object)) { + // test whether this string contains a date + var match = ASPDateRegex.exec(object); + if (match) { + return true; + } else if (!isNaN(Date.parse(object))) { + return true; + } + } - this.options = {}; - this.defaultOptions = {}; - util.extend(this.options, this.defaultOptions); + return false; + }; - this.body.emitter.on('_resetData', function () { - _this.clusteredNodes = {}; - }); - } + /** + * Create a semi UUID + * source: http://stackoverflow.com/a/105074/1262753 + * @return {String} uuid + */ + exports.randomUUID = function () { + return uuid.v4(); + }; - _createClass(ClusterEngine, [{ - key: 'setOptions', - value: function setOptions(options) { - if (options !== undefined) {} + /** + * assign all keys of an object that are not nested objects to a certain value (used for color objects). + * @param obj + * @param value + */ + exports.assignAllKeys = function (obj, value) { + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + if (typeof obj[prop] !== 'object') { + obj[prop] = value; + } } - }, { - key: 'clusterByHubsize', + } + }; - /** - * - * @param hubsize - * @param options - */ - value: function clusterByHubsize(hubsize, options) { - if (hubsize === undefined) { - hubsize = this._getHubSize(); - } else if (tyepof(hubsize) === 'object') { - options = this._checkOptions(hubsize); - hubsize = this._getHubSize(); - } + /** + * Fill an object with a possibly partially defined other object. Only copies values if the a object has an object requiring values. + * That means an object is not created on a property if only the b object has it. + * @param obj + * @param value + */ + exports.fillIfDefined = function (a, b) { + var allowDeletion = arguments[2] === undefined ? false : arguments[2]; - var nodesToCluster = []; - for (var i = 0; i < this.body.nodeIndices.length; i++) { - var node = this.body.nodes[this.body.nodeIndices[i]]; - if (node.edges.length >= hubsize) { - nodesToCluster.push(node.id); + for (var prop in a) { + if (b[prop] !== undefined) { + if (typeof b[prop] !== 'object') { + if ((b[prop] === undefined || b[prop] === null) && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; + } else { + a[prop] = b[prop]; + } + } else { + if (typeof a[prop] === 'object') { + exports.fillIfDefined(a[prop], b[prop], allowDeletion); } } - - for (var i = 0; i < nodesToCluster.length; i++) { - this.clusterByConnection(nodesToCluster[i], options, false); - } - this.body.emitter.emit('_dataChanged'); } - }, { - key: 'cluster', + } + }; - /** - * loop over all nodes, check if they adhere to the condition and cluster if needed. - * @param options - * @param refreshData - */ - value: function cluster() { - var options = arguments[0] === undefined ? {} : arguments[0]; - var refreshData = arguments[1] === undefined ? true : arguments[1]; + /** + * Extend object a with the properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Object} a + * @param {... Object} b + * @return {Object} a + */ + exports.protoExtend = function (a, b) { + for (var i = 1; i < arguments.length; i++) { + var other = arguments[i]; + for (var prop in other) { + a[prop] = other[prop]; + } + } + return a; + }; - if (options.joinCondition === undefined) { - throw new Error('Cannot call clusterByNodeData without a joinCondition function in the options.'); + /** + * Extend object a with the properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Object} a + * @param {... Object} b + * @return {Object} a + */ + exports.extend = function (a, b) { + for (var i = 1; i < arguments.length; i++) { + var other = arguments[i]; + for (var prop in other) { + if (other.hasOwnProperty(prop)) { + a[prop] = other[prop]; } + } + } + return a; + }; - // check if the options object is fine, append if needed - options = this._checkOptions(options); - - var childNodesObj = {}; - var childEdgesObj = {}; + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a + */ + exports.selectiveExtend = function (props, a, b) { + if (!Array.isArray(props)) { + throw new Error('Array with property names expected as first argument'); + } - // collect the nodes that will be in the cluster - for (var i = 0; i < this.body.nodeIndices.length; i++) { - var nodeId = this.body.nodeIndices[i]; - var node = this.body.nodes[nodeId]; - var clonedOptions = this._cloneOptions(node); - if (options.joinCondition(clonedOptions) === true) { - childNodesObj[nodeId] = this.body.nodes[nodeId]; + for (var i = 2; i < arguments.length; i++) { + var other = arguments[i]; - // collect the nodes that will be in the cluster - for (var _i = 0; _i < node.edges.length; _i++) { - var edge = node.edges[_i]; - childEdgesObj[edge.id] = edge; - } - } + for (var p = 0; p < props.length; p++) { + var prop = props[p]; + if (other.hasOwnProperty(prop)) { + a[prop] = other[prop]; } - - this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - }, { - key: 'clusterOutliers', - - /** - * Cluster all nodes in the network that have only 1 edge - * @param options - * @param refreshData - */ - value: function clusterOutliers(options) { - var refreshData = arguments[1] === undefined ? true : arguments[1]; + } + return a; + }; - options = this._checkOptions(options); - var clusters = []; + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a + */ + exports.selectiveDeepExtend = function (props, a, b) { + var allowDeletion = arguments[3] === undefined ? false : arguments[3]; - // collect the nodes that will be in the cluster - for (var i = 0; i < this.body.nodeIndices.length; i++) { - var childNodesObj = {}; - var childEdgesObj = {}; - var nodeId = this.body.nodeIndices[i]; - var visibleEdges = 0; - var edge = undefined; - for (var j = 0; j < this.body.nodes[nodeId].edges.length; j++) { - if (this.body.nodes[nodeId].edges[j].options.hidden === false) { - visibleEdges++; - edge = this.body.nodes[nodeId].edges[j]; + // TODO: add support for Arrays to deepExtend + if (Array.isArray(b)) { + throw new TypeError('Arrays are not supported by deepExtend'); + } + for (var i = 2; i < arguments.length; i++) { + var other = arguments[i]; + for (var p = 0; p < props.length; p++) { + var prop = props[p]; + if (other.hasOwnProperty(prop)) { + if (b[prop] && b[prop].constructor === Object) { + if (a[prop] === undefined) { + a[prop] = {}; } - } - - if (visibleEdges === 1) { - // this is an outlier - var childNodeId = this._getConnectedId(edge, nodeId); - if (childNodeId !== nodeId) { - if (options.joinCondition === undefined) { - if (this._checkIfUsed(clusters, nodeId, edge.id) === false && this._checkIfUsed(clusters, childNodeId, edge.id) === false) { - childEdgesObj[edge.id] = edge; - childNodesObj[nodeId] = this.body.nodes[nodeId]; - childNodesObj[childNodeId] = this.body.nodes[childNodeId]; - } + if (a[prop].constructor === Object) { + exports.deepExtend(a[prop], b[prop], false, allowDeletion); + } else { + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; } else { - var clonedOptions = this._cloneOptions(this.body.nodes[nodeId]); - if (options.joinCondition(clonedOptions) === true && this._checkIfUsed(clusters, nodeId, edge.id) === false) { - childEdgesObj[edge.id] = edge; - childNodesObj[nodeId] = this.body.nodes[nodeId]; - } - clonedOptions = this._cloneOptions(this.body.nodes[childNodeId]); - if (options.joinCondition(clonedOptions) === true && this._checkIfUsed(clusters, nodeId, edge.id) === false) { - childEdgesObj[edge.id] = edge; - childNodesObj[childNodeId] = this.body.nodes[childNodeId]; - } - } - - if (Object.keys(childNodesObj).length > 0 && Object.keys(childEdgesObj).length > 0) { - clusters.push({ nodes: childNodesObj, edges: childEdgesObj }); + a[prop] = b[prop]; } } + } else if (Array.isArray(b[prop])) { + throw new TypeError('Arrays are not supported by deepExtend'); + } else { + a[prop] = b[prop]; } } - - for (var i = 0; i < clusters.length; i++) { - this._cluster(clusters[i].nodes, clusters[i].edges, options, false); - } - - if (refreshData === true) { - this.body.emitter.emit('_dataChanged'); - } - } - }, { - key: '_checkIfUsed', - value: function _checkIfUsed(clusters, nodeId, edgeId) { - for (var i = 0; i < clusters.length; i++) { - var cluster = clusters[i]; - if (cluster.nodes[nodeId] !== undefined || cluster.edges[edgeId] !== undefined) { - return true; - } - } - return false; } - }, { - key: 'clusterByConnection', - - /** - * suck all connected nodes of a node into the node. - * @param nodeId - * @param options - * @param refreshData - */ - value: function clusterByConnection(nodeId, options) { - var refreshData = arguments[2] === undefined ? true : arguments[2]; - - // kill conditions - if (nodeId === undefined) { - throw new Error('No nodeId supplied to clusterByConnection!'); - } - if (this.body.nodes[nodeId] === undefined) { - throw new Error('The nodeId given to clusterByConnection does not exist!'); - } - - var node = this.body.nodes[nodeId]; - options = this._checkOptions(options, node); - if (options.clusterNodeProperties.x === undefined) { - options.clusterNodeProperties.x = node.x; - } - if (options.clusterNodeProperties.y === undefined) { - options.clusterNodeProperties.y = node.y; - } - if (options.clusterNodeProperties.fixed === undefined) { - options.clusterNodeProperties.fixed = {}; - options.clusterNodeProperties.fixed.x = node.options.fixed.x; - options.clusterNodeProperties.fixed.y = node.options.fixed.y; - } - - var childNodesObj = {}; - var childEdgesObj = {}; - var parentNodeId = node.id; - var parentClonedOptions = this._cloneOptions(node); - childNodesObj[parentNodeId] = node; + } + return a; + }; - // collect the nodes that will be in the cluster - for (var i = 0; i < node.edges.length; i++) { - var edge = node.edges[i]; - var childNodeId = this._getConnectedId(edge, parentNodeId); + /** + * Extend object a with selected properties of object b or a series of objects + * Only properties with defined values are copied + * @param {Array.} props + * @param {Object} a + * @param {Object} b + * @return {Object} a + */ + exports.selectiveNotDeepExtend = function (props, a, b) { + var allowDeletion = arguments[3] === undefined ? false : arguments[3]; - if (childNodeId !== parentNodeId) { - if (options.joinCondition === undefined) { - childEdgesObj[edge.id] = edge; - childNodesObj[childNodeId] = this.body.nodes[childNodeId]; + // TODO: add support for Arrays to deepExtend + if (Array.isArray(b)) { + throw new TypeError('Arrays are not supported by deepExtend'); + } + for (var prop in b) { + if (b.hasOwnProperty(prop)) { + if (props.indexOf(prop) == -1) { + if (b[prop] && b[prop].constructor === Object) { + if (a[prop] === undefined) { + a[prop] = {}; + } + if (a[prop].constructor === Object) { + exports.deepExtend(a[prop], b[prop]); } else { - // clone the options and insert some additional parameters that could be interesting. - var childClonedOptions = this._cloneOptions(this.body.nodes[childNodeId]); - if (options.joinCondition(parentClonedOptions, childClonedOptions) === true) { - childEdgesObj[edge.id] = edge; - childNodesObj[childNodeId] = this.body.nodes[childNodeId]; + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; + } else { + a[prop] = b[prop]; } } + } else if (Array.isArray(b[prop])) { + throw new TypeError('Arrays are not supported by deepExtend'); } else { - childEdgesObj[edge.id] = edge; + a[prop] = b[prop]; } } - - this._cluster(childNodesObj, childEdgesObj, options, refreshData); - } - }, { - key: '_cloneOptions', - - /** - * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes. - * @param objId - * @param type - * @returns {{}} - * @private - */ - value: function _cloneOptions(item, type) { - var clonedOptions = {}; - if (type === undefined || type === 'node') { - util.deepExtend(clonedOptions, item.options, true); - clonedOptions.x = item.x; - clonedOptions.y = item.y; - clonedOptions.amountOfConnections = item.edges.length; - } else { - util.deepExtend(clonedOptions, item.options, true); - } - return clonedOptions; } - }, { - key: '_createClusterEdges', - - /** - * This function creates the edges that will be attached to the cluster. - * - * @param childNodesObj - * @param childEdgesObj - * @param newEdges - * @param options - * @private - */ - value: function _createClusterEdges(childNodesObj, childEdgesObj, newEdges, clusterNodeProperties, clusterEdgeProperties) { - var edge = undefined, - childNodeId = undefined, - childNode = undefined, - toId = undefined, - fromId = undefined, - otherNodeId = undefined; - - var childKeys = Object.keys(childNodesObj); - for (var i = 0; i < childKeys.length; i++) { - childNodeId = childKeys[i]; - childNode = childNodesObj[childNodeId]; - - // construct new edges from the cluster to others - for (var j = 0; j < childNode.edges.length; j++) { - edge = childNode.edges[j]; - childEdgesObj[edge.id] = edge; + } + return a; + }; - // childNodeId position will be replaced by the cluster. - if (edge.toId == childNodeId) { - // this is a double equals because ints and strings can be interchanged here. - toId = clusterNodeProperties.id; - fromId = edge.fromId; - otherNodeId = fromId; + /** + * Deep extend an object a with the properties of object b + * @param {Object} a + * @param {Object} b + * @param [Boolean] protoExtend --> optional parameter. If true, the prototype values will also be extended. + * (ie. the options objects that inherit from others will also get the inherited options) + * @param [Boolean] global --> optional parameter. If true, the values of fields that are null will not deleted + * @returns {Object} + */ + exports.deepExtend = function (a, b, protoExtend, allowDeletion) { + for (var prop in b) { + if (b.hasOwnProperty(prop) || protoExtend === true) { + if (b[prop] && b[prop].constructor === Object) { + if (a[prop] === undefined) { + a[prop] = {}; + } + if (a[prop].constructor === Object) { + exports.deepExtend(a[prop], b[prop], protoExtend); + } else { + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; } else { - toId = edge.toId; - fromId = clusterNodeProperties.id; - otherNodeId = toId; - } - - // if the node connected to the cluster is also in the cluster we do not need a new edge. - if (childNodesObj[otherNodeId] === undefined) { - var clonedOptions = this._cloneOptions(edge, 'edge'); - util.deepExtend(clonedOptions, clusterEdgeProperties); - clonedOptions.from = fromId; - clonedOptions.to = toId; - clonedOptions.id = 'clusterEdge:' + util.randomUUID(); - newEdges.push(this.body.functions.createEdge(clonedOptions)); + a[prop] = b[prop]; } } + } else if (Array.isArray(b[prop])) { + a[prop] = []; + for (var i = 0; i < b[prop].length; i++) { + a[prop].push(b[prop][i]); + } + } else { + a[prop] = b[prop]; } } - }, { - key: '_checkOptions', + } + return a; + }; - /** - * This function checks the options that can be supplied to the different cluster functions - * for certain fields and inserts defaults if needed - * @param options - * @returns {*} - * @private - */ - value: function _checkOptions() { - var options = arguments[0] === undefined ? {} : arguments[0]; + /** + * Test whether all elements in two arrays are equal. + * @param {Array} a + * @param {Array} b + * @return {boolean} Returns true if both arrays have the same length and same + * elements. + */ + exports.equalArray = function (a, b) { + if (a.length != b.length) return false; - if (options.clusterEdgeProperties === undefined) { - options.clusterEdgeProperties = {}; - } - if (options.clusterNodeProperties === undefined) { - options.clusterNodeProperties = {}; - } + for (var i = 0, len = a.length; i < len; i++) { + if (a[i] != b[i]) return false; + } - return options; - } - }, { - key: '_cluster', + return true; + }; - /** - * - * @param {Object} childNodesObj | object with node objects, id as keys, same as childNodes except it also contains a source node - * @param {Object} childEdgesObj | object with edge objects, id as keys - * @param {Array} options | object with {clusterNodeProperties, clusterEdgeProperties, processProperties} - * @param {Boolean} refreshData | when true, do not wrap up - * @private - */ - value: function _cluster(childNodesObj, childEdgesObj, options) { - var refreshData = arguments[3] === undefined ? true : arguments[3]; + /** + * Convert an object to another type + * @param {Boolean | Number | String | Date | Moment | Null | undefined} object + * @param {String | undefined} type Name of the type. Available types: + * 'Boolean', 'Number', 'String', + * 'Date', 'Moment', ISODate', 'ASPDate'. + * @return {*} object + * @throws Error + */ + exports.convert = function (object, type) { + var match; - // kill condition: no children so cant cluster - if (Object.keys(childNodesObj).length === 0) { - return; - } + if (object === undefined) { + return undefined; + } + if (object === null) { + return null; + } - var clusterNodeProperties = util.deepExtend({}, options.clusterNodeProperties); + if (!type) { + return object; + } + if (!(typeof type === 'string') && !(type instanceof String)) { + throw new Error('Type must be a string'); + } - // construct the clusterNodeProperties - if (options.processProperties !== undefined) { - // get the childNode options - var childNodesOptions = []; - for (var nodeId in childNodesObj) { - var clonedOptions = this._cloneOptions(childNodesObj[nodeId]); - childNodesOptions.push(clonedOptions); - } + //noinspection FallthroughInSwitchStatementJS + switch (type) { + case 'boolean': + case 'Boolean': + return Boolean(object); - // get clusterproperties based on childNodes - var childEdgesOptions = []; - for (var edgeId in childEdgesObj) { - var clonedOptions = this._cloneOptions(childEdgesObj[edgeId], 'edge'); - childEdgesOptions.push(clonedOptions); - } + case 'number': + case 'Number': + return Number(object.valueOf()); - clusterNodeProperties = options.processProperties(clusterNodeProperties, childNodesOptions, childEdgesOptions); - if (!clusterNodeProperties) { - throw new Error('The processProperties function does not return properties!'); - } - } + case 'string': + case 'String': + return String(object); - // check if we have an unique id; - if (clusterNodeProperties.id === undefined) { - clusterNodeProperties.id = 'cluster:' + util.randomUUID(); + case 'Date': + if (exports.isNumber(object)) { + return new Date(object); } - var clusterId = clusterNodeProperties.id; - - if (clusterNodeProperties.label === undefined) { - clusterNodeProperties.label = 'cluster'; + if (object instanceof Date) { + return new Date(object.valueOf()); + } else if (moment.isMoment(object)) { + return new Date(object.valueOf()); + } + if (exports.isString(object)) { + match = ASPDateRegex.exec(object); + if (match) { + // object is an ASP date + return new Date(Number(match[1])); // parse number + } else { + return moment(object).toDate(); // parse string + } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); } - // give the clusterNode a postion if it does not have one. - var pos = undefined; - if (clusterNodeProperties.x === undefined) { - pos = this._getClusterPosition(childNodesObj); - clusterNodeProperties.x = pos.x; + case 'Moment': + if (exports.isNumber(object)) { + return moment(object); } - if (clusterNodeProperties.y === undefined) { - if (pos === undefined) { - pos = this._getClusterPosition(childNodesObj); + if (object instanceof Date) { + return moment(object.valueOf()); + } else if (moment.isMoment(object)) { + return moment(object); + } + if (exports.isString(object)) { + match = ASPDateRegex.exec(object); + if (match) { + // object is an ASP date + return moment(Number(match[1])); // parse number + } else { + return moment(object); // parse string } - clusterNodeProperties.y = pos.y; + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); } - // force the ID to remain the same - clusterNodeProperties.id = clusterId; - - // create the clusterNode - var clusterNode = this.body.functions.createNode(clusterNodeProperties, _componentsNodesCluster2['default']); - clusterNode.isCluster = true; - clusterNode.containedNodes = childNodesObj; - clusterNode.containedEdges = childEdgesObj; - // cache a copy from the cluster edge properties if we have to reconnect others later on - clusterNode.clusterEdgeProperties = options.clusterEdgeProperties; - - // finally put the cluster node into global - this.body.nodes[clusterNodeProperties.id] = clusterNode; - - // create the new edges that will connect to the cluster - var newEdges = []; - this._createClusterEdges(childNodesObj, childEdgesObj, newEdges, clusterNodeProperties, options.clusterEdgeProperties); - - // disable the childEdges - for (var edgeId in childEdgesObj) { - if (childEdgesObj.hasOwnProperty(edgeId)) { - if (this.body.edges[edgeId] !== undefined) { - var edge = this.body.edges[edgeId]; - edge.togglePhysics(false); - edge.options.hidden = true; - } + case 'ISODate': + if (exports.isNumber(object)) { + return new Date(object); + } else if (object instanceof Date) { + return object.toISOString(); + } else if (moment.isMoment(object)) { + return object.toDate().toISOString(); + } else if (exports.isString(object)) { + match = ASPDateRegex.exec(object); + if (match) { + // object is an ASP date + return new Date(Number(match[1])).toISOString(); // parse number + } else { + return new Date(object).toISOString(); // parse string } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); } - // disable the childNodes - for (var nodeId in childNodesObj) { - if (childNodesObj.hasOwnProperty(nodeId)) { - this.clusteredNodes[nodeId] = { clusterId: clusterNodeProperties.id, node: this.body.nodes[nodeId] }; - this.body.nodes[nodeId].togglePhysics(false); - this.body.nodes[nodeId].options.hidden = true; + case 'ASPDate': + if (exports.isNumber(object)) { + return '/Date(' + object + ')/'; + } else if (object instanceof Date) { + return '/Date(' + object.valueOf() + ')/'; + } else if (exports.isString(object)) { + match = ASPDateRegex.exec(object); + var value; + if (match) { + // object is an ASP date + value = new Date(Number(match[1])).valueOf(); // parse number + } else { + value = new Date(object).valueOf(); // parse string } + return '/Date(' + value + ')/'; + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ASPDate'); } - // push new edges to global - for (var i = 0; i < newEdges.length; i++) { - this.body.edges[newEdges[i].id] = newEdges[i]; - this.body.edges[newEdges[i].id].connect(); - } + default: + throw new Error('Unknown type "' + type + '"'); + } + }; - // set ID to undefined so no duplicates arise - clusterNodeProperties.id = undefined; + // parse ASP.Net Date pattern, + // for example '/Date(1198908717056)/' or '/Date(1198908717056-0700)/' + // code from http://momentjs.com/ + var ASPDateRegex = /^\/?Date\((\-?\d+)/i; - // wrap up - if (refreshData === true) { - this.body.emitter.emit('_dataChanged'); - } - } - }, { - key: 'isCluster', + /** + * Get the type of an object, for example exports.getType([]) returns 'Array' + * @param {*} object + * @return {String} type + */ + exports.getType = function (object) { + var type = typeof object; - /** - * Check if a node is a cluster. - * @param nodeId - * @returns {*} - */ - value: function isCluster(nodeId) { - if (this.body.nodes[nodeId] !== undefined) { - return this.body.nodes[nodeId].isCluster === true; - } else { - console.log('Node does not exist.'); - return false; - } + if (type == 'object') { + if (object === null) { + return 'null'; } - }, { - key: '_getClusterPosition', + 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'; + } + 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'; + } - /** - * get the position of the cluster node based on what's inside - * @param {object} childNodesObj | object with node objects, id as keys - * @returns {{x: number, y: number}} - * @private - */ - value: function _getClusterPosition(childNodesObj) { - var childKeys = Object.keys(childNodesObj); - var minX = childNodesObj[childKeys[0]].x; - var maxX = childNodesObj[childKeys[0]].x; - var minY = childNodesObj[childKeys[0]].y; - var maxY = childNodesObj[childKeys[0]].y; - var node = undefined; - for (var i = 1; i < childKeys.length; i++) { - node = childNodesObj[childKeys[i]]; - minX = node.x < minX ? node.x : minX; - maxX = node.x > maxX ? node.x : maxX; - minY = node.y < minY ? node.y : minY; - maxY = node.y > maxY ? node.y : maxY; + 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; + }; + + /** + * Used to extend an array and copy it. This is used to propagate paths recursively. + * + * @param arr + * @param newValue + * @returns {Array} + */ + exports.copyArray = function (arr) { + var newArr = []; + for (var i = 0; i < arr.length; i++) { + newArr.push(arr[i]); + } + return newArr; + }; + + /** + * Retrieve the absolute left value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {number} left The absolute left position of this element + * in the browser page. + */ + exports.getAbsoluteLeft = function (elem) { + return elem.getBoundingClientRect().left; + }; + + /** + * Retrieve the absolute top value of a DOM element + * @param {Element} elem A dom element, for example a div + * @return {number} top The absolute top position of this element + * in the browser page. + */ + exports.getAbsoluteTop = function (elem) { + return elem.getBoundingClientRect().top; + }; + + /** + * add a className to the given elements style + * @param {Element} elem + * @param {String} className + */ + exports.addClassName = function (elem, className) { + var classes = elem.className.split(' '); + if (classes.indexOf(className) == -1) { + classes.push(className); // add the class to the array + elem.className = classes.join(' '); + } + }; + + /** + * add a className to the given elements style + * @param {Element} elem + * @param {String} className + */ + exports.removeClassName = function (elem, className) { + var classes = elem.className.split(' '); + var index = classes.indexOf(className); + if (index != -1) { + classes.splice(index, 1); // remove the class from the array + elem.className = classes.join(' '); + } + }; + + /** + * For each method for both arrays and objects. + * In case of an array, the built-in Array.forEach() is applied. + * In case of an Object, the method loops over all properties of the object. + * @param {Object | Array} object An Object or Array + * @param {function} callback Callback method, called for each item in + * the object or array with three parameters: + * callback(value, index, object) + */ + exports.forEach = function (object, callback) { + var i, len; + if (Array.isArray(object)) { + // array + for (i = 0, len = object.length; i < len; i++) { + callback(object[i], i, object); + } + } else { + // object + for (i in object) { + if (object.hasOwnProperty(i)) { + callback(object[i], i, object); } + } + } + }; - return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) }; + /** + * Convert an object into an array: all objects properties are put into the + * array. The resulting array is unordered. + * @param {Object} object + * @param {Array} array + */ + exports.toArray = function (object) { + var array = []; + + for (var prop in object) { + if (object.hasOwnProperty(prop)) array.push(object[prop]); + } + + return array; + }; + + /** + * Update a property in an object + * @param {Object} object + * @param {String} key + * @param {*} value + * @return {Boolean} changed + */ + exports.updateProperty = function (object, key, value) { + if (object[key] !== value) { + object[key] = value; + return true; + } else { + return false; + } + }; + + /** + * Add and event listener. Works for all browsers + * @param {Element} element An html element + * @param {string} action The action, for example "click", + * without the prefix "on" + * @param {function} listener The callback function to be executed + * @param {boolean} [useCapture] + */ + exports.addEventListener = function (element, action, listener, useCapture) { + if (element.addEventListener) { + if (useCapture === undefined) useCapture = false; + + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox } - }, { - key: 'openCluster', - /** - * Open a cluster by calling this function. - * @param {String} clusterNodeId | the ID of the cluster node - * @param {Boolean} refreshData | wrap up afterwards if not true - */ - value: function openCluster(clusterNodeId) { - var refreshData = arguments[1] === undefined ? true : arguments[1]; + element.addEventListener(action, listener, useCapture); + } else { + element.attachEvent('on' + action, listener); // IE browsers + } + }; + + /** + * Remove an event listener from an element + * @param {Element} element An html dom element + * @param {string} action The name of the event, for example "mousedown" + * @param {function} listener The listener function + * @param {boolean} [useCapture] + */ + exports.removeEventListener = function (element, action, listener, useCapture) { + if (element.removeEventListener) { + // non-IE browsers + if (useCapture === undefined) useCapture = false; + + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox + } + + element.removeEventListener(action, listener, useCapture); + } else { + // IE browsers + element.detachEvent('on' + action, listener); + } + }; + + /** + * Cancels the event if it is cancelable, without stopping further propagation of the event. + */ + exports.preventDefault = function (event) { + if (!event) event = window.event; + + if (event.preventDefault) { + event.preventDefault(); // non-IE browsers + } else { + event.returnValue = false; // IE browsers + } + }; + + /** + * Get HTML element which is the target of the event + * @param {Event} event + * @return {Element} target element + */ + exports.getTarget = function (event) { + // code from http://www.quirksmode.org/js/events_properties.html + if (!event) { + event = window.event; + } + + var target; + + if (event.target) { + target = event.target; + } else if (event.srcElement) { + target = event.srcElement; + } + + if (target.nodeType != undefined && target.nodeType == 3) { + // defeat Safari bug + target = target.parentNode; + } + + return target; + }; + + /** + * Check if given element contains given parent somewhere in the DOM tree + * @param {Element} element + * @param {Element} parent + */ + exports.hasParent = function (element, parent) { + var e = element; + + while (e) { + if (e === parent) { + return true; + } + e = e.parentNode; + } + + return false; + }; + + exports.option = {}; + + /** + * Convert a value into a boolean + * @param {Boolean | function | undefined} value + * @param {Boolean} [defaultValue] + * @returns {Boolean} bool + */ + exports.option.asBoolean = function (value, defaultValue) { + if (typeof value == 'function') { + value = value(); + } + + if (value != null) { + return value != false; + } + + return defaultValue || null; + }; + + /** + * Convert a value into a number + * @param {Boolean | function | undefined} value + * @param {Number} [defaultValue] + * @returns {Number} number + */ + exports.option.asNumber = function (value, defaultValue) { + if (typeof value == 'function') { + value = value(); + } + + if (value != null) { + return Number(value) || defaultValue || null; + } + + return defaultValue || null; + }; + + /** + * Convert a value into a string + * @param {String | function | undefined} value + * @param {String} [defaultValue] + * @returns {String} str + */ + exports.option.asString = function (value, defaultValue) { + if (typeof value == 'function') { + value = value(); + } + + if (value != null) { + return String(value); + } + + return defaultValue || null; + }; + + /** + * Convert a size or location into a string with pixels or a percentage + * @param {String | Number | function | undefined} value + * @param {String} [defaultValue] + * @returns {String} size + */ + exports.option.asSize = function (value, defaultValue) { + if (typeof value == 'function') { + value = value(); + } + + if (exports.isString(value)) { + return value; + } else if (exports.isNumber(value)) { + return value + 'px'; + } else { + return defaultValue || null; + } + }; + + /** + * Convert a value into a DOM element + * @param {HTMLElement | function | undefined} value + * @param {HTMLElement} [defaultValue] + * @returns {HTMLElement | null} dom + */ + exports.option.asElement = function (value, defaultValue) { + if (typeof value == 'function') { + value = value(); + } + + return value || defaultValue || null; + }; + + /** + * http://stackoverflow.com/questions/5623838/rgb-to-hex-and-hex-to-rgb + * + * @param {String} hex + * @returns {{r: *, g: *, b: *}} | 255 range + */ + exports.hexToRGB = function (hex) { + // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") + var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; + hex = hex.replace(shorthandRegex, function (m, r, g, b) { + return r + r + g + g + b + b; + }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); + return result ? { + r: parseInt(result[1], 16), + g: parseInt(result[2], 16), + b: parseInt(result[3], 16) + } : null; + }; + + /** + * This function takes color in hex format or rgb() or rgba() format and overrides the opacity. Returns rgba() string. + * @param color + * @param opacity + * @returns {*} + */ + exports.overrideOpacity = function (color, opacity) { + if (color.indexOf('rgba') != -1) { + return color; + } else if (color.indexOf('rgb') != -1) { + var rgb = color.substr(color.indexOf('(') + 1).replace(')', '').split(','); + return 'rgba(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ',' + opacity + ')'; + } else { + var rgb = exports.hexToRGB(color); + if (rgb == null) { + return color; + } else { + return 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + opacity + ')'; + } + } + }; + + /** + * + * @param red 0 -- 255 + * @param green 0 -- 255 + * @param blue 0 -- 255 + * @returns {string} + * @constructor + */ + exports.RGBToHex = function (red, green, blue) { + return '#' + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1); + }; + + /** + * Parse a color property into an object with border, background, and + * highlight colors + * @param {Object | String} color + * @return {Object} colorObject + */ + exports.parseColor = function (color) { + var c; + if (exports.isString(color) === true) { + if (exports.isValidRGB(color) === true) { + var rgb = color.substr(4).substr(0, color.length - 5).split(',').map(function (value) { + return parseInt(value); + }); + color = exports.RGBToHex(rgb[0], rgb[1], rgb[2]); + } + if (exports.isValidHex(color) === true) { + var hsv = exports.hexToHSV(color); + var lighterColorHSV = { h: hsv.h, s: hsv.s * 0.8, v: Math.min(1, hsv.v * 1.02) }; + var darkerColorHSV = { h: hsv.h, s: Math.min(1, hsv.s * 1.25), v: hsv.v * 0.8 }; + var darkerColorHex = exports.HSVToHex(darkerColorHSV.h, darkerColorHSV.s, darkerColorHSV.v); + var lighterColorHex = exports.HSVToHex(lighterColorHSV.h, lighterColorHSV.s, lighterColorHSV.v); + c = { + background: color, + border: darkerColorHex, + highlight: { + background: lighterColorHex, + border: darkerColorHex + }, + hover: { + background: lighterColorHex, + border: darkerColorHex + } + }; + } else { + c = { + background: color, + border: color, + highlight: { + background: color, + border: color + }, + hover: { + background: color, + border: color + } + }; + } + } else { + c = {}; + c.background = color.background || undefined; + c.border = color.border || undefined; + + if (exports.isString(color.highlight)) { + c.highlight = { + border: color.highlight, + background: color.highlight + }; + } else { + c.highlight = {}; + c.highlight.background = color.highlight && color.highlight.background || undefined; + c.highlight.border = color.highlight && color.highlight.border || undefined; + } + + if (exports.isString(color.hover)) { + c.hover = { + border: color.hover, + background: color.hover + }; + } else { + c.hover = {}; + c.hover.background = color.hover && color.hover.background || undefined; + c.hover.border = color.hover && color.hover.border || undefined; + } + } + + return c; + }; + + /** + * http://www.javascripter.net/faq/rgb2hsv.htm + * + * @param red + * @param green + * @param blue + * @returns {*} + * @constructor + */ + exports.RGBToHSV = function (red, green, blue) { + red = red / 255;green = green / 255;blue = blue / 255; + var minRGB = Math.min(red, Math.min(green, blue)); + var maxRGB = Math.max(red, Math.max(green, blue)); + + // Black-gray-white + if (minRGB == maxRGB) { + return { h: 0, s: 0, v: minRGB }; + } + + // Colors other than black-gray-white: + var d = red == minRGB ? green - blue : blue == minRGB ? red - green : blue - red; + var h = red == minRGB ? 3 : blue == minRGB ? 1 : 5; + var hue = 60 * (h - d / (maxRGB - minRGB)) / 360; + var saturation = (maxRGB - minRGB) / maxRGB; + var value = maxRGB; + return { h: hue, s: saturation, v: value }; + }; + + var cssUtil = { + // split a string with css styles into an object with key/values + split: function split(cssText) { + var styles = {}; + + cssText.split(';').forEach(function (style) { + if (style.trim() != '') { + var parts = style.split(':'); + var key = parts[0].trim(); + var value = parts[1].trim(); + styles[key] = value; + } + }); + + return styles; + }, + + // build a css text string from an object with key/values + join: function join(styles) { + return Object.keys(styles).map(function (key) { + return key + ': ' + styles[key]; + }).join('; '); + } + }; + + /** + * Append a string with css styles to an element + * @param {Element} element + * @param {String} cssText + */ + exports.addCssText = function (element, cssText) { + var currentStyles = cssUtil.split(element.style.cssText); + var newStyles = cssUtil.split(cssText); + var styles = exports.extend(currentStyles, newStyles); - // kill conditions - if (clusterNodeId === undefined) { - throw new Error('No clusterNodeId supplied to openCluster.'); - } - if (this.body.nodes[clusterNodeId] === undefined) { - throw new Error('The clusterNodeId supplied to openCluster does not exist.'); - } - if (this.body.nodes[clusterNodeId].containedNodes === undefined) { - console.log('The node:' + clusterNodeId + ' is not a cluster.'); - return; - } - var clusterNode = this.body.nodes[clusterNodeId]; - var containedNodes = clusterNode.containedNodes; - var containedEdges = clusterNode.containedEdges; + element.style.cssText = cssUtil.join(styles); + }; - // release nodes - for (var nodeId in containedNodes) { - if (containedNodes.hasOwnProperty(nodeId)) { - var containedNode = this.body.nodes[nodeId]; - containedNode = containedNodes[nodeId]; - // inherit position - containedNode.x = clusterNode.x; - containedNode.y = clusterNode.y; + /** + * Remove a string with css styles from an element + * @param {Element} element + * @param {String} cssText + */ + exports.removeCssText = function (element, cssText) { + var styles = cssUtil.split(element.style.cssText); + var removeStyles = cssUtil.split(cssText); - // inherit speed - containedNode.vx = clusterNode.vx; - containedNode.vy = clusterNode.vy; + for (var key in removeStyles) { + if (removeStyles.hasOwnProperty(key)) { + delete styles[key]; + } + } - containedNode.options.hidden = false; - containedNode.togglePhysics(true); + element.style.cssText = cssUtil.join(styles); + }; - delete this.clusteredNodes[nodeId]; - } - } + /** + * https://gist.github.com/mjijackson/5311256 + * @param h + * @param s + * @param v + * @returns {{r: number, g: number, b: number}} + * @constructor + */ + exports.HSVToRGB = function (h, s, v) { + var r, g, b; - // release edges - for (var edgeId in containedEdges) { - if (containedEdges.hasOwnProperty(edgeId)) { - var edge = containedEdges[edgeId]; - // if this edge was a temporary edge and it's connected nodes do not exist anymore, we remove it from the data - if (this.body.nodes[edge.fromId] === undefined || this.body.nodes[edge.toId] === undefined) { - edge.edgeType.cleanup(); - // this removes the edge from node.edges, which is why edgeIds is formed - edge.disconnect(); - delete this.body.edges[edgeId]; - } else { + var i = Math.floor(h * 6); + var f = h * 6 - i; + var p = v * (1 - s); + var q = v * (1 - f * s); + var t = v * (1 - (1 - f) * s); - // one of the nodes connected to this edge is in a cluster. We give the edge to that cluster so it will be released when that cluster is opened. - if (this.clusteredNodes[edge.fromId] !== undefined || this.clusteredNodes[edge.toId] !== undefined) { - var fromId = undefined, - toId = undefined; - var clusteredNode = this.clusteredNodes[edge.fromId] || this.clusteredNodes[edge.toId]; - var clusterId = clusteredNode.clusterId; - var _clusterNode = this.body.nodes[clusterId]; - _clusterNode.containedEdges[edgeId] = edge; + switch (i % 6) { + case 0: + r = v, g = t, b = p;break; + case 1: + r = q, g = v, b = p;break; + case 2: + r = p, g = v, b = t;break; + case 3: + r = p, g = q, b = v;break; + case 4: + r = t, g = p, b = v;break; + case 5: + r = v, g = p, b = q;break; + } - // if both from and to nodes are visible, we create a new temporary edge - if (edge.from.options.hidden !== true && edge.to.options.hidden !== true) { - if (this.clusteredNodes[edge.fromId] !== undefined) { - fromId = clusterId; - toId = edge.toId; - } else { - fromId = edge.fromId; - toId = clusterId; - } + return { r: Math.floor(r * 255), g: Math.floor(g * 255), b: Math.floor(b * 255) }; + }; - var clonedOptions = this._cloneOptions(edge, 'edge'); - var id = 'clusterEdge:' + util.randomUUID(); - util.deepExtend(clonedOptions, _clusterNode.clusterEdgeProperties); - util.deepExtend(clonedOptions, { from: fromId, to: toId, hidden: false, physics: true, id: id }); - var newEdge = this.body.functions.createEdge(clonedOptions); + exports.HSVToHex = function (h, s, v) { + var rgb = exports.HSVToRGB(h, s, v); + return exports.RGBToHex(rgb.r, rgb.g, rgb.b); + }; - this.body.edges[id] = newEdge; - this.body.edges[id].connect(); - } - } else { - edge.options.hidden = false; - edge.togglePhysics(true); - } - } - } - } + exports.hexToHSV = function (hex) { + var rgb = exports.hexToRGB(hex); + return exports.RGBToHSV(rgb.r, rgb.g, rgb.b); + }; - // remove all temporary edges - for (var i = 0; i < clusterNode.edges.length; i++) { - var edgeId = clusterNode.edges[i].id; - this.body.edges[edgeId].edgeType.cleanup(); - // this removes the edge from node.edges, which is why edgeIds is formed - this.body.edges[edgeId].disconnect(); - delete this.body.edges[edgeId]; - } + exports.isValidHex = function (hex) { + var isOk = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex); + return isOk; + }; - // remove clusterNode - delete this.body.nodes[clusterNodeId]; + exports.isValidRGB = function (rgb) { + rgb = rgb.replace(' ', ''); + var isOk = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(rgb); + return isOk; + }; + exports.isValidRGBA = function (rgba) { + rgba = rgba.replace(' ', ''); + var isOk = /rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(rgba); + return isOk; + }; - if (refreshData === true) { - this.body.emitter.emit('_dataChanged'); + /** + * This recursively redirects the prototype of JSON objects to the referenceObject + * This is used for default options. + * + * @param referenceObject + * @returns {*} + */ + exports.selectiveBridgeObject = function (fields, referenceObject) { + if (typeof referenceObject == 'object') { + var objectTo = Object.create(referenceObject); + for (var i = 0; i < fields.length; i++) { + if (referenceObject.hasOwnProperty(fields[i])) { + if (typeof referenceObject[fields[i]] == 'object') { + objectTo[fields[i]] = exports.bridgeObject(referenceObject[fields[i]]); + } } } - }, { - key: '_connectEdge', + return objectTo; + } else { + return null; + } + }; - /** - * Connect an edge that was previously contained from cluster A to cluster B if the node that it was originally connected to - * is currently residing in cluster B - * @param edge - * @param nodeId - * @param from - * @private - */ - value: function _connectEdge(edge, nodeId, from) { - var clusterStack = this.findNode(nodeId); - if (from === true) { - edge.from = clusterStack[clusterStack.length - 1]; - edge.fromId = clusterStack[clusterStack.length - 1].id; - clusterStack.pop(); - edge.fromArray = clusterStack; - } else { - edge.to = clusterStack[clusterStack.length - 1]; - edge.toId = clusterStack[clusterStack.length - 1].id; - clusterStack.pop(); - edge.toArray = clusterStack; + /** + * This recursively redirects the prototype of JSON objects to the referenceObject + * This is used for default options. + * + * @param referenceObject + * @returns {*} + */ + exports.bridgeObject = function (referenceObject) { + if (typeof referenceObject == 'object') { + var objectTo = Object.create(referenceObject); + for (var i in referenceObject) { + if (referenceObject.hasOwnProperty(i)) { + if (typeof referenceObject[i] == 'object') { + objectTo[i] = exports.bridgeObject(referenceObject[i]); + } } - edge.connect(); } - }, { - key: 'findNode', + return objectTo; + } else { + return null; + } + }; - /** - * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node - * @param nodeId - * @returns {Array} - * @private - */ - value: function findNode(nodeId) { - var stack = []; - var max = 100; - var counter = 0; + /** + * this is used to set the options of subobjects in the options object. A requirement of these subobjects + * is that they have an 'enabled' element which is optional for the user but mandatory for the program. + * + * @param [object] mergeTarget | this is either this.options or the options used for the groups. + * @param [object] options | options + * @param [String] option | this is the option key in the options argument + * @private + */ + exports.mergeOptions = function (mergeTarget, options, option) { + var allowDeletion = arguments[3] === undefined ? false : arguments[3]; - while (this.clusteredNodes[nodeId] !== undefined && counter < max) { - stack.push(this.clusteredNodes[nodeId].node); - nodeId = this.clusteredNodes[nodeId].clusterId; - counter++; + if (options[option] === null) { + mergeTarget[option] = undefined; + delete mergeTarget[option]; + } else { + if (options[option] !== undefined) { + if (typeof options[option] === 'boolean') { + mergeTarget[option].enabled = options[option]; + } else { + if (options[option].enabled === undefined) { + mergeTarget[option].enabled = true; + } + for (var prop in options[option]) { + if (options[option].hasOwnProperty(prop)) { + mergeTarget[option][prop] = options[option][prop]; + } + } } - stack.push(this.body.nodes[nodeId]); - return stack; } - }, { - key: '_getConnectedId', + } + }; - /** - * Get the Id the node is connected to - * @param edge - * @param nodeId - * @returns {*} - * @private - */ - value: function _getConnectedId(edge, nodeId) { - if (edge.toId != nodeId) { - return edge.toId; - } else if (edge.fromId != nodeId) { - return edge.fromId; - } else { - return edge.fromId; - } + /** + * This function does a binary search for a visible item in a sorted list. If we find a visible item, the code that uses + * this function will then iterate in both directions over this sorted list to find all visible items. + * + * @param {Item[]} orderedItems | Items ordered by start + * @param {function} searchFunction | -1 is lower, 0 is found, 1 is higher + * @param {String} field + * @param {String} field2 + * @returns {number} + * @private + */ + exports.binarySearchCustom = function (orderedItems, searchFunction, field, field2) { + var maxIterations = 10000; + var iteration = 0; + var low = 0; + var high = orderedItems.length - 1; + + while (low <= high && iteration < maxIterations) { + var middle = Math.floor((low + high) / 2); + + var item = orderedItems[middle]; + var value = field2 === undefined ? item[field] : item[field][field2]; + + var searchResult = searchFunction(value); + if (searchResult == 0) { + // jihaa, found a visible item! + return middle; + } else if (searchResult == -1) { + // it is too small --> increase low + low = middle + 1; + } else { + // it is too big --> decrease high + high = middle - 1; } - }, { - key: '_getHubSize', - /** - * We determine how many connections denote an important hub. - * We take the mean + 2*std as the important hub size. (Assuming a normal distribution of data, ~2.2%) - * - * @private - */ - value: function _getHubSize() { - var average = 0; - var averageSquared = 0; - var hubCounter = 0; - var largestHub = 0; + iteration++; + } - for (var i = 0; i < this.body.nodeIndices.length; i++) { - var node = this.body.nodes[this.body.nodeIndices[i]]; - if (node.edges.length > largestHub) { - largestHub = node.edges.length; - } - average += node.edges.length; - averageSquared += Math.pow(node.edges.length, 2); - hubCounter += 1; - } - average = average / hubCounter; - averageSquared = averageSquared / hubCounter; + return -1; + }; - var letiance = averageSquared - Math.pow(average, 2); - var standardDeviation = Math.sqrt(letiance); + /** + * This function does a binary search for a specific value in a sorted array. If it does not exist but is in between of + * two values, we return either the one before or the one after, depending on user input + * If it is found, we return the index, else -1. + * + * @param {Array} orderedItems + * @param {{start: number, end: number}} target + * @param {String} field + * @param {String} sidePreference 'before' or 'after' + * @returns {number} + * @private + */ + exports.binarySearchValue = function (orderedItems, target, field, sidePreference) { + var maxIterations = 10000; + var iteration = 0; + var low = 0; + var high = orderedItems.length - 1; + var prevValue, value, nextValue, middle; - var hubThreshold = Math.floor(average + 2 * standardDeviation); + while (low <= high && iteration < maxIterations) { + // get a new guess + middle = Math.floor(0.5 * (high + low)); + prevValue = orderedItems[Math.max(0, middle - 1)][field]; + value = orderedItems[middle][field]; + nextValue = orderedItems[Math.min(orderedItems.length - 1, middle + 1)][field]; - // always have at least one to cluster - if (hubThreshold > largestHub) { - hubThreshold = largestHub; + if (value == target) { + // we found the target + return middle; + } else if (prevValue < target && value > target) { + // target is in between of the previous and the current + return sidePreference == 'before' ? Math.max(0, middle - 1) : middle; + } else if (value < target && nextValue > target) { + // target is in between of the current and the next + return sidePreference == 'before' ? middle : Math.min(orderedItems.length - 1, middle + 1); + } else { + // didnt find the target, we need to change our boundaries. + if (value < target) { + // it is too small --> increase low + low = middle + 1; + } else { + // it is too big --> decrease high + high = middle - 1; } - - return hubThreshold; } - }]); + iteration++; + } - return ClusterEngine; - })(); + // didnt find anything. Return -1. + return -1; + }; - exports['default'] = ClusterEngine; - module.exports = exports['default']; + /* + * Easing Functions - inspired from http://gizma.com/easing/ + * only considering the t value for the range [0, 1] => [0, 1] + * https://gist.github.com/gre/1650294 + */ + exports.easingFunctions = { + // no easing, no acceleration + linear: function linear(t) { + return t; + }, + // accelerating from zero velocity + easeInQuad: function easeInQuad(t) { + return t * t; + }, + // decelerating to zero velocity + easeOutQuad: function easeOutQuad(t) { + return t * (2 - t); + }, + // acceleration until halfway, then deceleration + easeInOutQuad: function easeInOutQuad(t) { + return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; + }, + // accelerating from zero velocity + easeInCubic: function easeInCubic(t) { + return t * t * t; + }, + // decelerating to zero velocity + easeOutCubic: function easeOutCubic(t) { + return --t * t * t + 1; + }, + // acceleration until halfway, then deceleration + easeInOutCubic: function easeInOutCubic(t) { + return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; + }, + // accelerating from zero velocity + easeInQuart: function easeInQuart(t) { + return t * t * t * t; + }, + // decelerating to zero velocity + easeOutQuart: function easeOutQuart(t) { + return 1 - --t * t * t * t; + }, + // acceleration until halfway, then deceleration + easeInOutQuart: function easeInOutQuart(t) { + return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t; + }, + // accelerating from zero velocity + easeInQuint: function easeInQuint(t) { + return t * t * t * t * t; + }, + // decelerating to zero velocity + easeOutQuint: function easeOutQuint(t) { + return 1 + --t * t * t * t * t; + }, + // acceleration until halfway, then deceleration + easeInOutQuint: function easeInOutQuint(t) { + return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t; + } + }; /***/ }, -/* 59 */ +/* 58 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -23235,7 +23065,7 @@ return /******/ (function(modules) { // webpackBootstrap window.requestAnimationFrame = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame; } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var CanvasRenderer = (function () { function CanvasRenderer(body, canvas) { @@ -23598,7 +23428,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 60 */ +/* 59 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -23612,9 +23442,9 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(49); + var hammerUtil = __webpack_require__(48); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * Create the main frame for the Network. @@ -23966,7 +23796,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 61 */ +/* 60 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -23979,7 +23809,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var View = (function () { function View(body, canvas) { @@ -24368,7 +24198,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 62 */ +/* 61 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -24391,7 +24221,7 @@ return /******/ (function(modules) { // webpackBootstrap var _componentsPopup2 = _interopRequireDefault(_componentsPopup); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var InteractionHandler = (function () { function InteractionHandler(body, canvas, selectionHandler) { @@ -25074,7 +24904,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 63 */ +/* 62 */ /***/ function(module, exports, __webpack_require__) { "use strict"; @@ -25089,7 +24919,7 @@ return /******/ (function(modules) { // webpackBootstrap var Node = __webpack_require__(74); var Edge = __webpack_require__(76); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var SelectionHandler = (function () { function SelectionHandler(body, canvas) { @@ -25794,7 +25624,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports["default"]; /***/ }, -/* 64 */ +/* 63 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -25807,7 +25637,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var LayoutEngine = (function () { function LayoutEngine(body) { @@ -26291,7 +26121,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 65 */ +/* 64 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -26304,9 +26134,9 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(49); + var hammerUtil = __webpack_require__(48); /** * clears the toolbar div element of children @@ -27486,14 +27316,9 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 66 */ +/* 65 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); /** * This object contains all possible options. It will check if the types are correct, if required if the option is one * of the allowed values. @@ -27501,6 +27326,11 @@ return /******/ (function(modules) { // webpackBootstrap * __any__ means that the name of the property does not matter. * __type__ is a required field for all objects and contains the allowed types of all objects */ + 'use strict'; + + Object.defineProperty(exports, '__esModule', { + value: true + }); var string = 'string'; var boolean = 'boolean'; var number = 'number'; @@ -27963,7 +27793,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.configureOptions = configureOptions; /***/ }, -/* 67 */ +/* 66 */ /***/ function(module, exports, __webpack_require__) { /** @@ -28250,15 +28080,15 @@ return /******/ (function(modules) { // webpackBootstrap } /***/ }, -/* 68 */ +/* 67 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var keycharm = __webpack_require__(88); - var Emitter = __webpack_require__(43); + var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * Turn an element into an clickToUse element. @@ -28403,7 +28233,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Activator; /***/ }, -/* 69 */ +/* 68 */ /***/ function(module, exports, __webpack_require__) { // English @@ -28446,12 +28276,182 @@ return /******/ (function(modules) { // webpackBootstrap exports['nl_NL'] = exports['nl']; exports['nl_BE'] = exports['nl']; +/***/ }, +/* 69 */ +/***/ function(module, exports, __webpack_require__) { + + + /** + * Expose `Emitter`. + */ + + module.exports = Emitter; + + /** + * Initialize a new `Emitter`. + * + * @api public + */ + + function Emitter(obj) { + if (obj) return mixin(obj); + }; + + /** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + + function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; + } + + /** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.on = + Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks[event] = this._callbacks[event] || []) + .push(fn); + return this; + }; + + /** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.once = function(event, fn){ + var self = this; + this._callbacks = this._callbacks || {}; + + function on() { + self.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; + }; + + /** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + + Emitter.prototype.off = + Emitter.prototype.removeListener = + Emitter.prototype.removeAllListeners = + Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks[event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks[event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + return this; + }; + + /** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + + Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + var args = [].slice.call(arguments, 1) + , callbacks = this._callbacks[event]; + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; + }; + + /** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + + Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks[event] || []; + }; + + /** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + + Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; + }; + + /***/ }, /* 70 */ /***/ function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {//! moment.js - //! version : 2.10.2 + //! version : 2.10.3 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com @@ -28474,28 +28474,12 @@ return /******/ (function(modules) { // webpackBootstrap hookCallback = callback; } - function defaultParsingFlags() { - // We need to deep clone this object. - return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, - userInvalidated : false, - iso : false - }; - } - function isArray(input) { return Object.prototype.toString.call(input) === '[object Array]'; } function isDate(input) { - return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date; + return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]'; } function map(arr, fn) { @@ -28532,21 +28516,45 @@ return /******/ (function(modules) { // webpackBootstrap return createLocalOrUTC(input, format, locale, strict, true).utc(); } + function defaultParsingFlags() { + // We need to deep clone this object. + return { + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, + userInvalidated : false, + iso : false + }; + } + + function getParsingFlags(m) { + if (m._pf == null) { + m._pf = defaultParsingFlags(); + } + return m._pf; + } + function valid__isValid(m) { if (m._isValid == null) { + var flags = getParsingFlags(m); m._isValid = !isNaN(m._d.getTime()) && - m._pf.overflow < 0 && - !m._pf.empty && - !m._pf.invalidMonth && - !m._pf.nullInput && - !m._pf.invalidFormat && - !m._pf.userInvalidated; + flags.overflow < 0 && + !flags.empty && + !flags.invalidMonth && + !flags.nullInput && + !flags.invalidFormat && + !flags.userInvalidated; if (m._strict) { m._isValid = m._isValid && - m._pf.charsLeftOver === 0 && - m._pf.unusedTokens.length === 0 && - m._pf.bigHour === undefined; + flags.charsLeftOver === 0 && + flags.unusedTokens.length === 0 && + flags.bigHour === undefined; } } return m._isValid; @@ -28555,10 +28563,10 @@ return /******/ (function(modules) { // webpackBootstrap function valid__createInvalid (flags) { var m = create_utc__createUTC(NaN); if (flags != null) { - extend(m._pf, flags); + extend(getParsingFlags(m), flags); } else { - m._pf.userInvalidated = true; + getParsingFlags(m).userInvalidated = true; } return m; @@ -28594,7 +28602,7 @@ return /******/ (function(modules) { // webpackBootstrap to._offset = from._offset; } if (typeof from._pf !== 'undefined') { - to._pf = from._pf; + to._pf = getParsingFlags(from); } if (typeof from._locale !== 'undefined') { to._locale = from._locale; @@ -28629,7 +28637,7 @@ return /******/ (function(modules) { // webpackBootstrap } function isMoment (obj) { - return obj instanceof Moment || (obj != null && hasOwnProp(obj, '_isAMomentObject')); + return obj instanceof Moment || (obj != null && obj._isAMomentObject != null); } function toInt(argumentForCoercion) { @@ -29067,7 +29075,7 @@ return /******/ (function(modules) { // webpackBootstrap if (month != null) { array[MONTH] = month; } else { - config._pf.invalidMonth = input; + getParsingFlags(config).invalidMonth = input; } }); @@ -29151,7 +29159,7 @@ return /******/ (function(modules) { // webpackBootstrap var overflow; var a = m._a; - if (a && m._pf.overflow === -2) { + if (a && getParsingFlags(m).overflow === -2) { overflow = a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : @@ -29161,11 +29169,11 @@ return /******/ (function(modules) { // webpackBootstrap a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : -1; - if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { overflow = DATE; } - m._pf.overflow = overflow; + getParsingFlags(m).overflow = overflow; } return m; @@ -29178,10 +29186,12 @@ return /******/ (function(modules) { // webpackBootstrap } function deprecate(msg, fn) { - var firstTime = true; + var firstTime = true, + msgWithStack = msg + '\n' + (new Error()).stack; + return extend(function () { if (firstTime) { - warn(msg); + warn(msgWithStack); firstTime = false; } return fn.apply(this, arguments); @@ -29226,7 +29236,7 @@ return /******/ (function(modules) { // webpackBootstrap match = from_string__isoRegex.exec(string); if (match) { - config._pf.iso = true; + getParsingFlags(config).iso = true; for (i = 0, l = isoDates.length; i < l; i++) { if (isoDates[i][1].exec(string)) { // match[5] should be 'T' or undefined @@ -29506,7 +29516,7 @@ return /******/ (function(modules) { // webpackBootstrap yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse)) { - config._pf._overflowDayOfYear = true; + getParsingFlags(config)._overflowDayOfYear = true; } date = createUTCDate(yearToUse, 0, config._dayOfYear); @@ -29602,7 +29612,7 @@ return /******/ (function(modules) { // webpackBootstrap } config._a = []; - config._pf.empty = true; + getParsingFlags(config).empty = true; // This array is used to make a Date, either with `new Date` or `Date.UTC` var string = '' + config._i, @@ -29618,7 +29628,7 @@ return /******/ (function(modules) { // webpackBootstrap if (parsedInput) { skipped = string.substr(0, string.indexOf(parsedInput)); if (skipped.length > 0) { - config._pf.unusedInput.push(skipped); + getParsingFlags(config).unusedInput.push(skipped); } string = string.slice(string.indexOf(parsedInput) + parsedInput.length); totalParsedInputLength += parsedInput.length; @@ -29626,27 +29636,29 @@ return /******/ (function(modules) { // webpackBootstrap // don't parse if it's not a known token if (formatTokenFunctions[token]) { if (parsedInput) { - config._pf.empty = false; + getParsingFlags(config).empty = false; } else { - config._pf.unusedTokens.push(token); + getParsingFlags(config).unusedTokens.push(token); } addTimeToArrayFromToken(token, parsedInput, config); } else if (config._strict && !parsedInput) { - config._pf.unusedTokens.push(token); + getParsingFlags(config).unusedTokens.push(token); } } // add remaining unparsed input length to the string - config._pf.charsLeftOver = stringLength - totalParsedInputLength; + getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength; if (string.length > 0) { - config._pf.unusedInput.push(string); + getParsingFlags(config).unusedInput.push(string); } // clear _12h flag if hour is <= 12 - if (config._pf.bigHour === true && config._a[HOUR] <= 12) { - config._pf.bigHour = undefined; + if (getParsingFlags(config).bigHour === true && + config._a[HOUR] <= 12 && + config._a[HOUR] > 0) { + getParsingFlags(config).bigHour = undefined; } // handle meridiem config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); @@ -29690,7 +29702,7 @@ return /******/ (function(modules) { // webpackBootstrap currentScore; if (config._f.length === 0) { - config._pf.invalidFormat = true; + getParsingFlags(config).invalidFormat = true; config._d = new Date(NaN); return; } @@ -29701,7 +29713,6 @@ return /******/ (function(modules) { // webpackBootstrap if (config._useUTC != null) { tempConfig._useUTC = config._useUTC; } - tempConfig._pf = defaultParsingFlags(); tempConfig._f = config._f[i]; configFromStringAndFormat(tempConfig); @@ -29710,12 +29721,12 @@ return /******/ (function(modules) { // webpackBootstrap } // if there is any input that was not parsed add a penalty for that format - currentScore += tempConfig._pf.charsLeftOver; + currentScore += getParsingFlags(tempConfig).charsLeftOver; //or tokens - currentScore += tempConfig._pf.unusedTokens.length * 10; + currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10; - tempConfig._pf.score = currentScore; + getParsingFlags(tempConfig).score = currentScore; if (scoreToBeat == null || currentScore < scoreToBeat) { scoreToBeat = currentScore; @@ -29758,6 +29769,8 @@ return /******/ (function(modules) { // webpackBootstrap configFromStringAndArray(config); } else if (format) { configFromStringAndFormat(config); + } else if (isDate(input)) { + config._d = input; } else { configFromInput(config); } @@ -29810,7 +29823,6 @@ return /******/ (function(modules) { // webpackBootstrap c._i = input; c._f = format; c._strict = strict; - c._pf = defaultParsingFlags(); return createFromConfig(c); } @@ -30384,6 +30396,9 @@ return /******/ (function(modules) { // webpackBootstrap } function from (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); } @@ -30391,6 +30406,17 @@ return /******/ (function(modules) { // webpackBootstrap return this.from(local__createLocal(), withoutSuffix); } + function to (time, withoutSuffix) { + if (!this.isValid()) { + return this.localeData().invalidDate(); + } + return create__createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix); + } + + function toNow (withoutSuffix) { + return this.to(local__createLocal(), withoutSuffix); + } + function locale (key) { var newLocaleData; @@ -30493,11 +30519,11 @@ return /******/ (function(modules) { // webpackBootstrap } function parsingFlags () { - return extend({}, this._pf); + return extend({}, getParsingFlags(this)); } function invalidAt () { - return this._pf.overflow; + return getParsingFlags(this).overflow; } addFormatToken(0, ['gg', 2], 0, function () { @@ -30648,7 +30674,7 @@ return /******/ (function(modules) { // webpackBootstrap if (weekday != null) { week.d = weekday; } else { - config._pf.invalidWeekday = input; + getParsingFlags(config).invalidWeekday = input; } }); @@ -30773,7 +30799,7 @@ return /******/ (function(modules) { // webpackBootstrap }); addParseToken(['h', 'hh'], function (input, array, config) { array[HOUR] = toInt(input); - config._pf.bigHour = true; + getParsingFlags(config).bigHour = true; }); // LOCALES @@ -30890,6 +30916,8 @@ return /******/ (function(modules) { // webpackBootstrap momentPrototype__proto.format = format; momentPrototype__proto.from = from; momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.to = to; + momentPrototype__proto.toNow = toNow; momentPrototype__proto.get = getSet; momentPrototype__proto.invalidAt = invalidAt; momentPrototype__proto.isAfter = isAfter; @@ -31078,7 +31106,7 @@ return /******/ (function(modules) { // webpackBootstrap } // Lenient ordinal parsing accepts just a number in addition to // number + (possibly) stuff coming from _ordinalParseLenient. - this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source); + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + (/\d{1,2}/).source); } var prototype__proto = Locale.prototype; @@ -31295,13 +31323,13 @@ return /******/ (function(modules) { // webpackBootstrap // handle milliseconds separately because of floating point math errors (issue #1867) days = this._days + Math.round(yearsToDays(this._months / 12)); switch (units) { - case 'week' : return days / 7 + milliseconds / 6048e5; - case 'day' : return days + milliseconds / 864e5; - case 'hour' : return days * 24 + milliseconds / 36e5; - case 'minute' : return days * 24 * 60 + milliseconds / 6e4; - case 'second' : return days * 24 * 60 * 60 + milliseconds / 1000; + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 1440 + milliseconds / 6e4; + case 'second' : return days * 86400 + milliseconds / 1000; // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + milliseconds; + case 'millisecond': return Math.floor(days * 864e5) + milliseconds; default: throw new Error('Unknown unit ' + units); } } @@ -31502,7 +31530,7 @@ return /******/ (function(modules) { // webpackBootstrap // Side effect imports - utils_hooks__hooks.version = '2.10.2'; + utils_hooks__hooks.version = '2.10.3'; setHookCallback(local__createLocal); @@ -31533,7 +31561,7 @@ return /******/ (function(modules) { // webpackBootstrap return _moment; })); - /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(90)(module))) + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(107)(module))) /***/ }, /* 71 */ @@ -34219,7 +34247,7 @@ return /******/ (function(modules) { // webpackBootstrap prefixed: prefixed }); - if ("function" == TYPE_FUNCTION && __webpack_require__(91)) { + if ("function" == TYPE_FUNCTION && __webpack_require__(108)) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { return Hammer; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); @@ -34247,8 +34275,8 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(49); - var util = __webpack_require__(1); + var hammerUtil = __webpack_require__(48); + var util = __webpack_require__(57); var ColorPicker = (function () { function ColorPicker() { @@ -34832,67 +34860,67 @@ return /******/ (function(modules) { // webpackBootstrap var _sharedLabel2 = _interopRequireDefault(_sharedLabel); - var _nodesShapesBox = __webpack_require__(92); + var _nodesShapesBox = __webpack_require__(90); var _nodesShapesBox2 = _interopRequireDefault(_nodesShapesBox); - var _nodesShapesCircle = __webpack_require__(93); + var _nodesShapesCircle = __webpack_require__(91); var _nodesShapesCircle2 = _interopRequireDefault(_nodesShapesCircle); - var _nodesShapesCircularImage = __webpack_require__(94); + var _nodesShapesCircularImage = __webpack_require__(92); var _nodesShapesCircularImage2 = _interopRequireDefault(_nodesShapesCircularImage); - var _nodesShapesDatabase = __webpack_require__(95); + var _nodesShapesDatabase = __webpack_require__(93); var _nodesShapesDatabase2 = _interopRequireDefault(_nodesShapesDatabase); - var _nodesShapesDiamond = __webpack_require__(96); + var _nodesShapesDiamond = __webpack_require__(94); var _nodesShapesDiamond2 = _interopRequireDefault(_nodesShapesDiamond); - var _nodesShapesDot = __webpack_require__(97); + var _nodesShapesDot = __webpack_require__(95); var _nodesShapesDot2 = _interopRequireDefault(_nodesShapesDot); - var _nodesShapesEllipse = __webpack_require__(98); + var _nodesShapesEllipse = __webpack_require__(96); var _nodesShapesEllipse2 = _interopRequireDefault(_nodesShapesEllipse); - var _nodesShapesIcon = __webpack_require__(99); + var _nodesShapesIcon = __webpack_require__(97); var _nodesShapesIcon2 = _interopRequireDefault(_nodesShapesIcon); - var _nodesShapesImage = __webpack_require__(100); + var _nodesShapesImage = __webpack_require__(98); var _nodesShapesImage2 = _interopRequireDefault(_nodesShapesImage); - var _nodesShapesSquare = __webpack_require__(101); + var _nodesShapesSquare = __webpack_require__(99); var _nodesShapesSquare2 = _interopRequireDefault(_nodesShapesSquare); - var _nodesShapesStar = __webpack_require__(102); + var _nodesShapesStar = __webpack_require__(100); var _nodesShapesStar2 = _interopRequireDefault(_nodesShapesStar); - var _nodesShapesText = __webpack_require__(103); + var _nodesShapesText = __webpack_require__(101); var _nodesShapesText2 = _interopRequireDefault(_nodesShapesText); - var _nodesShapesTriangle = __webpack_require__(104); + var _nodesShapesTriangle = __webpack_require__(102); var _nodesShapesTriangle2 = _interopRequireDefault(_nodesShapesTriangle); - var _nodesShapesTriangleDown = __webpack_require__(105); + var _nodesShapesTriangleDown = __webpack_require__(103); var _nodesShapesTriangleDown2 = _interopRequireDefault(_nodesShapesTriangleDown); - var _sharedValidator = __webpack_require__(46); + var _sharedValidator = __webpack_require__(45); var _sharedValidator2 = _interopRequireDefault(_sharedValidator); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @class Node @@ -35343,7 +35371,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Label = (function () { function Label(body, options) { @@ -35662,19 +35690,19 @@ return /******/ (function(modules) { // webpackBootstrap var _sharedLabel2 = _interopRequireDefault(_sharedLabel); - var _edgesBezierEdgeDynamic = __webpack_require__(106); + var _edgesBezierEdgeDynamic = __webpack_require__(104); var _edgesBezierEdgeDynamic2 = _interopRequireDefault(_edgesBezierEdgeDynamic); - var _edgesBezierEdgeStatic = __webpack_require__(107); + var _edgesBezierEdgeStatic = __webpack_require__(105); var _edgesBezierEdgeStatic2 = _interopRequireDefault(_edgesBezierEdgeStatic); - var _edgesStraightEdge = __webpack_require__(108); + var _edgesStraightEdge = __webpack_require__(106); var _edgesStraightEdge2 = _interopRequireDefault(_edgesStraightEdge); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @class Edge @@ -37187,9 +37215,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } @@ -37263,9 +37289,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } @@ -37319,9 +37343,7 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -37370,9 +37392,9 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var Hammer = __webpack_require__(41); - var hammerUtil = __webpack_require__(49); + var hammerUtil = __webpack_require__(48); var keycharm = __webpack_require__(88); var NavigationHandler = (function () { @@ -37630,16 +37652,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 87 */ /***/ function(module, exports, __webpack_require__) { - 'use strict'; - - Object.defineProperty(exports, '__esModule', { - value: true - }); - - var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - /** * Popup is a class to create a popup window with some text * @param {Element} container The container object. @@ -37649,6 +37661,15 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} [style] An object containing borderColor, * backgroundColor, etc. */ + 'use strict'; + + Object.defineProperty(exports, '__esModule', { + value: true + }); + + var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } var Popup = (function () { function Popup(container) { @@ -37783,6 +37804,7 @@ return /******/ (function(modules) { // webpackBootstrap var preventDefault = options && options.preventDefault || false; var container = options && options.container || window; + var _exportFunctions = {}; var _bound = {keydown:{}, keyup:{}}; var _keys = {}; @@ -37966,30 +37988,6 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 90 */ -/***/ function(module, exports, __webpack_require__) { - - module.exports = function(module) { - if(!module.webpackPolyfill) { - module.deprecate = function() {}; - module.paths = []; - // module.parent = undefined by default - module.children = []; - module.webpackPolyfill = 1; - } - return module; - } - - -/***/ }, -/* 91 */ -/***/ function(module, exports, __webpack_require__) { - - /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; - - /* WEBPACK VAR INJECTION */}.call(exports, {})) - -/***/ }, -/* 92 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38000,9 +37998,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38014,8 +38010,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); - 'use strict'; - var Box = (function (_NodeBase) { function Box(options, body, labelModule) { _classCallCheck(this, Box); @@ -38098,7 +38092,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 93 */ +/* 91 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38109,9 +38103,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38123,8 +38115,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); - 'use strict'; - var Circle = (function (_CircleImageBase) { function Circle(options, body, labelModule) { _classCallCheck(this, Circle); @@ -38192,7 +38182,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 94 */ +/* 92 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38203,9 +38193,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38217,8 +38205,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); - 'use strict'; - var CircularImage = (function (_CircleImageBase) { function CircularImage(options, body, labelModule, imageObj) { _classCallCheck(this, CircularImage); @@ -38301,7 +38287,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 95 */ +/* 93 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38312,9 +38298,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38326,8 +38310,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); - 'use strict'; - var Database = (function (_NodeBase) { function Database(options, body, labelModule) { _classCallCheck(this, Database); @@ -38410,7 +38392,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 96 */ +/* 94 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38421,9 +38403,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38435,8 +38415,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var Diamond = (function (_ShapeBase) { function Diamond(options, body, labelModule) { _classCallCheck(this, Diamond); @@ -38470,7 +38448,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 97 */ +/* 95 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38481,9 +38459,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38495,8 +38471,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var Dot = (function (_ShapeBase) { function Dot(options, body, labelModule) { _classCallCheck(this, Dot); @@ -38530,7 +38504,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 98 */ +/* 96 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38541,9 +38515,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38555,8 +38527,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); - 'use strict'; - var Ellipse = (function (_NodeBase) { function Ellipse(options, body, labelModule) { _classCallCheck(this, Ellipse); @@ -38641,7 +38611,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 99 */ +/* 97 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38652,9 +38622,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38666,8 +38634,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); - 'use strict'; - var Icon = (function (_NodeBase) { function Icon(options, body, labelModule) { _classCallCheck(this, Icon); @@ -38761,7 +38727,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 100 */ +/* 98 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38772,9 +38738,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38786,8 +38750,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); - 'use strict'; - var Image = (function (_CircleImageBase) { function Image(options, body, labelModule, imageObj) { _classCallCheck(this, Image); @@ -38852,7 +38814,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 101 */ +/* 99 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38863,9 +38825,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38877,8 +38837,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var Square = (function (_ShapeBase) { function Square(options, body, labelModule) { _classCallCheck(this, Square); @@ -38913,7 +38871,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 102 */ +/* 100 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38924,9 +38882,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38938,8 +38894,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var Star = (function (_ShapeBase) { function Star(options, body, labelModule) { _classCallCheck(this, Star); @@ -38973,7 +38927,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 103 */ +/* 101 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -38984,9 +38938,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -38998,8 +38950,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); - 'use strict'; - var Text = (function (_NodeBase) { function Text(options, body, labelModule) { _classCallCheck(this, Text); @@ -39062,7 +39012,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 104 */ +/* 102 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39073,9 +39023,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39087,8 +39035,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var Triangle = (function (_ShapeBase) { function Triangle(options, body, labelModule) { _classCallCheck(this, Triangle); @@ -39122,7 +39068,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 105 */ +/* 103 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39133,9 +39079,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39147,8 +39091,6 @@ return /******/ (function(modules) { // webpackBootstrap var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); - 'use strict'; - var TriangleDown = (function (_ShapeBase) { function TriangleDown(options, body, labelModule) { _classCallCheck(this, TriangleDown); @@ -39182,7 +39124,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 106 */ +/* 104 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39193,9 +39135,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39340,7 +39280,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 107 */ +/* 105 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39351,9 +39291,7 @@ return /******/ (function(modules) { // webpackBootstrap 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(_x4, _x5, _x6) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x4, - property = _x5, - receiver = _x6; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x4 = parent; _x5 = property; _x6 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x4, _x5, _x6) { var _again = true; _function: while (_again) { var object = _x4, property = _x5, receiver = _x6; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x4 = parent; _x5 = property; _x6 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39606,7 +39544,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = exports['default']; /***/ }, -/* 108 */ +/* 106 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -39617,9 +39555,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39717,6 +39653,30 @@ return /******/ (function(modules) { // webpackBootstrap exports['default'] = StraightEdge; module.exports = exports['default']; +/***/ }, +/* 107 */ +/***/ function(module, exports, __webpack_require__) { + + module.exports = function(module) { + if(!module.webpackPolyfill) { + module.deprecate = function() {}; + module.paths = []; + // module.parent = undefined by default + module.children = []; + module.webpackPolyfill = 1; + } + return module; + } + + +/***/ }, +/* 108 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; + + /* WEBPACK VAR INJECTION */}.call(exports, {})) + /***/ }, /* 109 */ /***/ function(module, exports, __webpack_require__) { @@ -39797,9 +39757,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -39932,9 +39890,7 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x, - property = _x2, - receiver = _x3; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -40033,9 +39989,7 @@ return /******/ (function(modules) { // webpackBootstrap 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(_x2, _x3, _x4) { var _again = true; _function: while (_again) { desc = parent = getter = undefined; _again = false; var object = _x2, - property = _x3, - receiver = _x4; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; desc = parent = getter = undefined; _again = false; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } @@ -40186,7 +40140,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var util = __webpack_require__(1); + var util = __webpack_require__(57); var EdgeBase = (function () { function EdgeBase(options, body, labelModule) { diff --git a/dist/vis.map b/dist/vis.map index 53129bae..c35b501f 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","Images","dotparser","gephiParser","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","Graph","Error","moment","hammer","Hammer","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","obj","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","undefined","arguments","protoExtend","i","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","copyAndExtendArray","arr","newValue","newArr","copyArray","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","toString","slice","parseColor","isValidRGB","map","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","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","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","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","args","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","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","_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","dataTable","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","getNumberOfColumns","getNumberOfRows","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","start","getCurrent","next","end","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","getValue","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","axis","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","configurationSystem","ConfigurationSystem","configureOptions","setGroups","setItems","_redraw","Core","Validator","printStyle","allOptions","markDirty","refreshItems","errorFound","validate","console","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animation","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","centerContainer","itemFromTarget","groupFromTarget","customTime","customTimeFromTarget","snap","time","snappedTime","what","foreground","labelSet","groupId","pageX","srcEvent","pageY","linegraph","getLegend","isGroupVisible","visibility","yAxisLeft","yAxisRight","legendLeft","legendRight","hidden","screenToValue","convertHiddenOptions","repeat","dateItem","updateHiddenDates","totalRange","pixelTime","startDate","endDate","_d","duration","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","formattingFunction","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeRange","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","isMajor","steps","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","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","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","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","toUpperCase","substring","currentTimeTimer","setCurrentTime","getCurrentTime","eventParams","drag","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","zeroCrossing","amountOfSteps","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","groupArray","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","ceil","valueAtBottom","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","interpolation","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","getData","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","multiselect","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","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","sideBySide","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarFunctions","LineFunctions","_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","sampledData","combinedDataLeft","combinedDataRight","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","tempGroups","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","pop","childNodes","nodeValue","_interopRequireDefault","__esModule","default","_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","_ConfigurationSystem2","_allOptions$configureOptions","pixelRatio","_Groups","_NodesHandler","_EdgesHandler","_PhysicsEngine","_ClusterEngine","_CanvasRenderer","_Canvas","_View","_InteractionHandler","_SelectionHandler","_LayoutEngine","_ManipulationSystem","_ConfigurationSystem","_Validator","_Validator2","Activator","layout","interaction","configure","networkOptions","global","setModuleOptions","activator","_createKeyBinds","_updateVisibleIndices","nodeId","edgeId","_this2","updatePhysicsIndices","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","isActive","active","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","getBoundingBox","getConnectedNodes","getEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","selectNodes","selectEdges","getPosition","releaseNode","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","error","src","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","setValue","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","arrows","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","optionsObj","inheritColor","fixed","gEdges","gNodes","gEdge","source","gNode","propagating","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","hammerUtil","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","properties","_redrawTimer","set","listeners","events","scrollTopMin","customTimes","redrawCount","_initAutoResize","component","appliedOptions","_stopAutoResize","addCustomTime","timestamp","some","removeCustomTime","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","parentModule","defaultContainer","changedOptions","allowCreation","moduleOptions","domElements","colorPicker","wrapper","_clean","config","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","base","_len","_key","div","objectLabel","selectedValue","_update","_makeLabel","oninput","checkbox","checked","_this3","defaultColor","_showColorPicker","_this4","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","solver","enabledPath","enabledValue","_makeColorField","_makeDropdown","_makeRange","_constructOptions","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","checkFields","__type__","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","_isAMomentObject","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","closestMatch","recursive","closestMatchPath","op","levenshteinDistance","prefix","str","matrix","string","boolean","number","nada","undef","any","movable","inputHandler","isTouching","isFinal","isReleasing","offTouch","offRelease","combinedData","groupLabel","intersections","_getDataIntersections","_getStackedYRange","accumulatedNegative","accumulatedPositive","xpos","coreDistance","amount","resolved","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","drawData","barPoints","heightOffset","_getSafeDrawData","nextKey","prevKey","Groups","defaultIndex","groupsArray","groupIndex","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_Node","_Node2","_Label","_Label2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","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","scaleFactor","inherit","dashes","hoverWidth","selectionWidth","selfReferenceSize","smooth","roundness","emitChange","edgeData","edgeOptions","dynamic","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","_ForceAtlas2BasedRepulsionSolver","_ForceAtlas2BasedRepulsionSolver2","_ForceAtlas2BasedCentralGravitySolver","_ForceAtlas2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","freezeCache","renderTimer","stabilized","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","initPhysics","init","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","startedStabilization","calculateForces","moveNodes","revert","nodeIds","vx","vy","nodesPresent","vminCorrected","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","_Cluster","_Cluster2","ClusterEngine","clusteredNodes","hubsize","_getHubSize","tyepof","_checkOptions","nodesToCluster","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","containedNodes","containedEdges","_createClusterEdges","togglePhysics","minX","maxX","minY","maxY","lenght","clusterNodeId","containedNode","cleanup","clusterStack","fromArray","average","averageSquared","hubCounter","largestHub","letiance","standardDeviation","hubThreshold","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedrawRequests","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","w","save","translate","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","restore","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","updateBoundingBox","connected","browserType","Canvas","resizeTimer","resizeFunction","hammerFrame","_cleanUp","tabIndex","_bindHammer","pinch","_prepareValue","emitEvent","oldWidth","oldHeight","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","specificNodes","zoomLevel","initialZoom","positionDefined","predefinedPosition","_getRange","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_lockedRedraw","finished","_NavigationHandler","_NavigationHandler2","_Popup","_Popup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","changedPointers","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdges","selectedNodes","selectObject","selectionObj","xFixed","yFixed","_handleDragStart","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","Node","Edge","SelectionHandler","hoverObj","selectConnectedEdges","updateSelection","selectionChanged","deselectObject","eventType","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","randomSeed","optionsBackup","hierarchical","levelSeparation","sortMethod","hierarchicalLevels","setupHierarchicalLayout","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","editNode","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","alert","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","positions","findBorderPositions","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_this5","_this6","CanvasRenderingContext2D","circle","square","s2","ir","triangleDown","star","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","pattern","patternLength","slope","distRemaining","patternIndex","dashLength","overlay","_onTapOverlay","bodyHammer","prevent_default","_hasParent","deactivate","keycharm","escListener","activate","unbind","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","mixin","_callbacks","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","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","_pf","_strict","bigHour","valid__createInvalid","flags","NaN","copyConfig","val","_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","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","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","threshold","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","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","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","gesture","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","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","pixelRation","putImageData","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newLeft","_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","fontSize","_getColor","_getColor2","fontColor","_setAlignment","_setAlignment2","lineJoin","lineCount","strokeText","_processLabel","measureText","newOptionsArray","BarnesHutSolver","barnesHutTree","thetaInversed","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","node1","node2","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","_inherits","subClass","superClass","__proto__","_get","_x","_x2","_x3","_again","desc","receiver","getOwnPropertyDescriptor","getPrototypeOf","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","degree","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_BezierEdgeDynamic","_BezierEdgeDynamic2","_BezierEdgeStatic","_BezierEdgeStatic2","_StraightEdge","_StraightEdge2","baseWidth","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","getPoint","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_Node3","Cluster","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","_stopMovement","configureKeyboardBindings","loadNavigationElements","cleanNavigation","_navigationReleaseOverload","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","boundAction","unbindFromRedraw","Popup","doShow","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","webpackContext","req","resolve","_NodeBase2","_NodeBase3","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","enableShadow","disableShadow","_CircleImageBase2","_CircleImageBase3","Circle","_CircleImageBase","diameter","_drawRawCircle","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","labelOffset","_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","_x4","_x5","_x6","BezierEdgeStatic","_getViaCoordinates","xVia","yVia","pi","originalAngle","myAngle","_EdgeBase2","_EdgeBase3","StraightEdge","_EdgeBase","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_getDistanceToLine","webpackPolyfill","paths","__webpack_amd_options__","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","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"],"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","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","Graph","Error","moment","hammer","Hammer","_interopRequireDefault","obj","__esModule","default","_classCallCheck","instance","Constructor","TypeError","Object","defineProperty","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","protoProps","staticProps","prototype","_componentsNodesCluster","_componentsNodesCluster2","ClusterEngine","body","_this","clusteredNodes","defaultOptions","extend","emitter","on","hubsize","undefined","_getHubSize","tyepof","_checkOptions","nodesToCluster","nodeIndices","node","nodes","edges","push","clusterByConnection","emit","arguments","refreshData","joinCondition","childNodesObj","childEdgesObj","nodeId","clonedOptions","_cloneOptions","_i","edge","_cluster","clusters","visibleEdges","j","hidden","childNodeId","_getConnectedId","_checkIfUsed","keys","edgeId","cluster","clusterNodeProperties","x","y","fixed","parentNodeId","parentClonedOptions","childClonedOptions","item","type","deepExtend","amountOfConnections","newEdges","clusterEdgeProperties","childNode","toId","fromId","otherNodeId","childKeys","from","to","randomUUID","functions","createEdge","processProperties","childNodesOptions","childEdgesOptions","clusterId","label","pos","_getClusterPosition","clusterNode","createNode","isCluster","containedNodes","containedEdges","_createClusterEdges","hasOwnProperty","togglePhysics","connect","console","log","minX","maxX","minY","maxY","clusterNodeId","containedNode","vx","vy","edgeType","cleanup","disconnect","clusteredNode","_clusterNode","physics","newEdge","clusterStack","findNode","pop","fromArray","toArray","max","counter","average","averageSquared","hubCounter","largestHub","Math","pow","letiance","standardDeviation","sqrt","hubThreshold","floor","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","parentNode","removeChild","getSVGElement","svgContainer","element","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","group","labelObj","point","drawPoints","style","setAttributeNS","size","styles","className","xOffset","yOffset","content","textContent","drawBar","width","height","rect","data","Array","isArray","_options","_data","_fieldId","fieldId","_type","field","convert","_subscribers","add","setOptions","queue","_queue","destroy","replace","event","callback","subscribers","subscribe","off","filter","listener","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","len","_addItem","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","args","ids","firstType","getType","returnType","allowedValues","indexOf","itemId","_getItem","order","_sort","fields","_filterFields","result","getIds","getDataSet","forEach","map","mappedItems","filteredItem","isString","name","sort","a","b","av","bv","remove","removedId","removedIds","_remove","isNumber","clear","maxField","itemField","min","minField","distinct","values","fieldType","count","prop","exists","d","types","raw","converted","JSON","stringify","_ids","_onEvent","apply","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","delay","Infinity","_timeout","_extended","_flushIfNeeded","object","flush","methods","original","method","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","v","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","create","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","scale","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","getNumberOfColumns","getNumberOfRows","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","hasChildNodes","firstChild","position","overflow","noCanvas","color","fontWeight","padding","innerHTML","left","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","addEventListener","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","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","top","right","lineWidth","font","ymin","ymax","f","hue","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","next","end","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","index","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","offset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","parseInt","cross","topSideVisible","h","s","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","window","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","Date","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","preventDefault","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","removeEventListener","boundingRect","getBoundingClientRect","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","line","dot","dom","border","background","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","elem","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","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","LN10","step1","step2","step5","toPrecision","getStep","groups","forthArgument","autoResize","orientation","axis","maxHeight","minHeight","_create","domProps","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","configurator","Configurator","configureOptions","setGroups","setItems","_redraw","Core","Validator","printStyle","allOptions","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animation","fit","focus","itemData","valueOf","e","middle","getItemRange","dataset","minItem","maxStartItem","maxEndItem","getAbsoluteLeft","centerContainer","getAbsoluteTop","itemFromTarget","groupFromTarget","customTime","customTimeFromTarget","snap","time","snappedTime","getTarget","what","hasParent","foreground","labelSet","groupId","pageX","srcEvent","pageY","linegraph","getLegend","isGroupVisible","visibility","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","convertHiddenOptions","repeat","dateItem","toDate","updateHiddenDates","totalRange","pixelTime","startDate","endDate","_d","duration","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","prevValue","newValue","switchedYear","switchedMonth","switchedDay","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","formattingFunction","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeRange","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","returnValue","isMajor","steps","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","selectiveExtend","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","easingFunctions","join","initTime","anyChanged","dragging","ease","done","changed","newStart","newEnd","isNaN","getRange","totalHidden","previousDelta","allowDragging","deltaX","deltaY","diffRange","safeStart","safeEnd","pointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","collidingItem","jj","other","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","trim","toLowerCase","isVisible","box","dirty","parent","displayed","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","selected","_repaintDeleteButton","show","hide","repositionX","align","repositionY","itemSetHeight","select","unselect","groupChanged","_moveToGroup","setParent","anchor","editable","deleteButton","title","removeFromDataSet","stopPropagation","template","_contentToString","Element","removeAttribute","dataAttributes","attributes","setAttribute","removeCssText","addCssText","outerHTML","baseClassName","getComputedStyle","onTop","itemSubgroup","subgroupIndex","totalHeight","newHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","limitSize","contentLeft","parentWidth","boxWidth","updateTime","dragLeft","dragLeftItem","dragRight","dragRightItem","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","backgroundVertical","warned","toUpperCase","substring","currentTimeTimer","setCurrentTime","t","getCurrentTime","eventParams","drag","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","Number","minWidth","stepPixels","zeroCrossing","amountOfSteps","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","groupArray","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","ceil","valueAtBottom","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","selectiveBridgeObject","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","selectiveDeepExtend","mergeOptions","interpolation","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","enabled","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","getData","draw","framework","subgroupOrderer","subgroupOrder","visibleItems","orderedItems","byStart","byEnd","checkRangedItems","inner","marker","removeClassName","addClassName","getLabelWidth","restack","markerHeight","lastMarkerHeight","customOrderedItems","slice","_updateVisibleItems","_calculateHeight","offsetTop","offsetLeft","updateProperty","ii","resetSubgroups","orderSubgroups","_checkIfVisible","sortArray","sortField","splice","removeItem","array","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","searchFunction","_checkIfVisibleWithReference","initialPosByStart","binarySearchCustom","_traceVisible","initialPosByEnd","initialPos","breakCondition","groupOrder","selectable","multiselect","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","isFirst","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","getVisibleItems","rawVisibleItems","_deselect","asSize","option","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","constructor","_removeItem","groupOptions","equalArray","oldGroupId","oldSubGroupId","oldGroup","_constructByEndArray","itemProps","initialX","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","sideBySide","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarFunctions","LineFunctions","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","binarySearchValue","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","tempGroups","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","childNodes","nodeValue","clickToUse","edgeIndices","once","eventListeners","onTap","onTouch","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onMouseWheel","onPinch","onMouseMove","onRelease","onContext","view","bindEventListeners","images","_modulesGroups2","_modulesCanvas2","selectionHandler","_modulesSelectionHandler2","interactionHandler","_modulesInteractionHandler2","_modulesView2","renderer","_modulesCanvasRenderer2","_modulesPhysicsEngine2","layoutEngine","_modulesLayoutEngine2","clustering","_modulesClustering2","manipulation","_modulesManipulationSystem2","nodesHandler","_modulesNodesHandler2","edgesHandler","_modulesEdgesHandler2","_sharedConfigurator2","_optionsJs","pixelRatio","_modulesGroups","_modulesNodesHandler","_modulesEdgesHandler","_modulesPhysicsEngine","_modulesClustering","_modulesCanvasRenderer","_modulesCanvas","_modulesView","_modulesInteractionHandler","_modulesSelectionHandler","_modulesLayoutEngine","_modulesManipulationSystem","_sharedConfigurator","_sharedValidator","_sharedValidator2","Activator","layout","interaction","configure","networkOptions","global","setModuleOptions","activator","_createKeyBinds","_updateVisibleIndices","_this2","updatePhysicsData","_updateValueRange","unselectAll","dotData","gephi","gephiData","recursiveDOMDelete","valueTotal","setValueRange","isActive","active","canvasToDOM","DOMtoCanvas","openCluster","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","getBoundingBox","getConnectedNodes","objectId","getEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","selectNodes","selectEdges","getViewPosition","releaseNode","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","error","src","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","test","merge","setValue","split","o","addNode","graphs","attr","g","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","substr","forEach2","array1","array2","elem1","elem2","setProp","names","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","String","NODE_ATTR_MAPPING","image","shape","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","arrows","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","optionsObj","inheritColor","parseColor","gEdges","gNodes","gEdge","source","gNode","highlight","hover","propagating","parse","buf","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","getTime","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","_nodeId","n","v4","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","r","toString","_seedBytes","uuid","hammerUtil","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","properties","_redrawTimer","set","listeners","events","scrollTopMin","customTimes","redrawCount","_initAutoResize","component","appliedOptions","_stopAutoResize","addCustomTime","timestamp","some","removeCustomTime","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","_ColorPicker","_ColorPicker2","parentModule","defaultContainer","changedOptions","allowCreation","showButton","moduleOptions","domElements","colorPicker","wrapper","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","base","_len","_key","div","objectLabel","selectedValue","_update","_makeLabel","defaultValue","oninput","checkbox","checked","_this3","defaultColor","_showColorPicker","_this4","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","checkOnly","visibleInSet","subObj","newPath","copyAndExtendArray","_getValue","_handleArray","_makeTextInput","_makeCheckbox","solver","enabledPath","enabledValue","_makeColorField","_makeDropdown","_makeRange","_constructOptions","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","checkFields","__type__","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","Boolean","nodeType","_isAMomentObject","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","copyArray","prefix","str","matrix","string","boolean","number","nada","undef","any","inputHandler","isTouching","isFinal","isReleasing","offTouch","offRelease","combinedData","groupLabel","intersections","_getDataIntersections","_getStackedYRange","accumulatedNegative","accumulatedPositive","xpos","coreDistance","amount","resolved","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","drawData","barPoints","heightOffset","_getSafeDrawData","nextKey","prevKey","Groups","defaultIndex","groupsArray","groupIndex","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_componentsNode","_componentsNode2","_componentsSharedLabel","_componentsSharedLabel2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","face","strokeColor","code","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","total","shadow","parseOptions","updateShape","updateLabelModule","_reset","doNotEmit","oldNodesData","newNodes","_properties","positionInitially","changedData","dataChanged","constructorClass","dataArray","boundingBox","nodeList","nodeObj","edgeList","_componentsEdge","_componentsEdge2","EdgesHandler","edgesListeners","scaleFactor","inherit","opacity","dashes","hoverWidth","selectionWidth","selfReferenceSize","smooth","roundness","emitChange","edgeData","edgeOptions","dynamic","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","oldEdgesData","edgesData","oldEdge","showInternalIds","via","supportNodes","colorDirty","_componentsPhysicsBarnesHutSolver","_componentsPhysicsBarnesHutSolver2","_componentsPhysicsRepulsionSolver","_componentsPhysicsRepulsionSolver2","_componentsPhysicsHierarchicalRepulsionSolver","_componentsPhysicsHierarchicalRepulsionSolver2","_componentsPhysicsSpringSolver","_componentsPhysicsSpringSolver2","_componentsPhysicsHierarchicalSpringSolver","_componentsPhysicsHierarchicalSpringSolver2","_componentsPhysicsCentralGravitySolver","_componentsPhysicsCentralGravitySolver2","_componentsPhysicsFA2BasedRepulsionSolver","_componentsPhysicsFA2BasedRepulsionSolver2","_componentsPhysicsFA2BasedCentralGravitySolver","_componentsPhysicsFA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","freezeCache","renderTimer","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","initPhysics","selectiveNotDeepExtend","init","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","calculateForces","moveNodes","revert","nodeIds","nodesPresent","vminCorrected","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","DOMobject","giveRange","isDate","match","ASPDateRegex","exec","assignAllKeys","fillIfDefined","allowDeletion","protoExtend","isMoment","toISOString","newArr","classes","action","useCapture","navigator","userAgent","attachEvent","detachEvent","srcElement","asBoolean","asNumber","asString","asElement","hexToRGB","hex","shorthandRegex","overrideOpacity","rgb","RGBToHex","red","green","blue","isValidRGB","isValidHex","hsv","hexToHSV","lighterColorHSV","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","RGBToHSV","minRGB","maxRGB","saturation","cssUtil","cssText","parts","currentStyles","newStyles","removeStyles","HSVToRGB","q","isOk","isValidRGBA","rgba","referenceObject","objectTo","bridgeObject","mergeTarget","field2","maxIterations","iteration","low","high","searchResult","sidePreference","nextValue","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedrawRequests","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","w","save","translate","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","restore","resize","updateBoundingBox","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","connected","browserType","Canvas","resizeTimer","resizeFunction","hammerFrame","_cleanUp","tabIndex","_bindHammer","pinch","_prepareValue","emitEvent","oldWidth","oldHeight","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","specificNodes","zoomLevel","initialZoom","positionDefined","predefinedPosition","_getRange","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_lockedRedraw","finished","_componentsNavigationHandler","_componentsNavigationHandler2","_componentsPopup","_componentsPopup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","changedPointers","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdges","selectedNodes","selectObject","selectionObj","xFixed","yFixed","_handleDragStart","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","Node","Edge","SelectionHandler","hoverObj","selectConnectedEdges","updateSelection","selectionChanged","deselectObject","eventType","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","randomSeed","optionsBackup","hierarchical","levelSeparation","sortMethod","hierarchicalLevels","setupHierarchicalLayout","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","editNode","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","globalOptions","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","alert","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","positions","findBorderPositions","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_this5","_this6","CanvasRenderingContext2D","circle","square","s2","ir","triangleDown","star","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","pattern","patternLength","slope","distRemaining","patternIndex","dashLength","overlay","_onTapOverlay","bodyHammer","prevent_default","_hasParent","deactivate","keycharm","escListener","activate","unbind","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError","mixin","_callbacks","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","utils_hooks__hooks","hookCallback","setHookCallback","res","hasOwnProp","create_utc__createUTC","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_strict","bigHour","valid__createInvalid","NaN","copyConfig","val","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","dontConvert","lengthDiff","diffs","Locale","normalizeLocale","chooseLocale","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","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","msgWithStack","deprecateSimple","deprecations","configFromISO","l","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","toNow","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","threshold","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","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","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","gesture","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","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","pixelRation","putImageData","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newLeft","_sharedLabel","_sharedLabel2","_nodesShapesBox","_nodesShapesBox2","_nodesShapesCircle","_nodesShapesCircle2","_nodesShapesCircularImage","_nodesShapesCircularImage2","_nodesShapesDatabase","_nodesShapesDatabase2","_nodesShapesDiamond","_nodesShapesDiamond2","_nodesShapesDot","_nodesShapesDot2","_nodesShapesEllipse","_nodesShapesEllipse2","_nodesShapesIcon","_nodesShapesIcon2","_nodesShapesImage","_nodesShapesImage2","_nodesShapesSquare","_nodesShapesSquare2","_nodesShapesStar","_nodesShapesStar2","_nodesShapesText","_nodesShapesText2","_nodesShapesTriangle","_nodesShapesTriangle2","_nodesShapesTriangleDown","_nodesShapesTriangleDown2","imagelist","grouplist","baseSize","baseFontSize","labelModule","status","groupObj","imageObj","distanceToBorder","sizeDiff","fontDiff","parentOptions","newOptions","parsedColor","_slicedToArray","Symbol","_arr","_n","_e","_s","err","Label","yLine","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor","_getColor2","fontColor","_setAlignment","_setAlignment2","lineJoin","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_edgesBezierEdgeDynamic","_edgesBezierEdgeDynamic2","_edgesBezierEdgeStatic","_edgesBezierEdgeStatic2","_edgesStraightEdge","_edgesStraightEdge2","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","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minimumTreeSize","rootSize","halfRootSize","_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","_inherits","subClass","superClass","__proto__","_get","_x","_x2","_x3","_again","receiver","desc","getOwnPropertyDescriptor","getPrototypeOf","_BarnesHutSolver2","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_CentralGravitySolver","_Node2","_Node3","Cluster","_Node","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","_stopMovement","configureKeyboardBindings","loadNavigationElements","cleanNavigation","_navigationReleaseOverload","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","boundAction","unbindFromRedraw","Popup","doShow","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","webpackContext","req","resolve","_utilNodeBase","_utilNodeBase2","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","enableShadow","disableShadow","_utilCircleImageBase","_utilCircleImageBase2","Circle","_CircleImageBase","diameter","_drawRawCircle","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","labelOffset","_distanceToBorder","Database","networkScaleInv","_utilShapeBase","_utilShapeBase2","Diamond","_ShapeBase","_resizeShape","_drawShape","Dot","Ellipse","Icon","_icon","iconTextSpacing","Square","Star","Text","Triangle","TriangleDown","_utilBezierEdgeBase","_utilBezierEdgeBase2","BezierEdgeDynamic","_BezierEdgeBase","setupSupportNode","parentEdgeId","positionBezierNode","quadraticCurveTo","nearNode","_findBorderPositionBezier","x1","y1","x3","y3","_getDistanceToBezierEdge","_x4","_x5","_x6","BezierEdgeStatic","_getViaCoordinates","xVia","yVia","pi","originalAngle","myAngle","_utilEdgeBase","_utilEdgeBase2","StraightEdge","_EdgeBase","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_getDistanceToLine","webpackPolyfill","paths","__webpack_amd_options__","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","CircleImageBase","ratio","globalAlpha","drawImage","labelDimensions","ShapeBase","sizeMultiplier","_EdgeBase2","_EdgeBase3","BezierEdgeBase","distanceToPoint","difference","minDistance","lastX","lastY","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData","_getCircleData2","_circle","lineCap","setLineDash","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"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 237b34bd..e4bc62a0 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.0.0-SNAPSHOT - * @date 2015-05-19 + * @version 4.0.0 + * @date 2015-05-22 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -22,26 +22,21 @@ * * 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 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.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},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),n=i(42);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=s.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return n.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!=typeof t[i]&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=void 0===arguments[2]?!1:arguments[2];for(var n in t)void 0!==i[n]&&("object"!=typeof i[n]?void 0!==i[n]&&null!==i[n]||void 0===t[n]||o!==!0?t[n]=i[n]:delete t[n]:"object"==typeof t[n]&&e.fillIfDefined(t[n],i[n],o))},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 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":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;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("rgba"))return t;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)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){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 r={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=r.split(t.style.cssText),n=r.split(i),s=e.extend(o,n);t.style.cssText=r.join(s)},e.removeCssText=function(t,e){var i=r.split(t.style.cssText),o=r.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=r.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.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;if("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",o.group.options.drawPoints.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);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)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(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;ns;s++)i=n._addItem(t[s]),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=[],s=this,r=s._fieldId,a=function(t){var e=t[r];s._data[e]?(e=s._updateItem(t),o.push(e),n.push(t)):(e=s._addItem(t),i.push(e))};if(Array.isArray(t))for(var h=0,d=t.length;d>h;h++)a(t[h]);else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(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(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,c,p=o&&o.type||this._options.type,f=o&&o.filter,m=[];if(void 0!=e)d=s._getItem(e,p),f&&!f(d)&&(d=null);else if(void 0!=i)for(u=0,c=i.length;c>u;u++)d=s._getItem(i[u],p),(!f||f(d))&&m.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=s._getItem(l,p),(!f||f(d))&&m.push(d));if(o&&o.order&&void 0==e&&this._sort(m,o.order),o&&o.fields){var v=o.fields;if(void 0!=e)d=this._filterFields(d,v);else for(u=0,c=m.length;c>u;u++)m[u]=this._filterFields(m[u],v)}if("Object"==a){var g={};for(u=0;ue;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++)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(69),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 u=h;h=i,i=u}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"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.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))},this.configurationSystem=new p(this,t,g),h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(69),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),p=i(44),f=i(45)["default"],m=i(45).printStyle,v=i(46).allOptions,g=i(46).configureOptions;o.prototype=new h,o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){var e=f.validate(t,v);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",m),h.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;i&&(this.setItems(null),this.setItems(i))}},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,{animation:!1})}else this.fit({animation:!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.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},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.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.getItemRange=function(){var t=this.itemsData&&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=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-n.getAbsoluteLeft(this.dom.centerContainer),s=i-n.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=u.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),c=this.body.util.getStep(),p=this._toTime(o),f=d?d(p,l,c):p,m=n.getTarget(t),v=null;return null!=r?v="item":null!=h?v="custom-time":n.hasParent(m,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&n.hasParent(m,this.timeAxis2.dom.foreground)?v="axis":n.hasParent(m,this.itemSet.dom.labelSet)?v="group-label":n.hasParent(m,this.currentTime.bar)?v="current-time":n.hasParent(m,this.dom.center)&&(v="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:s,time:p,snappedTime:f}},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;if(this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"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.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){var u=p.validate(o,m);u===!0&&console.log("%cErrors have been found in the supplied options object.",f),this.setOptions(o)}i&&this.setGroups(i),e?this.setItems(e):this._redraw()}{var n=(i(69),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),p=(i(44),i(45)["default"]),f=i(45).printStyle,m=i(47).allOptions;i(47).configureOptions}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,{animation:!1})}else this.fit({animation:!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.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-n.getAbsoluteLeft(this.dom.centerContainer),s=i-n.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=u.customTimeFromTarget(t),h=n.getTarget(t),d=null;n.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&n.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":n.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":n.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":n.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":n.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":n.hasParent(h,this.currentTime.bar)?d="current-time":n.hasParent(h,this.dom.center)&&(d="background");var l=[],c=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return c.hidden||l.push(c.screenToValue(s)),p.hidden||l.push(p.screenToValue(s)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:s,time:r,value:l}},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,r){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.formattingFunction=s,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=r,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=void 0===n.min?this._start-.75:this._start,this._end=void 0===n.max?this._end+1:this._end),this.autoScale===!0&&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(d===!0)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,this.alignZeros===!0&&(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(){var t=Math.abs(this.current)t)for(var e=0;-t>e;e++)this.previous();else if(t>0)for(var e=0;t>e;e++)this.next()},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.animationTimer=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(48),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="object"==typeof i&&"duration"in i?i.duration:500,c="object"==typeof i&&"easingFunction"in i?i.easingFunction:"easeInOutQuad",p=r.easingFunctions[c];if(!p)throw new Error("Unknown easing function "+JSON.stringify(c)+". Choose from: "+Object.keys(r.easingFunctions).join(", "));var f=(new Date).valueOf(),m=!1,v=function b(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-f,i=p(e/u),r=e>u,c=r||null===n?n:h+(n-h)*i,v=r||null===s?s:l+(s-l)*i;g=a._applyRange(c,v),d.updateHiddenDates(a.body,a.options.hiddenDates),m=m||g,g&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),r?m&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animationTimer=setTimeout(b,20)}};return v()}var g=this._applyRange(n,s);if(d.updateHiddenDates(this.body,this.options.hiddenDates),g){var y={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",y),this.body.emitter.emit("rangechanged",y)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=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.clientX,y:t.clientY},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.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.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.item;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.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.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.frame).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,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,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,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(49);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={locales:h,locale:"en",id:void 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(49);o.prototype=new r,o.prototype.setOptions=function(t){t&&s.selectiveExtend(["locale","locales","id"],this.options,t)},o.prototype._create=function(){var t=document.createElement("div");t["custom-time"]=this,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.hide(),this.hammer.destroy(),this.hammer=null,this.body=null},o.prototype.redraw=function(){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");return o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=e+"px",this.bar.title=o,!1},o.prototype.hide=function(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)},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())},o.customTimeFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("custom-time"))return e["custom-time"];e=e.parentNode}return null},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,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style: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.zeroCrossing=-1,this.amountOfSteps=-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","left","right","alignZeros"];n.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),e===!0&&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;var r=Object.keys(this.groups);r.sort(function(t,e){return e>t?-1:1});for(var a=0;a0&&(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)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||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=this.options.visible===!0?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,this.options.icons===!0?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,i=this.options.orientation;if(this.master===!1){var o,n,r,h;-1!==this.zeroCrossing&&this.options.alignZeros===!0?this.range.end>0?(o=this.range.end/this.zeroCrossing,n=this.range.end-this.amountOfSteps*o,r=this.range.end):(o=-1*this.range.start/(this.amountOfSteps-this.zeroCrossing),n=this.range.start,r=this.range.start+o*this.amountOfSteps):(n=this.range.start,r=this.range.end),h=this.stepPixels}else h=this.props.majorCharHeight,n=this.range.start,r=this.range.end;if(this.step=e=new a(n,r,h,this.dom.frame.offsetHeight,this.options[this.options.orientation].range,this.options[this.options.orientation].format,this.master===!1&&this.options.alignZeros),this.master===!0)this.stepPixels=this.dom.frame.offsetHeight/e.marginRange*e.step,this.amountOfSteps=Math.ceil(this.dom.frame.offsetHeight/this.stepPixels);else if(this.options.alignZeros===!0&&-1!==this.zeroCrossing){var d=(e.current-this.zeroCrossing*e.step)/e.step;this.step.shift(d)}this.valueAtBottom=e.marginEnd,this.maxLabelSize=0;for(var l=0,u=0,c=!1;u0&&u!==this.amountOfSteps&&((this.options.showMinorLabels&&c===!1||this.master===!1&&this.options.showMinorLabels===!0)&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-minor",this.props.minorCharHeight),c&&this.options.showMajorLabels&&this.master===!0||this.options.showMinorLabels===!1&&this.master===!1&&c===!0?(l>=0&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(l,i,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(l,i,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth)),this.master===!0&&0===e.current&&(this.zeroCrossing=u),e.next(),u+=1;this.master===!0&&0===e.current&&(this.zeroCrossing=u),this.conversionFactor=this.stepPixels/e.step;var p=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(p=this.props.titleCharHeight);var f=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-f&&this.options.visible===!0?(this.width=this.maxLabelSize+f,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+f),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.valueAtBottom-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtBottom-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:{item:"bottom"},align:"auto",stack:!0,groupOrder:null,selectable:!0,multiselect:!1,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}},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","stack","selectable","multiselect","groupOrder","dataAttributes","template","hide","snap"];s.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"==typeof t.orientation&&"item"in t.orientation&&(this.options.orientation.item=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.item,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.item?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=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){i.push(e.id);var s=o._getItemRange(this.itemsData.get(i,this.itemOptions));i=[];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)&&i.push(a.id)}}else{var l=i.indexOf(e.id);-1==l?i.push(e.id):i.splice(l,1)}this.setSelection(i),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.clientY,i=0;ia&&ea)return n}else if(0===i&&et?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.prepareElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h0){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]],r.stack===!0?"left"==r.yAxisOrientation?a=a.concat(n.getData(o)):h=h.concat(n.getData(o)):i[t[s]]=n.getYRange(o,t[s]));c.getStackedYRange(a,i,t,"__barStackLeft","left"),c.getStackedYRange(h,i,t,"__barStackRight","right"),p.getStackedYRange(a,i,t,"__lineStackLeft","left"),p.getStackedYRange(h,i,t,"__lineStackRight","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)}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.stepPixels=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,this.yAxisRight.amountOfSteps=this.yAxisLeft.amountOfSteps,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;uy;)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){return t&&t.__esModule?t:{ -"default":t}}function n(t,e,i){var o=this;if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:j,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(),this.images=new F(function(){return o.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 D["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,this.images,this.groups,this.layoutEngine),this.edgesHandler=new l["default"](this.body,this.images,this.groups),this.canvas._create(),this.configurationSystem=new S["default"](this,this.body.container,N.configureOptions,this.canvas.pixelRatio),this.setOptions(i),this.setData(e)}var s=i(53),r=o(s),a=i(54),h=o(a),d=i(55),l=o(d),u=i(56),c=o(u),p=i(57),f=o(p),m=i(58),v=o(m),g=i(59),y=o(g),b=i(60),w=o(b),_=i(61),x=o(_),k=i(62),M=o(k),O=i(63),D=o(O),T=i(64),C=o(T),E=i(44),S=o(E),P=i(45),I=o(P),N=i(65);i(66);var z=i(69),A=(i(41),i(1)),L=(i(3),i(4),i(38)),B=i(39),F=i(37),R=i(67),j=i(68);z(n.prototype),n.prototype.setOptions=function(t){if(void 0!==t){var e=I["default"].validate(t,N.allOptions);e===!0&&console.log("%cErrors have been found in the supplied options object.",P.printStyle);var i=["locale","locales","clickToUse"];if(A.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges),this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),this.configurationSystem.setOptions(t.configure),this.configurationSystem.options.enabled===!0){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};A.deepExtend(o.nodes,this.nodesHandler.options),A.deepExtend(o.edges,this.edgesHandler.options),A.deepExtend(o.layout,this.layoutEngine.options),A.deepExtend(o.interaction,this.selectionHandler.options),A.deepExtend(o.interaction,this.renderer.options),A.deepExtend(o.interaction,this.interactionHandler.options),A.deepExtend(o.manipulation,this.manipulation.options),A.deepExtend(o.physics,this.physics.options),A.deepExtend(o.global,this.canvas.options),A.deepExtend(o.global,this.options),this.configurationSystem.setModuleOptions(o)}void 0!==t.clickToUse?t.clickToUse===!0?void 0===this.activator&&(this.activator=new R(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")}},n.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)},n.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){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")})},n.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){console.log("The dot property has been depricated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=L.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been depricated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=B.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("initPhysics")},n.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurationSystem,delete this.images,delete this.body.emitter.emit,delete this.body.emitter.on,delete this.body.emitter.off,delete this.body.emitter.once,delete this.body.emitter;for(var t in this.body.nodes)delete this.body.nodes[t];for(var e in this.body.edges)delete this.body.edges[e];A.recursiveDOMDelete(this.body.container)},n.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)},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.setSize=function(){this.canvas.setSize.apply(this.canvas,arguments)},n.prototype.canvasToDOM=function(){this.canvas.canvasToDOM.apply(this.canvas,arguments)},n.prototype.DOMtoCanvas=function(){this.canvas.setSize.DOMtoCanvas(this.canvas,arguments)},n.prototype.findNode=function(){this.clustering.findNode.apply(this.clustering,arguments)},n.prototype.isCluster=function(){this.clustering.isCluster.apply(this.clustering,arguments)},n.prototype.openCluster=function(){this.clustering.openCluster.apply(this.clustering,arguments)},n.prototype.cluster=function(){this.clustering.cluster.apply(this.clustering,arguments)},n.prototype.clusterByConnection=function(){this.clustering.clusterByConnection.apply(this.clustering,arguments)},n.prototype.clusterByHubsize=function(){this.clustering.clusterByHubsize.apply(this.clustering,arguments)},n.prototype.clusterOutliers=function(){this.clustering.clusterOutliers.apply(this.clustering,arguments)},n.prototype.getSeed=function(){this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},n.prototype.enableEditMode=function(){this.manipulation.enableEditMode.apply(this.manipulation,arguments)},n.prototype.disableEditMode=function(){this.manipulation.disableEditMode.apply(this.manipulation,arguments)},n.prototype.addNodeMode=function(){this.manipulation.addNodeMode.apply(this.manipulation,arguments)},n.prototype.editNodeMode=function(){this.manipulation.editNodeMode.apply(this.manipulation,arguments)},n.prototype.addEdgeMode=function(){this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},n.prototype.editEdgeMode=function(){this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},n.prototype.deleteSelected=function(){this.manipulation.deleteSelected.apply(this.manipulation,arguments)},n.prototype.getPositions=function(){this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},n.prototype.storePositions=function(){this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},n.prototype.getBoundingBox=function(){this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},n.prototype.getConnectedNodes=function(){this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments)},n.prototype.getEdges=function(){this.nodesHandler.getEdges.apply(this.nodesHandler,arguments)},n.prototype.startSimulation=function(){this.physics.startSimulation.apply(this.physics,arguments)},n.prototype.stopSimulation=function(){this.physics.stopSimulation.apply(this.physics,arguments)},n.prototype.stabilize=function(){this.physics.stabilize.apply(this.physics,arguments)},n.prototype.getSelection=function(){this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},n.prototype.getSelectedNodes=function(){this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},n.prototype.getSelectedEdges=function(){this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},n.prototype.getNodeAt=function(){this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments)},n.prototype.getEdgeAt=function(){this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments)},n.prototype.selectNodes=function(){this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},n.prototype.selectEdges=function(){this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},n.prototype.unselectAll=function(){this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments)},n.prototype.redraw=function(){this.renderer.redraw.apply(this.renderer,arguments)},n.prototype.getScale=function(){this.view.getScale.apply(this.view,arguments)},n.prototype.getPosition=function(){this.view.getPosition.apply(this.view,arguments)},n.prototype.fit=function(){this.view.fit.apply(this.view,arguments)},n.prototype.moveTo=function(){this.view.moveTo.apply(this.view,arguments)},n.prototype.focus=function(){this.view.focus.apply(this.view,arguments)},n.prototype.releaseNode=function(){this.view.releaseNode.apply(this.view,arguments)},t.exports=n},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=D.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=D.DELIMITER);var i=S+r();if(T[i])return I=D.DELIMITER,P=i,s(),void s();if(T[S])return I=D.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=D.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=D.IDENTIFIER)}for(I=D.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===D.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!=D.IDENTIFIER)throw x("Identifier expected");var o=P;if(p(),"="===P){if(p(),I!=D.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===D.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!=D.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!=D.IDENTIFIER)throw x("Attribute name expected");var e=P;if(p(),"="!=P)throw x("Equal sign = expected");if(p(),I!=D.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 O(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.arrows="->"===t.type?"to":void 0,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 D={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},T={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},C="",E=0,S="",P="",I=D.NULL,N=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=O},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==n&&(n.nodes.fixed=void 0!==e.fixed?n.fixed:!0,n.nodes.parseColor=void 0!==e.parseColor?n.parseColor:!1,n.edges.inheritColor=void 0!==e.inheritColor?n.inheritColor:!1);for(var s=t.edges,r=t.nodes,a=0;an&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e,i){function o(){}var n=i(69),s=i(41),r=i(48),a=i(1),h=(i(3),i(4),i(17),i(32),i(35)),d=i(67),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("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){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.customTimes=[],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={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){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}if("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)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),this.configurationSystem){this.configurationSystem.setOptions(t.configure);var n=a.deepExtend({},this.options);this.components.forEach(function(t){a.deepExtend(n,t.options)}),this.configurationSystem.setModuleOptions({global:n}),console.log(n)}this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),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){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?a.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,{time:i,id:e});return this.customTimes.push(n),this.components.push(n),this.redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animation?t.animation:!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.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!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.animation?e.animation:!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;"top"!=e.orientation.item&&(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.scrollTop0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);var s=document.createElement("div");s.className="vis-network-configuration button",s.innerHTML="generate options",s.onclick=function(){t._printOptions()},s.onmouseover=function(){s.className="vis-network-configuration button hover"},s.onmouseout=function(){s.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(s),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?i-1:0),n=1;i>n;n++)o[n-1]=arguments[n];this.allowCreation===!0&&!function(){var i=document.createElement("div");i.className="vis-network-configuration item s"+t.length,o.forEach(function(t){i.appendChild(t)}),e.domElements.push(i)}()}},{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(Number(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:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-network-configuration text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,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],i=!1,o=this.options.filter,n=!1;for(var s in t)if(t.hasOwnProperty(s)&&(i=!1,"function"==typeof o&&(i=o(s,e)),i!==!1)){n=!0;var r=t[s],a=h.copyAndExtendArray(e,s),d=this._getValue(a);if(r instanceof Array)this._handleArray(r,d,a);else if("string"==typeof r)this._makeTextInput(r,d,a);else if("boolean"==typeof r)this._makeCheckbox(r,d,a);else if(r instanceof Object){var l=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==s&&(l=!1),l===!0)if(void 0!==r.enabled){var u=h.copyAndExtendArray(a,"enabled"),c=this._getValue(u);if(c===!0){var p=this._makeLabel(s,a,!0);this._makeItem(a,p),n=this._handleObject(r,a)||n}else this._makeCheckbox(r,c,a)}else{var p=this._makeLabel(s,a,!0);this._makeItem(a,p),n=this._handleObject(r,a)||n}}else console.error("dont know how to handle",r,s,a)}return 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:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),h):n.distance<=d?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),h):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),h),r=!0}},{key:"findInOptions",value:function(e,i,o){var n=void 0===arguments[3]?!1:arguments[3],r=1e9,a="",h=[];for(var d in i){var l=t.getType(i[d]),u=void 0;if("object"===l&&n===!0){var c=t.findInOptions(e,i[d],s.copyAndExtendArray(o,d));r>c.distance&&(a=c.closestMatch,h=c.path,r=c.distance)}else u=t.levenshteinDistance(e,d),r>u&&(a=d,h=s.copyArray(o),r=u)}return{closestMatch:a,path:h,distance:r}}},{key:"printLocation",value:function(t,e){for(var i=void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var s=0;st[o].y?t[o].y:e,i=i0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0&&(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,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o.prototype.draw=function(t,e,i){if(null!=t&&t.length>0){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",e.style),a=1==e.options.interpolation.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.interpolation.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,d.options.stack===!0?c[l].y0&&(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,accumulatedPositive:0,accumulatedNegative: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.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive: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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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(){var t=void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];"number"!=typeof t&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),t=this.options.stabilization.iterations),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedrawRequests"),this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0,this.targetIterations=t,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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 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.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),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.pixelRatio&&(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=void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0)for(var r=0;rt.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.top&&(i=t.shape.boundingBox.top),ot.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.top&&(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.animation};this.moveTo(f)}},{key:"focus",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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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),i=this.selectionHandler.options.multiselect&&t.changedPointers[0].ctrlKey;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.pageX,y:t.pageY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount();h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0):0>h-n&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0),a-o>0?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,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",t,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);this.selectionHandler._generateClickEvent("dragging",t,i);var 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",t,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.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.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.options.locales.en.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||this.options.locales.en.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||this.options.locales.en.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||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(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.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.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:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.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("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.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"]=h,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={configure:{enabled:{"boolean":n},filter:{"boolean":n,string:o,array:r,fn:d},container:{dom:h},__type__:{object:a,"boolean":n,string:o,array:r,fn:d}},edges:{arrows:{to:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},middle:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},from:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},__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,string:o}},dashes:{"boolean":n,array:r},font:{color:{string:o},size:{number:s},face:{string:o},background:{string:o},strokeWidth:{number:s},strokeColor:{string:o},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:a,string:o}},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},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW"]},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__:"get from nodes, will be overwritten below",__type__:{object:a}},interaction:{dragNodes:{"boolean":n},dragView:{"boolean":n},hideEdgesOnDrag:{"boolean":n},hideNodesOnDrag:{"boolean":n},hover:{"boolean":n},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}},multiselect:{"boolean":n},navigationButtons:{"boolean":n},selectable:{"boolean":n},selectConnectedEdges:{"boolean":n},tooltipDelay:{number:s},zoomView:{"boolean":n},__type__:{object:a}},layout:{randomSeed:{undef:l,number:s},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},addNode:{"boolean":n,fn:d},addEdge:{"boolean":n,fn:d},editNode:{fn:d},editEdge:{"boolean":n,fn:d},deleteNode:{"boolean":n,fn:d},deleteEdge:{"boolean":n,fn:d},controlNodeStyle:"get from nodes, will be overwritten below",__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,string:o}},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}},id:{string:o,number:s},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}},forceAtlas2Based:{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","forceAtlas2Based"]},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}},autoResize:{"boolean":n},clickToUse:{"boolean":n},locale:{string:o},locales:{__any__:{object:a},__type__:{object:a}},height:{string:o},width:{string:o},__type__:{object:a}};u.groups.__any__=u.nodes,u.manipulation.controlNodeStyle=u.nodes;var c={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[3,0,20,1]}},shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[1,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[2,0,5,.1],physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[3,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{randomSeed:[0,0,500,1],hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,5,.005],damping:[.09,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-800,-3e3,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,5,.005],damping:[.4,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,5,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,5,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,0,1,.05]},global:{locale:["en","nl"]}};e.allOptions=u,e.configureOptions=c},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1)},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i)},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;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(88),r=i(69),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){e.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."},e.en_EN=e.en,e.en_US=e.en,e.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."},e.nl_NL=e.nl,e.nl_BE=e.nl},function(t,e,i){function o(t){return t?n(t):void 0}function n(t){for(var e in o.prototype)t[e]=o.prototype[e];return t}t.exports=o,o.prototype.on=o.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},o.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},o.prototype.off=o.prototype.removeListener=o.prototype.removeAllListeners=o.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,n=0;no;++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(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 O(t){return"string"==typeof t?Ii[t]||Ii[t.toLowerCase()]:void 0}function D(t){var e,i,o={};for(i in t)a(t,i)&&(e=O(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=O(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++)Li[o[e]]?o[e]=Li[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 A(t,e){return t.isValid()?(e=L(e,t.localeData()),Ai[e]||(Ai[e]=z(e)),Ai[e](t)):t.localeData().invalidDate()}function L(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(zi.lastIndex=0;o>=0&&zi.test(t);)t=t.replace(zi,i),zi.lastIndex=0,o-=1;return t}function B(t,e,i){Ji[t]="function"==typeof e?e:function(t){return t&&i?i:e}}function F(t,e){return a(Ji,t)?Ji[t](e._strict,e._locale):new RegExp(R(t))}function R(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 J(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function Q(t,e){var i=!0;return h(function(){return i&&(J(t),i=!1),e.apply(this,arguments)},e)}function $(t,e){ho[t]||(J(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=Dt(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(Dt(),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(Dt(),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=L(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),Li[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=D(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 Ot(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 Dt(t,e,i,o){return Ot(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 Dt();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 zt(t,i){var o,n;return i._isUTC?(o=i.clone(),n=(f(t)||s(t)?+t:+Dt(t))-+o,o._d.setTime(+o._d+n),e.updateOffset(o,!1),o):Dt(t).local()}function At(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Lt(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=At(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?Qt(this,qt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:At(this)}function Bt(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 Rt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(At(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?Dt(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):Dt(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(Dt(s.from),Dt(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=zt(e,t),t.isBefore(e)?i=Zt(t,e):(i=Zt(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function Jt(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),Qt(this,n,t),this}}function Qt(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||Dt(),i=zt(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,Dt(e)))}function te(){return new p(this)}function ee(t,e){var i;return e=O("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=f(t)?t:Dt(t),+this>+t):(i=f(t)?+t:+Dt(t),i<+this.clone().startOf(e))}function ie(t,e){var i;return e=O("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=f(t)?t:Dt(t),+t>+this):(i=f(t)?+t:+Dt(t),+this.clone().endOf(e)t?Math.ceil(t):Math.floor(t)}function re(t,e,i){var o,n,s=zt(t,this),r=6e4*(s.utcOffset()-this.utcOffset());return e=O(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=Dt([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 Le(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 Be(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 Re(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 Dt(1e3*t)}function qe(){return Dt.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 Je(t){return this._ordinal.replace("%d",t)}function Qe(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=O(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=O(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 Oi(t){var e=this.localeData(),i=ki(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Di(){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,zi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ai={},Li={},Bi=/\d/,Fi=/\d\d/,Ri=/\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,Ji={},Qi={},$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"),B("M",Yi),B("MM",Yi,Fi),B("MMM",Ki),B("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=Q("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"),B("Y",qi),B("YY",Yi,Fi),B("YYYY",Gi,ji),B("YYYYY",Ui,Hi),B("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"),B("w",Yi),B("ww",Yi,Fi),B("W",Yi),B("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"),B("DDD",Wi),B("DDDD",Ri),j(["DDD","DDDD"],function(t,e,i){i._dayOfYear=m(t)}),e.ISO_8601=function(){};var vo=Q("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return this>t?this:t}),go=Q("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Dt.apply(null,arguments);return t>this?this:t});It("Z",":"),It("ZZ",""),B("Z",Xi),B("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=Jt(1,"add"),xo=Jt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var ko=Q("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"),B("G",qi),B("g",qi),B("GG",Yi,Fi),B("gg",Yi,Fi),B("GGGG",Gi,ji),B("gggg",Gi,ji),B("GGGGG",Ui,Hi),B("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"),B("Q",Bi),j("Q",function(t,e){e[to]=3*(m(t)-1)}),I("D",["DD",2],"Do","date"),M("date","D"),B("D",Yi),B("DD",Yi,Fi),B("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"),B("d",Yi),B("e",Yi),B("E",Yi),B("dd",Ki),B("ddd",Ki),B("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 Oo="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Do="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}),Re("a",!0),Re("A",!1),M("hour","h"),B("a",je),B("A",je),B("H",Yi),B("h",Yi),B("HH",Yi,Fi),B("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"),B("m",Yi),B("mm",Yi,Fi),j(["m","mm"],oo);var So=T("Minutes",!1);I("s",["ss",2],0,"second"),M("second","s"),B("s",Yi),B("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"),B("S",Wi,Bi),B("SS",Wi,Fi),B("SSS",Wi,Ri),B("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=De,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=Le,No.weekday=Be,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=Lt,No.utc=Ft,No.local=Rt,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=Q("dates accessor is deprecated. Use date instead.",Mo),No.months=Q("months accessor is deprecated. Use month instead",X),No.years=Q("years accessor is deprecated. Use year instead",fo),No.zone=Q("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Bt);var zo=No,Ao={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Lo={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"},Bo="Invalid date",Fo="%d",Ro=/\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=Ao,Ho.calendar=Xe,Ho._longDateFormat=Lo,Ho.longDateFormat=Ze,Ho._invalidDate=Bo,Ho.invalidDate=Ke,Ho._ordinal=Fo,Ho.ordinal=Je,Ho._ordinalParse=Ro,Ho.preparse=Qe,Ho.postformat=Qe,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=Oo,Ho.weekdaysMin=ze,Ho._weekdaysMin=To,Ho.weekdaysShort=Ne,Ho._weekdaysShort=Do,Ho.weekdaysParse=Ae,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=Q("moment.lang is deprecated. Use moment.locale instead.",_),e.langData=Q("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"),Jo=wi("milliseconds"),Qo=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=Jo,hn.seconds=Qo,hn.minutes=$o,hn.hours=tn,hn.days=en,hn.weeks=_i,hn.months=on,hn.years=nn,hn.humanize=Oi,hn.toISOString=Di,hn.toString=Di,hn.toJSON=Di,hn.locale=pe,hn.localeData=fe,hn.toIsoString=Q("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Di),hn.lang=ko,I("X",0,0,"unix"),I("x",0,0,"valueOf"),B("x",qi),B("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(Dt),e.fn=zo,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=O,e.relativeTimeThreshold=Mi;var dn=e;return dn})}).call(e,i(107)(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 O(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=z(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=A(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=R(a,h),e.distance=F(a,h),I(i,e),e.offsetDirection=B(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=L(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=B(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 z(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 L(t,e,i){return{x:e/t||0,y:i/t||0}}function B(t,e){return t===e?It:vt(t)>=vt(e)?t>0?Nt:zt:e>0?At:Lt}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 R(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 R(e[1],e[0],Ht)-R(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=Jt,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",Jt="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 Qt={touchstart:Ct,touchmove:Et,touchend:St,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel";p(V,C,{handler:function(t){var e=Qt[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==Ot;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=O(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&Bt||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;J.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?Q(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:zt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?At:Lt,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,J,{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:Bt|Ft,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Bt|Ft)?e=t.velocity:i&Bt?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,J,{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.distances;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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=["color","fixed","shadow"];if(B.selectiveNotDeepExtend(o,t,e),B.mergeOptions(t,e,"shadow"),void 0!==e.color&&null!==e.color){var n=B.parseColor(e.color);B.fillIfDefined(t.color,n)}else i===!0&&(t.color=void 0,delete t.color);void 0!==e.fixed&&null!==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"]=F,t.exports=e["default"]},function(t,e,i){function o(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")}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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.strokeWidth>0&&(t.lineWidth=this.options.font.strokeWidth,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){var i=void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;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=void 0,o=void 0,n=void 0;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/Math.pow(t,3),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=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;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}};this._splitBranch(g.root);for(var 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=void 0,o=void 0,n=void 0,s=void 0,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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.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=void 0===arguments[2]?!1:arguments[2],o=["id","font","from","hidden","hoverWidth","label","length","line","opacity","physics","selectionWidth","selfReferenceSize","to","title","value","width"];if(f.selectiveDeepExtend(o,t,e,i),f.mergeOptions(t,e,"smooth"),f.mergeOptions(t,e,"shadow"),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&(t.dashes=void 0,delete t.dashes),void 0!==e.scaling&&null!==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")):i===!0&&(t.scaling=void 0,delete t.scaling),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var n=e.arrows.toLowerCase();-1!=n.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=n.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=n.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")}else i===!0&&(t.arrows=void 0,delete t.arrows);if(void 0!==e.color&&null!==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 s=!1;void 0!==e.color.color&&(t.color.color=e.color.color,s=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,s=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,s=!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&&s===!0&&(t.color.inherit=!1)}else i===!0&&(t.color=void 0,delete t.color)}}]),t}();e["default"]=m,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,i){for(var o=!0;o;){a=d=h=void 0,o=!1;var n=t,s=e,r=i,a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;return void 0===h?void 0:h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return void 0;t=d,e=s,i=r,o=!0}},a=i(74),h=o(a),d=function(t){function e(t,i,o,s,a){n(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o,s,a),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}return s(e,t),e}(h["default"]);e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r=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.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=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){function o(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")}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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"]}])}); +"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(57),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(21),BackgroundItem:i(22),BoxItem:i(20),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.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var o=0;o0&&Object.keys(s).length>0&&i.push({nodes:n,edges:s})}}}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 d=n[a];if(void 0===this.body.nodes[d.fromId]||void 0===this.body.nodes[d.toId])d.edgeType.cleanup(),d.disconnect(),delete this.body.edges[a];else if(void 0!==this.clusteredNodes[d.fromId]||void 0!==this.clusteredNodes[d.toId]){var l=void 0,u=void 0,c=this.clusteredNodes[d.fromId]||this.clusteredNodes[d.toId],p=c.clusterId,f=this.body.nodes[p];if(f.containedEdges[a]=d,d.from.options.hidden!==!0&&d.to.options.hidden!==!0){void 0!==this.clusteredNodes[d.fromId]?(l=p,u=d.toId):(l=d.fromId,u=p);var m=this._cloneOptions(d,"edge"),v="clusterEdge:"+h.randomUUID();h.deepExtend(m,f.clusterEdgeProperties),h.deepExtend(m,{from:l,to:u,hidden:!1,physics:!0,id:v});var g=this.body.functions.createEdge(m);this.body.edges[v]=g,this.body.edges[v].connect()}}else d.options.hidden=!1,d.togglePhysics(!0)}for(var y=0;yo;)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){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;if("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",o.group.options.drawPoints.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);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)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(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(57),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=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},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=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},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;ns;s++)i=n._addItem(t[s]),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=[],s=this,r=s._fieldId,a=function(t){var e=t[r];s._data[e]?(e=s._updateItem(t),o.push(e),n.push(t)):(e=s._addItem(t),i.push(e))};if(Array.isArray(t))for(var h=0,d=t.length;d>h;h++)a(t[h]);else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(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(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,c,p=o&&o.type||this._options.type,f=o&&o.filter,m=[];if(void 0!=e)d=s._getItem(e,p),f&&!f(d)&&(d=null);else if(void 0!=i)for(u=0,c=i.length;c>u;u++)d=s._getItem(i[u],p),(!f||f(d))&&m.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=s._getItem(l,p),(!f||f(d))&&m.push(d));if(o&&o.order&&void 0==e&&this._sort(m,o.order),o&&o.fields){var v=o.fields;if(void 0!=e)d=this._filterFields(d,v);else for(u=0,c=m.length;c>u;u++)m[u]=this._filterFields(m[u],v)}if("Object"==a){var g={};for(u=0;ue;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++)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(69),a=i(3),h=i(4),d=i(57),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 u=h;h=i,i=u}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:{axis:"bottom",item:"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.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))},this.configurator=new p(this,t,g),h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(69),i(41),i(57)),s=i(3),r=i(4),a=i(17),h=i(43),d=i(35),l=i(26),u=i(27),c=i(32),p=i(44),f=i(45)["default"],m=i(45).printStyle,v=i(46).allOptions,g=i(46).configureOptions;o.prototype=new h,o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){var e=f.validate(t,v);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",m),h.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},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,{animation:!1})}else this.fit({animation:!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.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},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.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.getItemRange=function(){var t=this.itemsData&&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=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-n.getAbsoluteLeft(this.dom.centerContainer),s=i-n.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=u.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),c=this.body.util.getStep(),p=this._toTime(o),f=d?d(p,l,c):p,m=n.getTarget(t),v=null;return null!=r?v="item":null!=h?v="custom-time":n.hasParent(m,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&n.hasParent(m,this.timeAxis2.dom.foreground)?v="axis":n.hasParent(m,this.itemSet.dom.labelSet)?v="group-label":n.hasParent(m,this.currentTime.bar)?v="current-time":n.hasParent(m,this.dom.center)&&(v="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:s,time:p,snappedTime:f}},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:{axis:"bottom",item:"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.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))},this.configurator=new p(this,t,g),o&&this.setOptions(o),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(69),i(41),i(57)),s=i(3),r=i(4),a=i(17),h=i(43),d=i(35),l=i(26),u=i(27),c=i(34),p=i(44),f=i(45)["default"],m=i(45).printStyle,v=i(47).allOptions,g=i(47).configureOptions;o.prototype=new h,o.prototype.setOptions=function(t){var e=f.validate(t,v);e===!0&&console.log("%cErrors have been found in the supplied options object.",m),h.prototype.setOptions.call(this,t)},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,{animation:!1})}else this.fit({animation:!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.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-n.getAbsoluteLeft(this.dom.centerContainer),s=i-n.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=u.customTimeFromTarget(t),h=n.getTarget(t),d=null;n.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&n.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":n.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":n.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":n.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":n.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":n.hasParent(h,this.currentTime.bar)?d="current-time":n.hasParent(h,this.dom.center)&&(d="background");var l=[],c=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return c.hidden||l.push(c.screenToValue(s)),p.hidden||l.push(p.screenToValue(s)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:s,time:r,value:l}},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,r){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.formattingFunction=s,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=r,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=void 0===n.min?this._start-.75:this._start,this._end=void 0===n.max?this._end+1:this._end),this.autoScale===!0&&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(d===!0)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,this.alignZeros===!0&&(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(){var t=Math.abs(this.current)t)for(var e=0;-t>e;e++)this.previous();else if(t>0)for(var e=0;t>e;e++)this.next()},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.animationTimer=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(57),a=(i(48),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="object"==typeof i&&"duration"in i?i.duration:500,c="object"==typeof i&&"easingFunction"in i?i.easingFunction:"easeInOutQuad",p=r.easingFunctions[c];if(!p)throw new Error("Unknown easing function "+JSON.stringify(c)+". Choose from: "+Object.keys(r.easingFunctions).join(", "));var f=(new Date).valueOf(),m=!1,v=function b(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-f,i=p(e/u),r=e>u,c=r||null===n?n:h+(n-h)*i,v=r||null===s?s:l+(s-l)*i;g=a._applyRange(c,v),d.updateHiddenDates(a.body,a.options.hiddenDates),m=m||g,g&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),r?m&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animationTimer=setTimeout(b,20)}};return v()}var g=this._applyRange(n,s);if(d.updateHiddenDates(this.body,this.options.hiddenDates),g){var y={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",y),this.body.emitter.emit("rangechanged",y)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=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.clientX,y:t.clientY},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(57);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?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(n().add(1,"day"),"day")?" vis-tomorrow":t.isSame(n().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function s(t){return t.isSame(new Date,"year")?" vis-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)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"vis-year"+c+s(a)+t(c);default:return""}},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(21);i(57);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.start0){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.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.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.item;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:{top:0,width:0,height:0},content:{height:0,marginLeft:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(21);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},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.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.frame).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,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,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,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(57),s=i(25),r=i(40),a=i(49);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={locales:h,locale:"en",id:void 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(57),r=i(25),a=i(40),h=i(49);o.prototype=new r,o.prototype.setOptions=function(t){t&&s.selectiveExtend(["locale","locales","id"],this.options,t)},o.prototype._create=function(){var t=document.createElement("div");t["custom-time"]=this,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.hide(),this.hammer.destroy(),this.hammer=null,this.body=null},o.prototype.redraw=function(){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");return o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=e+"px",this.bar.title=o,!1},o.prototype.hide=function(){this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar)},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())},o.customTimeFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("custom-time"))return e["custom-time"];e=e.parentNode}return null},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,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style: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.zeroCrossing=-1,this.amountOfSteps=-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(57),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","left","right","alignZeros"];n.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),e===!0&&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;var r=Object.keys(this.groups);r.sort(function(t,e){return e>t?-1:1});for(var a=0;a0&&(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)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||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=this.options.visible===!0?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,this.options.icons===!0?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,i=this.options.orientation;if(this.master===!1){var o,n,r,h;-1!==this.zeroCrossing&&this.options.alignZeros===!0?this.range.end>0?(o=this.range.end/this.zeroCrossing,n=this.range.end-this.amountOfSteps*o,r=this.range.end):(o=-1*this.range.start/(this.amountOfSteps-this.zeroCrossing),n=this.range.start,r=this.range.start+o*this.amountOfSteps):(n=this.range.start,r=this.range.end),h=this.stepPixels}else h=this.props.majorCharHeight,n=this.range.start,r=this.range.end;if(this.step=e=new a(n,r,h,this.dom.frame.offsetHeight,this.options[this.options.orientation].range,this.options[this.options.orientation].format,this.master===!1&&this.options.alignZeros),this.master===!0)this.stepPixels=this.dom.frame.offsetHeight/e.marginRange*e.step,this.amountOfSteps=Math.ceil(this.dom.frame.offsetHeight/this.stepPixels);else if(this.options.alignZeros===!0&&-1!==this.zeroCrossing){var d=(e.current-this.zeroCrossing*e.step)/e.step;this.step.shift(d)}this.valueAtBottom=e.marginEnd,this.maxLabelSize=0;for(var l=0,u=0,c=!1;u0&&u!==this.amountOfSteps&&((this.options.showMinorLabels&&c===!1||this.master===!1&&this.options.showMinorLabels===!0)&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-minor",this.props.minorCharHeight),c&&this.options.showMajorLabels&&this.master===!0||this.options.showMinorLabels===!1&&this.master===!1&&c===!0?(l>=0&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(l,i,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(l,i,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth)),this.master===!0&&0===e.current&&(this.zeroCrossing=u),e.next(),u+=1;this.master===!0&&0===e.current&&(this.zeroCrossing=u),this.conversionFactor=this.stepPixels/e.step;var p=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(p=this.props.titleCharHeight);var f=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-f&&this.options.visible===!0?(this.width=this.maxLabelSize+f,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+f),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.valueAtBottom-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtBottom-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:{item:"bottom"},align:"auto",stack:!0,groupOrder:null,selectable:!0,multiselect:!1,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}},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(57),r=i(3),a=i(4),h=i(19),d=i(25),l=i(30),u=i(31),c=i(20),p=i(23),f=i(24),m=i(22),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","stack","selectable","multiselect","groupOrder","dataAttributes","template","hide","snap"];s.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.item="top"===t.orientation?"top":"bottom":"object"==typeof t.orientation&&"item"in t.orientation&&(this.options.orientation.item=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.item,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.item?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,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),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=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){i.push(e.id);var s=o._getItemRange(this.itemsData.get(i,this.itemOptions));i=[];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)&&i.push(a.id)}}else{var l=i.indexOf(e.id);-1==l?i.push(e.id):i.splice(l,1)}this.setSelection(i),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.clientY,i=0;ia&&ea)return n}else if(0===i&&et?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.prepareElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h0){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]],r.stack===!0?"left"==r.yAxisOrientation?a=a.concat(n.getData(o)):h=h.concat(n.getData(o)):i[t[s]]=n.getYRange(o,t[s]));c.getStackedYRange(a,i,t,"__barStackLeft","left"),c.getStackedYRange(h,i,t,"__barStackRight","right"),p.getStackedYRange(a,i,t,"__lineStackLeft","left"),p.getStackedYRange(h,i,t,"__lineStackRight","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)}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.stepPixels=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,this.yAxisRight.amountOfSteps=this.yAxisLeft.amountOfSteps,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;uy;)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){return t&&t.__esModule?t:{"default":t}}function n(t,e,i){var o=this;if(!(this instanceof n))throw new SyntaxError("Constructor must be called with the new operator");this.options={},this.defaultOptions={locale:"en",locales:j,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(),this.images=new R(function(){return o.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 D["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,this.images,this.groups,this.layoutEngine),this.edgesHandler=new l["default"](this.body,this.images,this.groups),this.canvas._create(),this.configurator=new S["default"](this,this.body.container,N.configureOptions,this.canvas.pixelRatio),this.setOptions(i),this.setData(e)}var s=i(53),r=o(s),a=i(54),h=o(a),d=i(55),l=o(d),u=i(56),c=o(u),p=i(1),f=o(p),m=i(58),v=o(m),g=i(59),y=o(g),b=i(60),w=o(b),_=i(61),x=o(_),k=i(62),M=o(k),O=i(63),D=o(O),T=i(64),C=o(T),E=i(44),S=o(E),P=i(45),I=o(P),N=i(65);i(66);var z=i(69),A=(i(41),i(57)),L=(i(3),i(4),i(38)),B=i(39),R=i(37),F=i(67),j=i(68);z(n.prototype),n.prototype.setOptions=function(t){if(void 0!==t){var e=I["default"].validate(t,N.allOptions);e===!0&&console.log("%cErrors have been found in the supplied options object.",P.printStyle);var i=["locale","locales","clickToUse"];if(A.selectiveDeepExtend(i,this.options,t),t=this.layoutEngine.setOptions(t.layout,t),this.canvas.setOptions(t),this.groups.setOptions(t.groups),this.nodesHandler.setOptions(t.nodes),this.edgesHandler.setOptions(t.edges), +this.physics.setOptions(t.physics),this.manipulation.setOptions(t.manipulation,t,this.options),this.interactionHandler.setOptions(t.interaction),this.renderer.setOptions(t.interaction),this.selectionHandler.setOptions(t.interaction),void 0!==t.groups&&this.body.emitter.emit("refreshNodes"),this.configurator.setOptions(t.configure),this.configurator.options.enabled===!0){var o={nodes:{},edges:{},layout:{},interaction:{},manipulation:{},physics:{},global:{}};A.deepExtend(o.nodes,this.nodesHandler.options),A.deepExtend(o.edges,this.edgesHandler.options),A.deepExtend(o.layout,this.layoutEngine.options),A.deepExtend(o.interaction,this.selectionHandler.options),A.deepExtend(o.interaction,this.renderer.options),A.deepExtend(o.interaction,this.interactionHandler.options),A.deepExtend(o.manipulation,this.manipulation.options),A.deepExtend(o.physics,this.physics.options),A.deepExtend(o.global,this.canvas.options),A.deepExtend(o.global,this.options),this.configurator.setModuleOptions(o)}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")}},n.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)},n.prototype.bindEventListeners=function(){var t=this;this.body.emitter.on("_dataChanged",function(){t._updateVisibleIndices(),t.physics.updatePhysicsData(),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")})},n.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){console.log("The dot property has been depricated. Please use the static convertDot method to convert DOT into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertDot(dotString);");var e=L.DOTToGraph(t.dot);return void this.setData(e)}if(t&&t.gephi){console.log("The gephi property has been depricated. Please use the static convertGephi method to convert gephi into vis.network format and use the normal data format with nodes and edges. This converter is used like this: var data = vis.network.convertGephi(gephiJson);");var i=B.parseGephi(t.gephi);return void this.setData(i)}this.nodesHandler.setData(t&&t.nodes,!0),this.edgesHandler.setData(t&&t.edges,!0),this.body.emitter.emit("_dataChanged"),this.body.emitter.emit("initPhysics")},n.prototype.destroy=function(){this.body.emitter.emit("destroy"),this.body.emitter.off(),this.off(),delete this.groups,delete this.canvas,delete this.selectionHandler,delete this.interactionHandler,delete this.view,delete this.renderer,delete this.physics,delete this.layoutEngine,delete this.clustering,delete this.manipulation,delete this.nodesHandler,delete this.edgesHandler,delete this.configurator,delete this.images,delete this.body.emitter.emit,delete this.body.emitter.on,delete this.body.emitter.off,delete this.body.emitter.once,delete this.body.emitter;for(var t in this.body.nodes)delete this.body.nodes[t];for(var e in this.body.edges)delete this.body.edges[e];A.recursiveDOMDelete(this.body.container)},n.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)},n.prototype.isActive=function(){return!this.activator||this.activator.active},n.prototype.setSize=function(){return this.canvas.setSize.apply(this.canvas,arguments)},n.prototype.canvasToDOM=function(){return this.canvas.canvasToDOM.apply(this.canvas,arguments)},n.prototype.DOMtoCanvas=function(){return this.canvas.setSize.DOMtoCanvas(this.canvas,arguments)},n.prototype.findNode=function(){return this.clustering.findNode.apply(this.clustering,arguments)},n.prototype.isCluster=function(){return this.clustering.isCluster.apply(this.clustering,arguments)},n.prototype.openCluster=function(){return this.clustering.openCluster.apply(this.clustering,arguments)},n.prototype.cluster=function(){return this.clustering.cluster.apply(this.clustering,arguments)},n.prototype.clusterByConnection=function(){return this.clustering.clusterByConnection.apply(this.clustering,arguments)},n.prototype.clusterByHubsize=function(){return this.clustering.clusterByHubsize.apply(this.clustering,arguments)},n.prototype.clusterOutliers=function(){return this.clustering.clusterOutliers.apply(this.clustering,arguments)},n.prototype.getSeed=function(){return this.layoutEngine.getSeed.apply(this.layoutEngine,arguments)},n.prototype.enableEditMode=function(){return this.manipulation.enableEditMode.apply(this.manipulation,arguments)},n.prototype.disableEditMode=function(){return this.manipulation.disableEditMode.apply(this.manipulation,arguments)},n.prototype.addNodeMode=function(){return this.manipulation.addNodeMode.apply(this.manipulation,arguments)},n.prototype.editNodeMode=function(){return this.manipulation.editNodeMode.apply(this.manipulation,arguments)},n.prototype.addEdgeMode=function(){return this.manipulation.addEdgeMode.apply(this.manipulation,arguments)},n.prototype.editEdgeMode=function(){return this.manipulation.editEdgeMode.apply(this.manipulation,arguments)},n.prototype.deleteSelected=function(){return this.manipulation.deleteSelected.apply(this.manipulation,arguments)},n.prototype.getPositions=function(){return this.nodesHandler.getPositions.apply(this.nodesHandler,arguments)},n.prototype.storePositions=function(){return this.nodesHandler.storePositions.apply(this.nodesHandler,arguments)},n.prototype.getBoundingBox=function(){return this.nodesHandler.getBoundingBox.apply(this.nodesHandler,arguments)},n.prototype.getConnectedNodes=function(t){return void 0!==this.body.nodes[t]?this.nodesHandler.getConnectedNodes.apply(this.nodesHandler,arguments):this.edgesHandler.getConnectedNodes.apply(this.edgesHandler,arguments)},n.prototype.getEdges=function(){return this.nodesHandler.getEdges.apply(this.nodesHandler,arguments)},n.prototype.startSimulation=function(){return this.physics.startSimulation.apply(this.physics,arguments)},n.prototype.stopSimulation=function(){return this.physics.stopSimulation.apply(this.physics,arguments)},n.prototype.stabilize=function(){return this.physics.stabilize.apply(this.physics,arguments)},n.prototype.getSelection=function(){return this.selectionHandler.getSelection.apply(this.selectionHandler,arguments)},n.prototype.getSelectedNodes=function(){return this.selectionHandler.getSelectedNodes.apply(this.selectionHandler,arguments)},n.prototype.getSelectedEdges=function(){return this.selectionHandler.getSelectedEdges.apply(this.selectionHandler,arguments)},n.prototype.getNodeAt=function(){return this.selectionHandler.getNodeAt.apply(this.selectionHandler,arguments)},n.prototype.getEdgeAt=function(){return this.selectionHandler.getEdgeAt.apply(this.selectionHandler,arguments)},n.prototype.selectNodes=function(){return this.selectionHandler.selectNodes.apply(this.selectionHandler,arguments)},n.prototype.selectEdges=function(){return this.selectionHandler.selectEdges.apply(this.selectionHandler,arguments)},n.prototype.unselectAll=function(){return this.selectionHandler.unselectAll.apply(this.selectionHandler,arguments)},n.prototype.redraw=function(){return this.renderer.redraw.apply(this.renderer,arguments)},n.prototype.getScale=function(){return this.view.getScale.apply(this.view,arguments)},n.prototype.getViewPosition=function(){return this.view.getViewPosition.apply(this.view,arguments)},n.prototype.fit=function(){return this.view.fit.apply(this.view,arguments)},n.prototype.moveTo=function(){return this.view.moveTo.apply(this.view,arguments)},n.prototype.focus=function(){return this.view.focus.apply(this.view,arguments)},n.prototype.releaseNode=function(){return this.view.releaseNode.apply(this.view,arguments)},t.exports=n},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 I=t,f()}function n(){N=0,z=I.charAt(0)}function s(){N++,z=I.charAt(N)}function r(){return I.charAt(N+1)}function a(t){return B.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(L=S.NULL,A="";" "===z||" "===z||"\n"===z||"\r"===z;)s();do{var t=!1;if("#"===z){for(var e=N-1;" "===I.charAt(e)||" "===I.charAt(e);)e--;if("\n"===I.charAt(e)||""===I.charAt(e)){for(;""!=z&&"\n"!=z;)s();t=!0}}if("/"===z&&"/"===r()){for(;""!=z&&"\n"!=z;)s();t=!0}if("/"===z&&"*"===r()){for(;""!=z;){if("*"===z&&"/"===r()){s(),s();break}s()}t=!0}for(;" "===z||" "===z||"\n"===z||"\r"===z;)s()}while(t);if(""===z)return void(L=S.DELIMITER);var i=z+r();if(P[i])return L=S.DELIMITER,A=i,s(),void s();if(P[z])return L=S.DELIMITER,A=z,void s();if(a(z)||"-"===z){for(A+=z,s();a(z);)A+=z,s();return"false"===A?A=!1:"true"===A?A=!0:isNaN(Number(A))||(A=Number(A)),void(L=S.IDENTIFIER)}if('"'===z){for(s();""!=z&&('"'!=z||'"'===z&&'"'===r());)A+=z,'"'===z&&s(),s();if('"'!=z)throw x('End of string " expected');return s(),void(L=S.IDENTIFIER)}for(L=S.UNKNOWN;""!=z;)A+=z,s();throw new SyntaxError('Syntax error in part "'+k(A,30)+'"')}function f(){var t={};if(n(),p(),"strict"===A&&(t.strict=!0,p()),("graph"===A||"digraph"===A)&&(t.type=A,p()),L===S.IDENTIFIER&&(t.id=A,p()),"{"!=A)throw x("Angle bracket { expected");if(p(),m(t),"}"!=A)throw x("Angle bracket } expected");if(p(),""!==A)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==A&&"}"!=A;)v(t),";"===A&&p()}function v(t){var e=g(t);if(e)return void w(t,e);var i=y(t);if(!i){if(L!=S.IDENTIFIER)throw x("Identifier expected");var o=A;if(p(),"="===A){if(p(),L!=S.IDENTIFIER)throw x("Identifier expected");t[o]=A,p()}else b(t,o)}}function g(t){var e=null;if("subgraph"===A&&(e={},e.type="subgraph",p(),L===S.IDENTIFIER&&(e.id=A,p())),"{"===A){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=A)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"===A?(p(),t.node=_(),"node"):"edge"===A?(p(),t.edge=_(),"edge"):"graph"===A?(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(;"->"===A||"--"===A;){var i,o=A;p();var n=g(t);if(n)i=n;else{if(L!=S.IDENTIFIER)throw x("Identifier or subgraph expected");i=A,l(t,{id:i}),p()}var s=_(),r=c(t,e,i,o,s);u(t,r),e=i}}function _(){for(var t=null;"["===A;){for(p(),t={};""!==A&&"]"!=A;){if(L!=S.IDENTIFIER)throw x("Attribute name expected");var e=A;if(p(),"="!=A)throw x("Equal sign = expected");if(p(),L!=S.IDENTIFIER)throw x("Attribute value expected");var i=A;d(t,e,i),p(),","==A&&p()}if("]"!=A)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+k(A,30)+'" (char '+N+")")}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 O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},I="",N=0,z="",A="",L=S.NULL,B=/[a-zA-Z_0-9.:#]/;e.parseDOT=o,e.DOTToGraph=T},function(t,e,i){function o(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;an&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e,i){function o(){}var n=i(69),s=i(41),r=i(48),a=i(57),h=(i(3),i(4),i(17),i(32),i(35)),d=i(67),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("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){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.customTimes=[],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={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){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}if("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)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),this.configurator){this.configurator.setOptions(t.configure);var n=a.deepExtend({},this.options);this.components.forEach(function(t){a.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),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){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?a.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,{time:i,id:e});return this.customTimes.push(n),this.components.push(n),this.redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animation?t.animation:!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.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!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.animation?e.animation:!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;"top"!=e.orientation.item&&(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.scrollTop0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-network-configuration button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-network-configuration button hover"},e.onmouseout=function(){e.className="vis-network-configuration button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-network-configuration vis-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),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?i-1:0),n=1;i>n;n++)o[n-1]=arguments[n];this.allowCreation===!0&&!function(){var i=document.createElement("div");i.className="vis-network-configuration item s"+t.length,o.forEach(function(t){i.appendChild(t)}),e.domElements.push(i)}()}},{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(Number(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:"_makeTextInput",value:function(t,e,i){var o=document.createElement("input");o.type="text",o.className="vis-network-configuration text",o.value=e,e!==t&&this.changedOptions.push({path:i,value:e});var n=this;o.onchange=function(){n._update(this.value,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],i=void 0===arguments[2]?!1:arguments[2],o=!1,n=this.options.filter,s=!1;for(var r in t)if(t.hasOwnProperty(r)){o=!0;var a=t[r],d=h.copyAndExtendArray(e,r);if("function"==typeof n&&(o=n(r,e),o===!1&&!(a instanceof Array)&&"string"!=typeof a&&"boolean"!=typeof a&&a instanceof Object&&(this.allowCreation=!1,o=this._handleObject(a,d,!0),this.allowCreation=i===!1)),o!==!1){s=!0;var l=this._getValue(d);if(a instanceof Array)this._handleArray(a,l,d);else if("string"==typeof a)this._makeTextInput(a,l,d);else if("boolean"==typeof a)this._makeCheckbox(a,l,d);else if(a instanceof Object){var u=!0;if(-1!==e.indexOf("physics")&&this.moduleOptions.physics.solver!==r&&(u=!1),u===!0)if(void 0!==a.enabled){var c=h.copyAndExtendArray(d,"enabled"),p=this._getValue(c);if(p===!0){var f=this._makeLabel(r,d,!0);this._makeItem(d,f),s=this._handleObject(a,d)||s}else this._makeCheckbox(a,p,d)}else{var f=this._makeLabel(r,d,!0);this._makeItem(d,f),s=this._handleObject(a,d)||s}}else console.error("dont know how to handle",a,r,d)}}return s}},{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:Number(e)}))}},{key:"_update",value:function(t,e){var i=this._constructOptions(t,e);this.parent.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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),h):n.distance<=d?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),h):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),h),r=!0}},{key:"findInOptions",value:function(e,i,o){var n=void 0===arguments[3]?!1:arguments[3],r=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var u in i){var c=void 0;if(void 0!==i[u].__type__&&n===!0){var p=t.findInOptions(e,i[u],s.copyAndExtendArray(o,u));r>p.distance&&(a=p.closestMatch,h=p.path,r=p.distance,l=p.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),c=t.levenshteinDistance(e,u),r>c&&(a=u,h=s.copyArray(o),r=c)}return{closestMatch:a,path:h,distance:r,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var s=0;st[o].y?t[o].y:e,i=i0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0&&(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,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o.prototype.draw=function(t,e,i){if(null!=t&&t.length>0){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",e.style),a=1==e.options.interpolation.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.interpolation.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,d.options.stack===!0?c[l].y0&&(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,accumulatedPositive:0,accumulatedNegative: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.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive: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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i1&&(this.startedStabilization=!1),this.stopSimulation())}},{key:"_emitStabilized",value:function(){var t=this;this.stabilizationIterations>1&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:t.stabilizationIterations}),t.stabilizationIterations=0},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:"updatePhysicsData",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(){var t=this,e=void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];"number"!=typeof e&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),e=this.options.stabilization.iterations),this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedrawRequests"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,setTimeout(function(){return t._stabilizationBatch()},0)}},{key:"_stabilizationBatch",value:function(){for(var t=0;this.stabilized===!1&&ti;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":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;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("rgba"))return t;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)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,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 r={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=r.split(t.style.cssText),n=r.split(i),s=e.extend(o,n);t.style.cssText=r.join(s)},e.removeCssText=function(t,e){var i=r.split(t.style.cssText),o=r.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=r.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.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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 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.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),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.pixelRatio&&(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),e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),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),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0)for(var r=0;rt.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.top&&(i=t.shape.boundingBox.top),ot.shape.boundingBox.left&&(n=t.shape.boundingBox.left),st.shape.boundingBox.top&&(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("_resizeNodes"),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.animation};this.moveTo(f)}},{key:"focus",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:"getViewPosition",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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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),i=this.selectionHandler.options.multiselect&&t.changedPointers[0].ctrlKey;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.pageX,y:t.pageY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount();h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0):0>h-n&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0),a-o>0?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,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",t,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);this.selectionHandler._generateClickEvent("dragging",t,i);var 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",t,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:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{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.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){this.randomSeed=this.initialRandomSeed;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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.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"),t.showManipulatorToolbar())})}else this.body.data.edges.remove(i),this.body.data.nodes.remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{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.options.locales.en.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||this.options.locales.en.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||this.options.locales.en.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||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(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.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.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:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.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("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.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"]=h,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={configure:{enabled:{"boolean":n},filter:{"boolean":n,string:o,array:r,fn:d},container:{dom:h},showButton:{"boolean":n},__type__:{object:a,"boolean":n,string:o,array:r,fn:d}},edges:{arrows:{to:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},middle:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},from:{enabled:{"boolean":n},scaleFactor:{number:s},__type__:{object:a,"boolean":n}},__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,string:o}},dashes:{"boolean":n,array:r},font:{color:{string:o},size:{number:s},face:{string:o},background:{string:o},strokeWidth:{number:s},strokeColor:{string:o},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:a,string:o}},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},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW"]},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__:"get from nodes, will be overwritten below",__type__:{object:a}},interaction:{dragNodes:{"boolean":n},dragView:{"boolean":n},hideEdgesOnDrag:{"boolean":n},hideNodesOnDrag:{"boolean":n},hover:{"boolean":n},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}},multiselect:{"boolean":n},navigationButtons:{"boolean":n},selectable:{"boolean":n},selectConnectedEdges:{"boolean":n},tooltipDelay:{number:s},zoomView:{"boolean":n},__type__:{object:a}},layout:{randomSeed:{undef:l,number:s},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},addNode:{"boolean":n,fn:d},addEdge:{"boolean":n,fn:d},editNode:{fn:d},editEdge:{"boolean":n,fn:d},deleteNode:{"boolean":n,fn:d},deleteEdge:{"boolean":n,fn:d},controlNodeStyle:"get from nodes, will be overwritten below",__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},strokeWidth:{number:s},strokeColor:{string:o},__type__:{object:a,string:o}},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}},id:{string:o,number:s},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},avoidOverlap:{number:s},__type__:{object:a}},forceAtlas2Based:{gravitationalConstant:{number:s},centralGravity:{number:s},springLength:{number:s},springConstant:{number:s},damping:{number:s},avoidOverlap:{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","forceAtlas2Based"]},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}},autoResize:{"boolean":n},clickToUse:{"boolean":n},locale:{string:o},locales:{__any__:{object:a},__type__:{object:a}},height:{string:o},width:{string:o},__type__:{object:a}};u.groups.__any__=u.nodes,u.manipulation.controlNodeStyle=u.nodes;var c={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=u,e.configureOptions=c},function(t,e,i){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;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),this.closePath()},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),this.closePath()},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(88),r=i(69),a=i(41),h=i(57);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){e.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."},e.en_EN=e.en,e.en_US=e.en,e.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."},e.nl_NL=e.nl,e.nl_BE=e.nl},function(t,e,i){function o(t){return t?n(t):void 0}function n(t){for(var e in o.prototype)t[e]=o.prototype[e];return t}t.exports=o,o.prototype.on=o.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},o.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},o.prototype.off=o.prototype.removeListener=o.prototype.removeAllListeners=o.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,n=0;no;++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(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Si.apply(null,arguments)}function i(t){Si=t}function o(t){return"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in Ii)o=Ii[i],n=e[o],"undefined"!=typeof n&&(t[o]=n);return t}function f(t){p(this,t),this._d=new Date(+t._d),Ni===!1&&(Ni=!0,e.updateOffset(this),Ni=!1)}function m(t){return t instanceof f||null!=t&&null!=t._isAMomentObject}function v(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function g(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&&v(t[o])!==v(e[o]))&&r++;return r+s}function y(){}function b(t){return t?t.toLowerCase().replace("_","-"):t}function w(t){for(var e,i,o,n,s=0;s0;){if(o=_(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&g(n,i,!0)>=e-1)break;e--}s++}return null}function _(e){var i=null;if(!zi[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Pi._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),x(i)}catch(o){}return zi[e]}function x(t,e){var i;return t&&(i="undefined"==typeof e?M(t):k(t,e),i&&(Pi=i)),Pi._abbr}function k(t,e){return null!==e?(e.abbr=t,zi[t]||(zi[t]=new y),zi[t].set(e),x(t),zi[t]):(delete zi[t],null)}function M(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Pi;if(!o(t)){if(e=_(t))return e;t=[t]}return w(t)}function O(t,e){var i=t.toLowerCase();Ai[i]=Ai[i+"s"]=Ai[e]=t}function D(t){return"string"==typeof t?Ai[t]||Ai[t.toLowerCase()]:void 0}function T(t){var e,i,o={};for(i in t)r(t,i)&&(e=D(i),e&&(o[e]=t[i]));return o}function C(t,i){return function(o){return null!=o?(S(this,t,o),e.updateOffset(this,i),this):E(this,t)}}function E(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function S(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function P(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 I(t,e,i){for(var o=""+Math.abs(t),n=t>=0;o.lengthe;e++)Fi[o[e]]?o[e]=Fi[o[e]]:o[e]=z(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 L(t,e){return t.isValid()?(e=B(e,t.localeData()),Ri[e]||(Ri[e]=A(e)),Ri[e](t)):t.localeData().invalidDate()}function B(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Bi.lastIndex=0;o>=0&&Bi.test(t);)t=t.replace(Bi,i),Bi.lastIndex=0,o-=1;return t}function R(t,e,i){to[t]="function"==typeof e?e:function(t){return t&&i?i:e}}function F(t,e){return r(to,t)?to[t](e._strict,e._locale):new RegExp(j(t))}function j(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function H(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=v(t)}),i=0;io;o++){if(n=h([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 X(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),G(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function Z(t){return null!=t?(X(this,t),e.updateOffset(this,!0),this):E(this,"Month")}function K(){return G(this.year(),this.month())}function J(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[oo]<0||i[oo]>11?oo:i[no]<1||i[no]>G(i[io],i[oo])?no:i[so]<0||i[so]>24||24===i[so]&&(0!==i[ro]||0!==i[ao]||0!==i[ho])?so:i[ro]<0||i[ro]>59?ro:i[ao]<0||i[ao]>59?ao:i[ho]<0||i[ho]>999?ho:-1,l(t)._overflowDayOfYear&&(io>e||e>no)&&(e=no),l(t).overflow=e),t}function Q(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function $(t,e){var i=!0,o=t+"\n"+(new Error).stack;return a(function(){return i&&(Q(o),i=!1),e.apply(this,arguments)},e)}function tt(t,e){co[t]||(Q(e),co[t]=!0)}function et(t){var e,i,o=t._i,n=po.exec(o);if(n){for(l(t).iso=!0,e=0,i=fo.length;i>e;e++)if(fo[e][1].exec(o)){t._f=fo[e][0]+(n[6]||" ");break}for(e=0,i=mo.length;i>e;e++)if(mo[e][1].exec(o)){t._f+=mo[e][0];break}o.match(Ji)&&(t._f+="Z"),wt(t)}else t._isValid=!1}function it(t){var i=vo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(et(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function ot(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 nt(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function st(t){return rt(t)?366:365}function rt(t){return t%4===0&&t%100!==0||t%400===0}function at(){return rt(this.year())}function ht(t,e,i){var o,n=i-e,s=i-t.day();return s>n&&(s-=7),n-7>s&&(s+=7),o=Tt(t).add(s,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function dt(t){return ht(t,this._week.dow,this._week.doy).week}function lt(){return this._week.dow}function ut(){return this._week.doy}function ct(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function pt(t){var e=ht(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ft(t,e,i,o,n){var s,r,a=nt(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:st(t-1)+r}}function mt(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 vt(t,e,i){return null!=t?t:null!=e?e:i}function gt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function yt(t){var e,i,o,n,s=[];if(!t._d){for(o=gt(t),t._w&&null==t._a[no]&&null==t._a[oo]&&bt(t),t._dayOfYear&&(n=vt(t._a[io],o[io]),t._dayOfYear>st(n)&&(l(t)._overflowDayOfYear=!0),i=nt(n,0,t._dayOfYear),t._a[oo]=i.getUTCMonth(),t._a[no]=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[so]&&0===t._a[ro]&&0===t._a[ao]&&0===t._a[ho]&&(t._nextDay=!0,t._a[so]=0),t._d=(t._useUTC?nt:ot).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[so]=24)}}function bt(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=vt(e.GG,t._a[io],ht(Tt(),1,4).year),o=vt(e.W,1),n=vt(e.E,1)):(s=t._locale._week.dow,r=t._locale._week.doy,i=vt(e.gg,t._a[io],ht(Tt(),s,r).year),o=vt(e.w,1),null!=e.d?(n=e.d,s>n&&++o):n=null!=e.e?e.e+s:s),a=ft(i,o,n,r,s),t._a[io]=a.year,t._dayOfYear=a.dayOfYear}function wt(t){if(t._f===e.ISO_8601)return void et(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=B(t._f,t._locale).match(Li)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Fi[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),W(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[so]<=12&&t._a[so]>0&&(l(t).bigHour=void 0),t._a[so]=_t(t._locale,t._a[so],t._meridiem),yt(t),J(t)}function _t(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 xt(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function kt(t){if(!t._d){var e=T(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],yt(t)}}function Mt(t){var e,i=t._i,s=t._f;return t._locale=t._locale||M(t._l),null===i||void 0===s&&""===i?c({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),m(i)?new f(J(i)):(o(s)?xt(t):s?wt(t):n(i)?t._d=i:Ot(t),e=new f(J(t)),e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e))}function Ot(t){var i=t._i;void 0===i?t._d=new Date:n(i)?t._d=new Date(+i):"string"==typeof i?it(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),yt(t)):"object"==typeof i?kt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Dt(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,Mt(s)}function Tt(t,e,i,o){return Dt(t,e,i,o,!1)}function Ct(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Tt();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+I(~~(t/60),2)+e+I(~~t%60,2)})}function zt(t){var e=(t||"").match(Ji)||[],i=e[e.length-1]||[],o=(i+"").match(_o)||["-",0,0],n=+(60*o[1])+v(o[2]);return"+"===o[0]?n:-n}function At(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(m(t)||n(t)?+t:+Tt(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):Tt(t).local()}function Lt(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Bt(t,i){var o,n=this._offset||0;return null!=t?("string"==typeof t&&(t=zt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Lt(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?$t(this,Xt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Lt(this)}function Rt(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 jt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Lt(this),"m")),this}function Ht(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(zt(this._i)),this}function Yt(t){return t=t?Tt(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Wt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Gt(){ +if(this._a){var t=this._isUTC?h(this._a):Tt(this._a);return this.isValid()&&g(this._a,t.toArray())>0}return!1}function Ut(){return!this._isUTC}function Vt(){return this._isUTC}function qt(){return this._isUTC&&0===this._offset}function Xt(t,e){var i,o,n,s=t,a=null;return It(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=xo.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:v(a[no])*i,h:v(a[so])*i,m:v(a[ro])*i,s:v(a[ao])*i,ms:v(a[ho])*i}):(a=ko.exec(t))?(i="-"===a[1]?-1:1,s={y:Zt(a[2],i),M:Zt(a[3],i),d:Zt(a[4],i),h:Zt(a[5],i),m:Zt(a[6],i),s:Zt(a[7],i),w:Zt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=Jt(Tt(s.from),Tt(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Pt(s),It(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function Zt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Kt(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 Jt(t,e){var i;return e=At(e,t),t.isBefore(e)?i=Kt(t,e):(i=Kt(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)||(tt(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=Xt(i,o),$t(this,n,t),this}}function $t(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&&S(t,"Date",E(t,"Date")+r*o),a&&X(t,E(t,"Month")+a*o),n&&e.updateOffset(t,r||a)}function te(t){var e=t||Tt(),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,Tt(e)))}function ee(){return new f(this)}function ie(t,e){var i;return e=D("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Tt(t),+this>+t):(i=m(t)?+t:+Tt(t),i<+this.clone().startOf(e))}function oe(t,e){var i;return e=D("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Tt(t),+t>+this):(i=m(t)?+t:+Tt(t),+this.clone().endOf(e)t?Math.ceil(t):Math.floor(t)}function ae(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=he(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:re(n)}function he(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 de(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function le(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(i=Tt([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 Fe(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ze(t,this.localeData()),this.add(t-e,"d")):e}function je(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function He(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ye(t,e){N(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function We(t,e){return e._meridiemParse}function Ge(t){return"p"===(t+"").toLowerCase().charAt(0)}function Ue(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Ve(t){N(0,[t,3],0,"millisecond")}function qe(){return this._isUTC?"UTC":""}function Xe(){return this._isUTC?"Coordinated Universal Time":""}function Ze(t){return Tt(1e3*t)}function Ke(){return Tt.apply(null,arguments).parseZone()}function Je(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.call(e,i):o}function Qe(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 $e(){return this._invalidDate}function ti(t){return this._ordinal.replace("%d",t)}function ei(t){return t}function ii(t,e,i,o){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,o):n.replace(/%d/i,t)}function oi(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ni(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 si(t,e,i,o){var n=M(),s=h().set(o,e);return n[i](s,t)}function ri(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return si(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=si(t,s,i,n);return r}function ai(t,e){return ri(t,e,"months",12,"month")}function hi(t,e){return ri(t,e,"monthsShort",12,"month")}function di(t,e){return ri(t,e,"weekdays",7,"day")}function li(t,e){return ri(t,e,"weekdaysShort",7,"day")}function ui(t,e){return ri(t,e,"weekdaysMin",7,"day")}function ci(){var t=this._data;return this._milliseconds=Uo(this._milliseconds),this._days=Uo(this._days),this._months=Uo(this._months),t.milliseconds=Uo(t.milliseconds),t.seconds=Uo(t.seconds),t.minutes=Uo(t.minutes),t.hours=Uo(t.hours),t.months=Uo(t.months),t.years=Uo(t.years),this}function pi(t,e,i,o){var n=Xt(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function fi(t,e){return pi(this,t,e,1)}function mi(t,e){return pi(this,t,e,-1)}function vi(){var t,e,i,o=this._milliseconds,n=this._days,s=this._months,r=this._data,a=0;return r.milliseconds=o%1e3,t=re(o/1e3),r.seconds=t%60,e=re(t/60),r.minutes=e%60,i=re(e/60),r.hours=i%24,n+=re(i/24),a=re(gi(n)),n-=re(yi(a)),s+=re(n/30),n%=30,a+=re(s/12),s%=12,r.days=n,r.months=s,r.years=a,this}function gi(t){return 400*t/146097}function yi(t){return 146097*t/400}function bi(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*gi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(yi(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 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function wi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*v(this._months/12)}function _i(t){return function(){return this.as(t)}}function xi(t){return t=D(t),this[t+"s"]()}function ki(t){return function(){return this._data[t]}}function Mi(){return re(this.days()/7)}function Oi(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Di(t,e,i){var o=Xt(t).abs(),n=hn(o.as("s")),s=hn(o.as("m")),r=hn(o.as("h")),a=hn(o.as("d")),h=hn(o.as("M")),d=hn(o.as("y")),l=n0,l[4]=i,Oi.apply(null,l)}function Ti(t,e){return void 0===dn[t]?!1:void 0===e?dn[t]:(dn[t]=e,!0)}function Ci(t){var e=this.localeData(),i=Di(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ei(){var t=ln(this.years()),e=ln(this.months()),i=ln(this.days()),o=ln(this.hours()),n=ln(this.minutes()),s=ln(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 Si,Pi,Ii=e.momentProperties=[],Ni=!1,zi={},Ai={},Li=/(\[[^\[]*\])|(\\)?(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,Bi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ri={},Fi={},ji=/\d/,Hi=/\d\d/,Yi=/\d{3}/,Wi=/\d{4}/,Gi=/[+-]?\d{6}/,Ui=/\d\d?/,Vi=/\d{1,3}/,qi=/\d{1,4}/,Xi=/[+-]?\d{1,6}/,Zi=/\d+/,Ki=/[+-]?\d+/,Ji=/Z|[+-]\d\d:?\d\d/gi,Qi=/[+-]?\d+(\.\d{1,3})?/,$i=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,to={},eo={},io=0,oo=1,no=2,so=3,ro=4,ao=5,ho=6;N("M",["MM",2],"Mo",function(){return this.month()+1}),N("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),N("MMMM",0,0,function(t){return this.localeData().months(this,t)}),O("month","M"),R("M",Ui),R("MM",Ui,Hi),R("MMM",$i),R("MMMM",$i),H(["M","MM"],function(t,e){e[oo]=v(t)-1}),H(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[oo]=n:l(i).invalidMonth=t});var lo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),uo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),co={};e.suppressDeprecationWarnings=!1;var po=/^\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)?)?$/,fo=[["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}/]],mo=[["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/]],vo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=$("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":""))}),N(0,["YY",2],0,function(){return this.year()%100}),N(0,["YYYY",4],0,"year"),N(0,["YYYYY",5],0,"year"),N(0,["YYYYYY",6,!0],0,"year"),O("year","y"),R("Y",Ki),R("YY",Ui,Hi),R("YYYY",qi,Wi),R("YYYYY",Xi,Gi),R("YYYYYY",Xi,Gi),H(["YYYY","YYYYY","YYYYYY"],io),H("YY",function(t,i){i[io]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return v(t)+(v(t)>68?1900:2e3)};var go=C("FullYear",!1);N("w",["ww",2],"wo","week"),N("W",["WW",2],"Wo","isoWeek"),O("week","w"),O("isoWeek","W"),R("w",Ui),R("ww",Ui,Hi),R("W",Ui),R("WW",Ui,Hi),Y(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=v(t)});var yo={dow:0,doy:6};N("DDD",["DDDD",3],"DDDo","dayOfYear"),O("dayOfYear","DDD"),R("DDD",Vi),R("DDDD",Yi),H(["DDD","DDDD"],function(t,e,i){i._dayOfYear=v(t)}),e.ISO_8601=function(){};var bo=$("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Tt.apply(null,arguments);return this>t?this:t}),wo=$("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Tt.apply(null,arguments);return t>this?this:t});Nt("Z",":"),Nt("ZZ",""),R("Z",Ji),R("ZZ",Ji),H(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=zt(t)});var _o=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var xo=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,ko=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Xt.fn=Pt.prototype;var Mo=Qt(1,"add"),Oo=Qt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var Do=$("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)});N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Te("gggg","weekYear"),Te("ggggg","weekYear"),Te("GGGG","isoWeekYear"),Te("GGGGG","isoWeekYear"),O("weekYear","gg"),O("isoWeekYear","GG"),R("G",Ki),R("g",Ki),R("GG",Ui,Hi),R("gg",Ui,Hi),R("GGGG",qi,Wi),R("gggg",qi,Wi),R("GGGGG",Xi,Gi),R("ggggg",Xi,Gi),Y(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=v(t)}),Y(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),N("Q",0,0,"quarter"),O("quarter","Q"),R("Q",ji),H("Q",function(t,e){e[oo]=3*(v(t)-1)}),N("D",["DD",2],"Do","date"),O("date","D"),R("D",Ui),R("DD",Ui,Hi),R("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),H(["D","DD"],no),H("Do",function(t,e){e[no]=v(t.match(Ui)[0],10)});var To=C("Date",!0);N("d",0,"do","day"),N("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),N("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),N("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),N("e",0,0,"weekday"),N("E",0,0,"isoWeekday"),O("day","d"),O("weekday","e"),O("isoWeekday","E"),R("d",Ui),R("e",Ui),R("E",Ui),R("dd",$i),R("ddd",$i),R("dddd",$i),Y(["dd","ddd","dddd"],function(t,e,i){var o=i._locale.weekdaysParse(t);null!=o?e.d=o:l(i).invalidWeekday=t}),Y(["d","e","E"],function(t,e,i,o){e[o]=v(t)});var Co="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Eo="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),So="Su_Mo_Tu_We_Th_Fr_Sa".split("_");N("H",["HH",2],0,"hour"),N("h",["hh",2],0,function(){return this.hours()%12||12}),Ye("a",!0),Ye("A",!1),O("hour","h"),R("a",We),R("A",We),R("H",Ui),R("h",Ui),R("HH",Ui,Hi),R("hh",Ui,Hi),H(["H","HH"],so),H(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),H(["h","hh"],function(t,e,i){e[so]=v(t),l(i).bigHour=!0});var Po=/[ap]\.?m?\.?/i,Io=C("Hours",!0);N("m",["mm",2],0,"minute"),O("minute","m"),R("m",Ui),R("mm",Ui,Hi),H(["m","mm"],ro);var No=C("Minutes",!1);N("s",["ss",2],0,"second"),O("second","s"),R("s",Ui),R("ss",Ui,Hi),H(["s","ss"],ao);var zo=C("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Ve("SSS"),Ve("SSSS"),O("millisecond","ms"),R("S",Vi,ji),R("SS",Vi,Hi),R("SSS",Vi,Yi),R("SSSS",Zi),H(["S","SS","SSS","SSSS"],function(t,e){e[ho]=v(1e3*("0."+t))});var Ao=C("Milliseconds",!1);N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var Lo=f.prototype;Lo.add=Mo,Lo.calendar=te,Lo.clone=ee,Lo.diff=ae,Lo.endOf=be,Lo.format=ue,Lo.from=ce,Lo.fromNow=pe,Lo.to=fe,Lo.toNow=me,Lo.get=P,Lo.invalidAt=De,Lo.isAfter=ie,Lo.isBefore=oe,Lo.isBetween=ne,Lo.isSame=se,Lo.isValid=Me,Lo.lang=Do,Lo.locale=ve,Lo.localeData=ge,Lo.max=wo,Lo.min=bo,Lo.parsingFlags=Oe,Lo.set=P,Lo.startOf=ye,Lo.subtract=Oo,Lo.toArray=ke,Lo.toDate=xe,Lo.toISOString=le,Lo.toJSON=le,Lo.toString=de,Lo.unix=_e,Lo.valueOf=we,Lo.year=go,Lo.isLeapYear=at,Lo.weekYear=Ee,Lo.isoWeekYear=Se,Lo.quarter=Lo.quarters=Ne,Lo.month=Z,Lo.daysInMonth=K,Lo.week=Lo.weeks=ct,Lo.isoWeek=Lo.isoWeeks=pt,Lo.weeksInYear=Ie,Lo.isoWeeksInYear=Pe,Lo.date=To,Lo.day=Lo.days=Fe,Lo.weekday=je,Lo.isoWeekday=He,Lo.dayOfYear=mt,Lo.hour=Lo.hours=Io,Lo.minute=Lo.minutes=No,Lo.second=Lo.seconds=zo,Lo.millisecond=Lo.milliseconds=Ao,Lo.utcOffset=Bt,Lo.utc=Ft,Lo.local=jt,Lo.parseZone=Ht,Lo.hasAlignedHourOffset=Yt,Lo.isDST=Wt,Lo.isDSTShifted=Gt,Lo.isLocal=Ut,Lo.isUtcOffset=Vt,Lo.isUtc=qt,Lo.isUTC=qt,Lo.zoneAbbr=qe,Lo.zoneName=Xe,Lo.dates=$("dates accessor is deprecated. Use date instead.",To),Lo.months=$("months accessor is deprecated. Use month instead",Z),Lo.years=$("years accessor is deprecated. Use year instead",go),Lo.zone=$("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Rt);var Bo=Lo,Ro={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Fo={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"},jo="Invalid date",Ho="%d",Yo=/\d{1,2}/,Wo={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"},Go=y.prototype;Go._calendar=Ro,Go.calendar=Je,Go._longDateFormat=Fo,Go.longDateFormat=Qe,Go._invalidDate=jo,Go.invalidDate=$e,Go._ordinal=Ho,Go.ordinal=ti,Go._ordinalParse=Yo,Go.preparse=ei,Go.postformat=ei,Go._relativeTime=Wo,Go.relativeTime=ii,Go.pastFuture=oi,Go.set=ni,Go.months=U,Go._months=lo,Go.monthsShort=V,Go._monthsShort=uo,Go.monthsParse=q,Go.week=dt,Go._week=yo,Go.firstDayOfYear=ut,Go.firstDayOfWeek=lt,Go.weekdays=Ae,Go._weekdays=Co,Go.weekdaysMin=Be,Go._weekdaysMin=So,Go.weekdaysShort=Le,Go._weekdaysShort=Eo,Go.weekdaysParse=Re,Go.isPM=Ge,Go._meridiemParse=Po,Go.meridiem=Ue,x("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===v(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=$("moment.lang is deprecated. Use moment.locale instead.",x),e.langData=$("moment.langData is deprecated. Use moment.localeData instead.",M);var Uo=Math.abs,Vo=_i("ms"),qo=_i("s"),Xo=_i("m"),Zo=_i("h"),Ko=_i("d"),Jo=_i("w"),Qo=_i("M"),$o=_i("y"),tn=ki("milliseconds"),en=ki("seconds"),on=ki("minutes"),nn=ki("hours"),sn=ki("days"),rn=ki("months"),an=ki("years"),hn=Math.round,dn={s:45,m:45,h:22,d:26,M:11},ln=Math.abs,un=Pt.prototype;un.abs=ci,un.add=fi,un.subtract=mi,un.as=bi,un.asMilliseconds=Vo,un.asSeconds=qo,un.asMinutes=Xo,un.asHours=Zo,un.asDays=Ko,un.asWeeks=Jo,un.asMonths=Qo,un.asYears=$o,un.valueOf=wi,un._bubble=vi,un.get=xi,un.milliseconds=tn,un.seconds=en,un.minutes=on,un.hours=nn,un.days=sn,un.weeks=Mi,un.months=rn,un.years=an,un.humanize=Ci,un.toISOString=Ei,un.toString=Ei,un.toJSON=Ei,un.locale=ve,un.localeData=ge,un.toIsoString=$("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ei),un.lang=Do,N("X",0,0,"unix"),N("x",0,0,"valueOf"),R("x",Ki),R("X",Qi),H("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),H("x",function(t,e,i){i._d=new Date(v(t))}),e.version="2.10.3",i(Tt),e.fn=Bo,e.min=Et,e.max=St,e.utc=h,e.unix=Ze,e.months=ai,e.isDate=n,e.locale=x,e.invalid=c,e.duration=Xt,e.isMoment=m,e.weekdays=di,e.parseZone=Ke,e.localeData=M,e.isDuration=It,e.monthsShort=hi,e.weekdaysMin=ui,e.defineLocale=k,e.weekdaysShort=li,e.normalizeUnits=D,e.relativeTimeThreshold=Ti;var cn=e;return cn})}).call(e,i(107)(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 O(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=z(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=A(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=R(a,h),I(i,e),e.offsetDirection=B(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=L(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=B(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 z(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 L(t,e,i){return{x:e/t||0,y:i/t||0}}function B(t,e){return t===e?It:vt(t)>=vt(e)?t>0?Nt:zt:e>0?At:Lt}function R(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 F(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 F(e[1],e[0],Ht)-F(t[1],t[0],Ht)}function H(t,e){return R(e[0],e[1],Ht)/R(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=Jt,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",Jt="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 Qt={touchstart:Ct,touchmove:Et,touchend:St,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel";p(V,C,{handler:function(t){var e=Qt[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==Ot;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=O(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&Bt||r&&i&Rt?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;J.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?Q(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:zt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?At:Lt,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,J,{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:Bt|Rt,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Bt|Rt)?e=t.velocity:i&Bt?e=t.velocityX:i&Rt&&(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,J,{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.distances;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){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=void 0===arguments[2]?!1:arguments[2],o=["color","font","fixed","shadow"];if(B.selectiveNotDeepExtend(o,t,e,i),B.mergeOptions(t,e,"shadow"),void 0!==e.color&&null!==e.color){var n=B.parseColor(e.color);B.fillIfDefined(t.color,n)}else i===!0&&null===e.color&&(t.color=void 0,delete t.color);void 0!==e.fixed&&null!==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))),void 0!==e.font&&a["default"].parseOptions(t.font,e),void 0!==e.scaling&&B.mergeOptions(t.scaling,e.scaling,"label")}}]),t}();e["default"]=R,t.exports=e["default"]},function(t,e,i){function o(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")}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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.strokeWidth>0&&(t.lineWidth=this.options.font.strokeWidth,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){var i=void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.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=void 0===arguments[2]?!1:arguments[2],o=["id","from","hidden","hoverWidth","label","length","line","opacity","physics","selectionWidth","selfReferenceSize","to","title","value","width"];if(f.selectiveDeepExtend(o,t,e,i),f.mergeOptions(t,e,"smooth"),f.mergeOptions(t,e,"shadow"),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=void 0,delete t.dashes),void 0!==e.scaling&&null!==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")):i===!0&&null===e.scaling&&(t.scaling=void 0,delete t.scaling),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var n=e.arrows.toLowerCase();-1!=n.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=n.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=n.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")}else i===!0&&null===e.arrows&&(t.arrows=void 0,delete t.arrows);if(void 0!==e.color&&null!==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 s=!1;void 0!==e.color.color&&(t.color.color=e.color.color,s=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,s=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,s=!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&&s===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=void 0,delete t.color);void 0!==e.font&&a["default"].parseOptions(t.font,e)}}]),t}();e["default"]=m,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;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=void 0,o=void 0,n=void 0;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),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),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=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;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}};this._splitBranch(g.root);for(var 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=void 0,o=void 0,n=void 0,s=void 0,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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;a=d=h=void 0,o=!1;var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;return void 0===h?void 0:h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return void 0;t=d,e=s,i=r,o=!0}},a=i(74),h=o(a),d=function(t){function e(t,i,o,s,a){n(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o,s,a),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}return s(e,t),e}(h["default"]);e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),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){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r=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.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,t=2*this.options.size||this.imageObj.width,e=2*this.options.size*i||this.imageObj.height),this.width=t,this.height=e,this.radius=.5*this.width}}},{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.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=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){function o(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")}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var 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"]}])}); //# sourceMappingURL=vis.map diff --git a/package.json b/package.json index 9cb0e4ec..f433a140 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vis", - "version": "4.0.0-SNAPSHOT", + "version": "4.0.0", "description": "A dynamic, browser-based visualization library.", "homepage": "http://visjs.org/", "repository": {