From d9b79734b74802b50d0e5ac1914021578ed4b637 Mon Sep 17 00:00:00 2001 From: jos Date: Fri, 22 May 2015 14:45:53 +0200 Subject: [PATCH] Updated to vis.js v4.0.0 --- dist/vis.js | 11327 ++++++++++++++++++++++----------------------- dist/vis.map | 2 +- dist/vis.min.js | 42 +- download/vis.zip | Bin 2260657 -> 2726888 bytes 4 files changed, 5659 insertions(+), 5712 deletions(-) diff --git a/dist/vis.js b/dist/vis.js index a7ef523a..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,5276 +164,4673 @@ 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; - }; + }, { + key: '_createClusterEdges', - /** - * 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; + /** + * 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; - for (var i = 0, len = a.length; i < len; i++) { - if (a[i] != b[i]) return false; - } + var childKeys = Object.keys(childNodesObj); + for (var i = 0; i < childKeys.length; i++) { + childNodeId = childKeys[i]; + childNode = childNodesObj[childNodeId]; - return true; - }; + // 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; - /** - * 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; + // 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; + } - if (object === undefined) { - return undefined; - } - if (object === null) { - return null; - } + // 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', - if (!type) { - return object; - } - if (!(typeof type === 'string') && !(type instanceof String)) { - throw new Error('Type must be a string'); - } + /** + * 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]; - //noinspection FallthroughInSwitchStatementJS - switch (type) { - case 'boolean': - case 'Boolean': - return Boolean(object); + if (options.clusterEdgeProperties === undefined) { + options.clusterEdgeProperties = {}; + } + if (options.clusterNodeProperties === undefined) { + options.clusterNodeProperties = {}; + } - case 'number': - case 'Number': - return Number(object.valueOf()); + return options; + } + }, { + key: '_cluster', - case 'string': - case 'String': - return String(object); + /** + * + * @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]; - case 'Date': - if (exports.isNumber(object)) { - return new Date(object); - } - if (object instanceof Date) { - return new Date(object.valueOf()); - } else if (moment.isMoment(object)) { - return new Date(object.valueOf()); + // kill condition: no children so cant cluster + if (Object.keys(childNodesObj).length === 0) { + return; } - 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 + + 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 = []; + // 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 { - for (var prop in object) { - if (object.hasOwnProperty(prop)) array.push(object[prop]); - } + // 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; - return array; - }; + // 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; + } - /** - * 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; + 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 - */ - 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 + * DataSet * - * @param red - * @param green - * @param blue - * @returns {*} - * @constructor + * 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]; + 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 { - for (var field in item) { - if (item.hasOwnProperty(field) && fields.hasOwnProperty(field)) { - filteredItem[fields[field]] = item[field]; - } - } + ids = []; } - return filteredItem; + return ids; }; /** - * Sort the provided array with items - * @param {Object[]} items - * @param {String | function} order A field name or custom sort function. - * @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._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'); + DataView.prototype.getDataSet = function () { + var dataSet = this; + while (dataSet instanceof DataView) { + dataSet = dataSet._data; } + return dataSet || null; }; /** - * 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 + * 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.remove = function (id, senderId) { - var removedIds = [], - i, - len, - removedId; + 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 (Array.isArray(id)) { - for (i = 0, len = id.length; i < len; i++) { - removedId = this._remove(id[i]); - if (removedId != null) { - removedIds.push(removedId); - } + 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); + + if (item) { + if (this._ids[id]) { + updated.push(id); + updatedData.push(params.data[i]); + } else { + this._ids[id] = true; + added.push(id); + } + } else { + if (this._ids[id]) { + delete this._ids[id]; + removed.push(id); + } else {} + } + } + + break; + + case 'remove': + // filter the ids of the removed items + for (i = 0, len = ids.length; i < len; i++) { + id = ids[i]; + if (this._ids[id]) { + delete this._ids[id]; + removed.push(id); + } + } + + break; } - } else { - removedId = this._remove(id); - if (removedId != null) { - removedIds.push(removedId); + + this.length += added.length - removed.length; + + if (added.length) { + this._trigger('add', { items: added }, senderId); + } + if (updated.length) { + this._trigger('update', { items: updated, data: updatedData }, senderId); + } + if (removed.length) { + this._trigger('remove', { items: removed }, senderId); } } + }; - if (removedIds.length) { - this._trigger('remove', { items: removedIds }, senderId); - } + // copy subscription functionality from DataSet + DataView.prototype.on = DataSet.prototype.on; + DataView.prototype.off = DataSet.prototype.off; + DataView.prototype._trigger = DataSet.prototype._trigger; - return removedIds; - }; + // TODO: make these functions deprecated (replaced with `on` and `off` since version 0.5) + DataView.prototype.subscribe = DataView.prototype.on; + DataView.prototype.unsubscribe = DataView.prototype.off; - /** - * Remove an item by its id - * @param {Number | String | Object} id id or item - * @returns {Number | String | null} id - * @private - */ - 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; - } - } - return null; - }; + module.exports = DataView; + + // nothing interesting for me :-( + +/***/ }, +/* 5 */ +/***/ function(module, exports, __webpack_require__) { /** - * Clear the data - * @param {String} [senderId] Optional sender id - * @return {Array} removedIds The ids of all removed items + * A queue + * @param {Object} options + * Available options: + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @constructor */ - DataSet.prototype.clear = function (senderId) { - var ids = Object.keys(this._data); + 'use strict'; - this._data = {}; - this.length = 0; + function Queue(options) { + // options + this.delay = null; + this.max = Infinity; - this._trigger('remove', { items: ids }, senderId); + // properties + this._queue = []; + this._timeout = null; + this._extended = null; - return ids; - }; + this.setOptions(options); + } /** - * 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 + * Update the configuration of the queue + * @param {Object} options + * Available options: + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @param options */ - 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; - } - } + Queue.prototype.setOptions = function (options) { + if (options && typeof options.delay !== 'undefined') { + this.delay = options.delay; + } + if (options && typeof options.max !== 'undefined') { + this.max = options.max; } - return max; + this._flushIfNeeded(); }; /** - * 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 + * Extend an object with queuing functionality. + * The object will be extended with a function flush, and the methods provided + * in options.replace will be replaced with queued ones. + * @param {Object} object + * @param {Object} options + * Available options: + * - replace: Array. + * A list with method names of the methods + * on the object to be replaced with queued ones. + * - delay: number When provided, the queue will be flushed + * automatically after an inactivity of this delay + * in milliseconds. + * Default value is null. + * - max: number When the queue exceeds the given maximum number + * of entries, the queue is flushed automatically. + * Default value of max is Infinity. + * @return {Queue} Returns the created queue */ - DataSet.prototype.min = function (field) { - var data = this._data, - min = null, - minField = null; + Queue.extend = function (object, options) { + var queue = new Queue(options); - 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 (object.flush !== undefined) { + throw new Error('Target object already has a property flush'); + } + object.flush = function () { + queue.flush(); + }; + + var methods = [{ + name: 'flush', + original: undefined + }]; + + if (options && options.replace) { + for (var i = 0; i < options.replace.length; i++) { + var name = options.replace[i]; + methods.push({ + name: name, + original: object[name] + }); + queue.replace(object, name); } } - return min; + queue._extended = { + object: object, + methods: methods + }; + + return queue; }; /** - * 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. + * Destroy the queue. The queue will first flush all queued actions, and in + * case it has extended an object, will restore the original object. */ - 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; + Queue.prototype.destroy = function () { + this.flush(); - 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 (this._extended) { + var object = this._extended.object; + var methods = this._extended.methods; + for (var i = 0; i < methods.length; i++) { + var method = methods[i]; + if (method.original) { + object[method.name] = method.original; + } else { + delete object[method.name]; } } + this._extended = null; } - - 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 + * Replace a method on an object with a queued version + * @param {Object} object Object having the method + * @param {string} method The method name */ - 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; + Queue.prototype.replace = function (object, method) { + var me = this; + var original = object[method]; + if (!original) { + throw new Error('Method ' + method + ' undefined'); } - 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); + object[method] = function () { + // create an Array with the arguments + var args = []; + for (var i = 0; i < arguments.length; i++) { + args[i] = arguments[i]; } - } - this._data[id] = d; - this.length++; - return id; + // add this call to the queue + me.queue({ + args: args, + fn: original, + context: this + }); + }; }; /** - * 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 + * Queue a call + * @param {function | {fn: function, args: Array} | {fn: function, args: Array, context: Object}} entry */ - 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]); - } - } + Queue.prototype.queue = function (entry) { + if (typeof entry === 'function') { + this._queue.push({ fn: entry }); } else { - // no field types specified, no converting needed - for (field in raw) { - if (raw.hasOwnProperty(field)) { - value = raw[field]; - converted[field] = value; - } - } + this._queue.push(entry); } - return converted; + + this._flushIfNeeded(); }; /** - * 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 + * Check whether the queue needs to be flushed * @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'); + Queue.prototype._flushIfNeeded = function () { + // flush when the maximum is exceeded. + if (this._queue.length > this.max) { + this.flush(); } - // 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); - } + // flush after a period of inactivity when a delay is configured + clearTimeout(this._timeout); + if (this.queue.length > 0 && typeof this.delay === 'number') { + var me = this; + this._timeout = setTimeout(function () { + me.flush(); + }, this.delay); } + }; - return id; + /** + * Flush all queued calls + */ + Queue.prototype.flush = function () { + while (this._queue.length > 0) { + var entry = this._queue.shift(); + entry.fn.apply(entry.context || entry.fn, entry.args || []); + } }; - module.exports = DataSet; + module.exports = Queue; /***/ }, -/* 4 */ +/* 6 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; - var util = __webpack_require__(1); + var Emitter = __webpack_require__(69); var DataSet = __webpack_require__(3); + var DataView = __webpack_require__(4); + var util = __webpack_require__(57); + var Point3d = __webpack_require__(10); + var Point2d = __webpack_require__(9); + var Camera = __webpack_require__(7); + var Filter = __webpack_require__(8); + var Slider = __webpack_require__(11); + var StepNumber = __webpack_require__(12); /** - * DataView - * - * a dataview offers a filtered view on a dataset or an other dataview. + * @constructor Graph3d + * Graph3d displays data in 3d. * - * @param {DataSet | DataView} data - * @param {Object} [options] Available options: see method get + * Graph3d is developed in javascript as a Google Visualization Chart. * - * @constructor DataView + * @param {Element} container The DOM element in which the Graph3d will + * be created. Normally a div element. + * @param {DataSet | DataView | Array} [data] + * @param {Object} [options] */ - 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 + function Graph3d(container, data, options) { + if (!(this instanceof Graph3d)) { + throw new SyntaxError('Constructor must be called with the new operator'); + } - var me = this; - this.listener = function () { - me._onEvent.apply(me, arguments); + // create variables and set default values + this.containerElement = container; + this.width = '400px'; + this.height = '400px'; + this.margin = 10; // px + this.defaultXCenter = '55%'; + this.defaultYCenter = '50%'; + + this.xLabel = 'x'; + this.yLabel = 'y'; + this.zLabel = 'z'; + + var passValueFn = function passValueFn(v) { + return v; }; + this.xValueLabel = passValueFn; + this.yValueLabel = passValueFn; + this.zValueLabel = passValueFn; - this.setData(data); + this.filterLabel = 'time'; + this.legendLabel = 'value'; + + this.style = Graph3d.STYLE.DOT; + this.showPerspective = true; + this.showGrid = true; + this.keepAspectRatio = true; + this.showShadow = false; + this.showGrayBottom = false; // TODO: this does not work correctly + this.showTooltip = false; + this.verticalRatio = 0.5; // 0.1 to 1.0, where 1.0 results in a 'cube' + + this.animationInterval = 1000; // milliseconds + this.animationPreload = false; + + this.camera = new Camera(); + this.eye = new Point3d(0, 0, -1); // TODO: set eye.z about 3/4 of the width of the window? + + this.dataTable = null; // The original data table + this.dataPoints = null; // The table with point objects + + // the column indexes + this.colX = undefined; + this.colY = undefined; + this.colZ = undefined; + this.colValue = undefined; + this.colFilter = undefined; + + this.xMin = 0; + this.xStep = undefined; // auto by default + this.xMax = 1; + this.yMin = 0; + this.yStep = undefined; // auto by default + this.yMax = 1; + this.zMin = 0; + this.zStep = undefined; // auto by default + this.zMax = 1; + this.valueMin = 0; + this.valueMax = 1; + this.xBarWidth = 1; + this.yBarWidth = 1; + // TODO: customize axis range + + // constants + this.colorAxis = '#4D4D4D'; + this.colorGrid = '#D3D3D3'; + this.colorDot = '#7DC1FF'; + this.colorDotBorder = '#3267D2'; + + // create a frame and canvas + this.create(); + + // apply options (also when undefined) + this.setOptions(options); + + // apply data + if (data) { + this.setData(data); + } } - // TODO: implement a function .config() to dynamically update things like configured filter - // and trigger changes accordingly + // Extend Graph3d with an Emitter mixin + Emitter(Graph3d.prototype); /** - * Set a data source for the view - * @param {DataSet | DataView} data + * Calculate the scaling values, dependent on the range in x, y, and z direction */ - 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); - } + Graph3d.prototype._setScale = function () { + this.scale = new Point3d(1 / (this.xMax - this.xMin), 1 / (this.yMax - this.yMin), 1 / (this.zMax - this.zMin)); - // trigger a remove of all items in memory - ids = []; - for (var id in this._ids) { - if (this._ids.hasOwnProperty(id)) { - ids.push(id); - } + // keep aspect ration between x and y scale if desired + if (this.keepAspectRatio) { + if (this.scale.x < this.scale.y) { + //noinspection JSSuspiciousNameCombination + this.scale.y = this.scale.x; + } else { + //noinspection JSSuspiciousNameCombination + this.scale.x = this.scale.y; } - 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'; + // scale the vertical axis + this.scale.z *= this.verticalRatio; + // TODO: can this be automated? verticalRatio? - // 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 }); + // determine scale for (optional) value + this.scale.value = 1 / (this.valueMax - this.valueMin); - // subscribe to new dataset - if (this._data.on) { - this._data.on('*', this.listener); - } - } + // position the camera arm + var xCenter = (this.xMax + this.xMin) / 2 * this.scale.x; + var yCenter = (this.yMax + this.yMin) / 2 * this.scale.y; + var zCenter = (this.zMax + this.zMin) / 2 * this.scale.z; + this.camera.setArmLocation(xCenter, yCenter, zCenter); }; /** - * Refresh the DataView. Useful when the DataView has a filter function - * containing a variable parameter. + * Convert a 3D location to a 2D location on screen + * http://en.wikipedia.org/wiki/3D_projection + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @return {Point2d} point2d A 2D point with parameters x, y */ - DataView.prototype.refresh = function () { - var id; - var ids = this._data.getIds({ filter: this._options && this._options.filter }); - var newIds = {}; - var added = []; - var removed = []; + Graph3d.prototype._convert3Dto2D = function (point3d) { + var translation = this._convertPointToTranslation(point3d); + return this._convertTranslationToScreen(translation); + }; - // 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++; - } - } + /** + * Convert a 3D location its translation seen from the camera + * http://en.wikipedia.org/wiki/3D_projection + * @param {Point3d} point3d A 3D point with parameters x, y, z + * @return {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera + */ + Graph3d.prototype._convertPointToTranslation = function (point3d) { + var ax = point3d.x * this.scale.x, + ay = point3d.y * this.scale.y, + az = point3d.z * this.scale.z, + cx = this.camera.getCameraLocation().x, + cy = this.camera.getCameraLocation().y, + cz = this.camera.getCameraLocation().z, - // 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--; - } - } - } + // calculate angles + sinTx = Math.sin(this.camera.getCameraRotation().x), + cosTx = Math.cos(this.camera.getCameraRotation().x), + sinTy = Math.sin(this.camera.getCameraRotation().y), + cosTy = Math.cos(this.camera.getCameraRotation().y), + sinTz = Math.sin(this.camera.getCameraRotation().z), + cosTz = Math.cos(this.camera.getCameraRotation().z), - // trigger events - if (added.length) { - this._trigger('add', { items: added }); - } - if (removed.length) { - this._trigger('remove', { items: removed }); - } + // calculate translation + dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz), + dy = sinTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) + cosTx * (cosTz * (ay - cy) - sinTz * (ax - cx)), + dz = cosTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) - sinTx * (cosTz * (ay - cy) - sinTz * (ax - cx)); + + return new Point3d(dx, dy, dz); }; /** - * 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 + * Convert a translation point to a point on the screen + * @param {Point3d} translation A 3D point with parameters x, y, z This is + * the translation of the point, seen from the + * camera + * @return {Point2d} point2d A 2D point with parameters x, y */ - DataView.prototype.get = function (args) { - var me = this; + Graph3d.prototype._convertTranslationToScreen = function (translation) { + var ex = this.eye.x, + ey = this.eye.y, + ez = this.eye.z, + dx = translation.x, + dy = translation.y, + dz = translation.z; - // 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]; + // calculate position on screen from translation + var bx; + var by; + if (this.showPerspective) { + bx = (dx - ex) * (ez / dz); + by = (dy - ey) * (ez / dz); } else { - // get([, options] [, data]) - options = arguments[0]; - data = arguments[1]; + bx = dx * -(ez / this.camera.getArmLength()); + by = dy * -(ez / this.camera.getArmLength()); } - // extend the options with the default options and provided options - var viewOptions = util.extend({}, this._options, options); + // shift and scale the point to the center of the screen + // use the width of the graph to scale both horizontally and vertically. + return new Point2d(this.xcenter + bx * this.frame.canvas.clientWidth, this.ycenter - by * this.frame.canvas.clientWidth); + }; - // 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); - }; - } + /** + * Set the background styling for the graph + * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + */ + Graph3d.prototype._setBackgroundColor = function (backgroundColor) { + var fill = 'white'; + var stroke = 'gray'; + var strokeWidth = 1; - // build up the call to the linked data set - var getArguments = []; - if (ids != undefined) { - getArguments.push(ids); + if (typeof backgroundColor === 'string') { + fill = backgroundColor; + stroke = 'none'; + strokeWidth = 0; + } else if (typeof backgroundColor === 'object') { + if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; + if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; + if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; + } else if (backgroundColor === undefined) {} else { + throw 'Unsupported type of backgroundColor'; } - getArguments.push(viewOptions); - getArguments.push(data); - return this._data && this._data.get.apply(this._data, getArguments); + this.frame.style.backgroundColor = fill; + this.frame.style.borderColor = stroke; + this.frame.style.borderWidth = strokeWidth + 'px'; + this.frame.style.borderStyle = 'solid'; + }; + + /// enumerate the available styles + Graph3d.STYLE = { + BAR: 0, + BARCOLOR: 1, + BARSIZE: 2, + DOT: 3, + DOTLINE: 4, + DOTCOLOR: 5, + DOTSIZE: 6, + GRID: 7, + LINE: 8, + SURFACE: 9 }; /** - * 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 + * Retrieve the style index from given styleName + * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' + * @return {Number} styleNumber Enumeration value representing the style, or -1 + * when not found */ - DataView.prototype.getIds = function (options) { - var ids; + Graph3d.prototype._getStyleNumber = function (styleName) { + switch (styleName) { + case 'dot': + return Graph3d.STYLE.DOT; + case 'dot-line': + return Graph3d.STYLE.DOTLINE; + case 'dot-color': + return Graph3d.STYLE.DOTCOLOR; + case 'dot-size': + return Graph3d.STYLE.DOTSIZE; + case 'line': + return Graph3d.STYLE.LINE; + case 'grid': + return Graph3d.STYLE.GRID; + case 'surface': + return Graph3d.STYLE.SURFACE; + case 'bar': + return Graph3d.STYLE.BAR; + case 'bar-color': + return Graph3d.STYLE.BARCOLOR; + case 'bar-size': + return Graph3d.STYLE.BARSIZE; + } - if (this._data) { - var defaultFilter = this._options.filter; - var filter; + return -1; + }; - if (options && options.filter) { - if (defaultFilter) { - filter = function (item) { - return defaultFilter(item) && options.filter(item); - }; - } else { - filter = options.filter; - } - } else { - filter = defaultFilter; + /** + * Determine the indexes of the data columns, based on the given style and data + * @param {DataSet} data + * @param {Number} style + */ + Graph3d.prototype._determineColumnIndexes = function (data, style) { + if (this.style === Graph3d.STYLE.DOT || this.style === Graph3d.STYLE.DOTLINE || this.style === Graph3d.STYLE.LINE || this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE || this.style === Graph3d.STYLE.BAR) { + // 3 columns expected, and optionally a 4th with filter values + this.colX = 0; + this.colY = 1; + this.colZ = 2; + this.colValue = undefined; + + if (data.getNumberOfColumns() > 3) { + this.colFilter = 3; } + } else if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { + // 4 columns expected, and optionally a 5th with filter values + this.colX = 0; + this.colY = 1; + this.colZ = 2; + this.colValue = 3; - ids = this._data.getIds({ - filter: filter, - order: options && options.order - }); + if (data.getNumberOfColumns() > 4) { + this.colFilter = 4; + } } else { - ids = []; + throw 'Unknown style "' + this.style + '"'; } + }; - return ids; + Graph3d.prototype.getNumberOfRows = function (data) { + return data.length; }; - /** - * 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; + Graph3d.prototype.getNumberOfColumns = function (data) { + var counter = 0; + for (var column in data[0]) { + if (data[0].hasOwnProperty(column)) { + counter++; + } } - return dataSet || null; + return counter; + }; + + Graph3d.prototype.getDistinctValues = function (data, column) { + var distinctValues = []; + for (var i = 0; i < data.length; i++) { + if (distinctValues.indexOf(data[i][column]) == -1) { + distinctValues.push(data[i][column]); + } + } + return distinctValues; + }; + + Graph3d.prototype.getColumnRange = function (data, column) { + var minMax = { min: data[0][column], max: data[0][column] }; + for (var i = 0; i < data.length; i++) { + if (minMax.min > data[i][column]) { + minMax.min = data[i][column]; + } + if (minMax.max < data[i][column]) { + minMax.max = data[i][column]; + } + } + return minMax; }; /** - * 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 + * Initialize the data from the data table. Calculate minimum and maximum values + * and column index values + * @param {Array | DataSet | DataView} rawData The data containing the items for the Graph. + * @param {Number} style Style Number */ - 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 = []; + Graph3d.prototype._dataInitialize = function (rawData, style) { + var me = this; - 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); - } - } + // unsubscribe from the dataTable + if (this.dataSet) { + this.dataSet.off('*', this._onChange); + } - break; + if (rawData === undefined) return; - 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 (Array.isArray(rawData)) { + rawData = new DataSet(rawData); + } - if (item) { - if (this._ids[id]) { - updated.push(id); - updatedData.push(params.data[i]); - } else { - this._ids[id] = true; - added.push(id); - } - } else { - if (this._ids[id]) { - delete this._ids[id]; - removed.push(id); - } else {} - } - } + var data; + if (rawData instanceof DataSet || rawData instanceof DataView) { + data = rawData.get(); + } else { + throw new Error('Array, DataSet, or DataView expected'); + } - break; + if (data.length == 0) return; - case 'remove': - // filter the ids of the removed items - for (i = 0, len = ids.length; i < len; i++) { - id = ids[i]; - if (this._ids[id]) { - delete this._ids[id]; - removed.push(id); - } - } + this.dataSet = rawData; + this.dataTable = data; - break; - } + // subscribe to changes in the dataset + this._onChange = function () { + me.setData(me.dataSet); + }; + this.dataSet.on('*', this._onChange); - this.length += added.length - removed.length; + // _determineColumnIndexes + // getNumberOfRows (points) + // getNumberOfColumns (x,y,z,v,t,t1,t2...) + // getDistinctValues (unique values?) + // getColumnRange - if (added.length) { - this._trigger('add', { items: added }, senderId); + // determine the location of x,y,z,value,filter columns + this.colX = 'x'; + this.colY = 'y'; + this.colZ = 'z'; + this.colValue = 'style'; + this.colFilter = 'filter'; + + // check if a filter column is provided + if (data[0].hasOwnProperty('filter')) { + if (this.dataFilter === undefined) { + this.dataFilter = new Filter(rawData, this.colFilter, this); + this.dataFilter.setOnLoadCallback(function () { + me.redraw(); + }); } - if (updated.length) { - this._trigger('update', { items: updated, data: updatedData }, senderId); + } + + var withBars = this.style == Graph3d.STYLE.BAR || this.style == Graph3d.STYLE.BARCOLOR || this.style == Graph3d.STYLE.BARSIZE; + + // determine barWidth from data + if (withBars) { + if (this.defaultXBarWidth !== undefined) { + this.xBarWidth = this.defaultXBarWidth; + } else { + var dataX = this.getDistinctValues(data, this.colX); + this.xBarWidth = dataX[1] - dataX[0] || 1; } - if (removed.length) { - this._trigger('remove', { items: removed }, senderId); + + if (this.defaultYBarWidth !== undefined) { + this.yBarWidth = this.defaultYBarWidth; + } else { + var dataY = this.getDistinctValues(data, this.colY); + this.yBarWidth = dataY[1] - dataY[0] || 1; } } - }; - // copy subscription functionality from DataSet - DataView.prototype.on = DataSet.prototype.on; - DataView.prototype.off = DataSet.prototype.off; - DataView.prototype._trigger = DataSet.prototype._trigger; + // calculate minimums and maximums + var xRange = this.getColumnRange(data, this.colX); + if (withBars) { + xRange.min -= this.xBarWidth / 2; + xRange.max += this.xBarWidth / 2; + } + this.xMin = this.defaultXMin !== undefined ? this.defaultXMin : xRange.min; + this.xMax = this.defaultXMax !== undefined ? this.defaultXMax : xRange.max; + if (this.xMax <= this.xMin) this.xMax = this.xMin + 1; + this.xStep = this.defaultXStep !== undefined ? this.defaultXStep : (this.xMax - this.xMin) / 5; - // TODO: make these functions deprecated (replaced with `on` and `off` since version 0.5) - DataView.prototype.subscribe = DataView.prototype.on; - DataView.prototype.unsubscribe = DataView.prototype.off; + var yRange = this.getColumnRange(data, this.colY); + if (withBars) { + yRange.min -= this.yBarWidth / 2; + yRange.max += this.yBarWidth / 2; + } + this.yMin = this.defaultYMin !== undefined ? this.defaultYMin : yRange.min; + this.yMax = this.defaultYMax !== undefined ? this.defaultYMax : yRange.max; + if (this.yMax <= this.yMin) this.yMax = this.yMin + 1; + this.yStep = this.defaultYStep !== undefined ? this.defaultYStep : (this.yMax - this.yMin) / 5; - module.exports = DataView; + var zRange = this.getColumnRange(data, this.colZ); + this.zMin = this.defaultZMin !== undefined ? this.defaultZMin : zRange.min; + this.zMax = this.defaultZMax !== undefined ? this.defaultZMax : zRange.max; + if (this.zMax <= this.zMin) this.zMax = this.zMin + 1; + this.zStep = this.defaultZStep !== undefined ? this.defaultZStep : (this.zMax - this.zMin) / 5; - // nothing interesting for me :-( + if (this.colValue !== undefined) { + var valueRange = this.getColumnRange(data, this.colValue); + this.valueMin = this.defaultValueMin !== undefined ? this.defaultValueMin : valueRange.min; + this.valueMax = this.defaultValueMax !== undefined ? this.defaultValueMax : valueRange.max; + if (this.valueMax <= this.valueMin) this.valueMax = this.valueMin + 1; + } -/***/ }, -/* 5 */ -/***/ function(module, exports, __webpack_require__) { + // set the scale dependent on the ranges. + this._setScale(); + }; /** - * A queue - * @param {Object} options - * Available options: - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @constructor + * Filter the data based on the current filter + * @param {Array} data + * @return {Array} dataPoints Array with point objects which can be drawn on screen */ - 'use strict'; + Graph3d.prototype._getDataPoints = function (data) { + // TODO: store the created matrix dataPoints in the filters instead of reloading each time + var x, y, i, z, obj, point; - function Queue(options) { - // options - this.delay = null; - this.max = Infinity; + var dataPoints = []; - // properties - this._queue = []; - this._timeout = null; - this._extended = null; + if (this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE) { + // copy all values from the google data table to a matrix + // the provided values are supposed to form a grid of (x,y) positions - this.setOptions(options); - } + // create two lists with all present x and y values + var dataX = []; + var dataY = []; + for (i = 0; i < this.getNumberOfRows(data); i++) { + x = data[i][this.colX] || 0; + y = data[i][this.colY] || 0; - /** - * Update the configuration of the queue - * @param {Object} options - * Available options: - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @param options - */ - Queue.prototype.setOptions = function (options) { - if (options && typeof options.delay !== 'undefined') { - this.delay = options.delay; - } - if (options && typeof options.max !== 'undefined') { - this.max = options.max; + if (dataX.indexOf(x) === -1) { + dataX.push(x); + } + if (dataY.indexOf(y) === -1) { + dataY.push(y); + } + } + + var sortNumber = function sortNumber(a, b) { + return a - b; + }; + dataX.sort(sortNumber); + dataY.sort(sortNumber); + + // create a grid, a 2d matrix, with all values. + var dataMatrix = []; // temporary data matrix + for (i = 0; i < data.length; i++) { + x = data[i][this.colX] || 0; + y = data[i][this.colY] || 0; + z = data[i][this.colZ] || 0; + + var xIndex = dataX.indexOf(x); // TODO: implement Array().indexOf() for Internet Explorer + var yIndex = dataY.indexOf(y); + + if (dataMatrix[xIndex] === undefined) { + dataMatrix[xIndex] = []; + } + + var point3d = new Point3d(); + point3d.x = x; + point3d.y = y; + point3d.z = z; + + obj = {}; + obj.point = point3d; + obj.trans = undefined; + obj.screen = undefined; + obj.bottom = new Point3d(x, y, this.zMin); + + dataMatrix[xIndex][yIndex] = obj; + + dataPoints.push(obj); + } + + // fill in the pointers to the neighbors. + for (x = 0; x < dataMatrix.length; x++) { + for (y = 0; y < dataMatrix[x].length; y++) { + if (dataMatrix[x][y]) { + dataMatrix[x][y].pointRight = x < dataMatrix.length - 1 ? dataMatrix[x + 1][y] : undefined; + dataMatrix[x][y].pointTop = y < dataMatrix[x].length - 1 ? dataMatrix[x][y + 1] : undefined; + dataMatrix[x][y].pointCross = x < dataMatrix.length - 1 && y < dataMatrix[x].length - 1 ? dataMatrix[x + 1][y + 1] : undefined; + } + } + } + } else { + // 'dot', 'dot-line', etc. + // copy all values from the google data table to a list with Point3d objects + for (i = 0; i < data.length; i++) { + point = new Point3d(); + point.x = data[i][this.colX] || 0; + point.y = data[i][this.colY] || 0; + point.z = data[i][this.colZ] || 0; + + if (this.colValue !== undefined) { + point.value = data[i][this.colValue] || 0; + } + + obj = {}; + obj.point = point; + obj.bottom = new Point3d(point.x, point.y, this.zMin); + obj.trans = undefined; + obj.screen = undefined; + + dataPoints.push(obj); + } } - this._flushIfNeeded(); + return dataPoints; }; /** - * Extend an object with queuing functionality. - * The object will be extended with a function flush, and the methods provided - * in options.replace will be replaced with queued ones. - * @param {Object} object - * @param {Object} options - * Available options: - * - replace: Array. - * A list with method names of the methods - * on the object to be replaced with queued ones. - * - delay: number When provided, the queue will be flushed - * automatically after an inactivity of this delay - * in milliseconds. - * Default value is null. - * - max: number When the queue exceeds the given maximum number - * of entries, the queue is flushed automatically. - * Default value of max is Infinity. - * @return {Queue} Returns the created queue + * Create the main frame for the Graph3d. + * This function is executed once when a Graph3d object is created. The frame + * contains a canvas, and this canvas contains all objects like the axis and + * nodes. */ - Queue.extend = function (object, options) { - var queue = new Queue(options); - - if (object.flush !== undefined) { - throw new Error('Target object already has a property flush'); + Graph3d.prototype.create = function () { + // remove all elements from the container element. + while (this.containerElement.hasChildNodes()) { + this.containerElement.removeChild(this.containerElement.firstChild); } - object.flush = function () { - queue.flush(); - }; - var methods = [{ - name: 'flush', - original: undefined - }]; + this.frame = document.createElement('div'); + this.frame.style.position = 'relative'; + this.frame.style.overflow = 'hidden'; - if (options && options.replace) { - for (var i = 0; i < options.replace.length; i++) { - var name = options.replace[i]; - methods.push({ - name: name, - original: object[name] - }); - queue.replace(object, name); - } + // create the graph canvas (HTML canvas element) + this.frame.canvas = document.createElement('canvas'); + this.frame.canvas.style.position = 'relative'; + this.frame.appendChild(this.frame.canvas); + //if (!this.frame.canvas.getContext) { + { + var noCanvas = document.createElement('DIV'); + noCanvas.style.color = 'red'; + noCanvas.style.fontWeight = 'bold'; + noCanvas.style.padding = '10px'; + noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; + this.frame.canvas.appendChild(noCanvas); } - queue._extended = { - object: object, - methods: methods + this.frame.filter = document.createElement('div'); + this.frame.filter.style.position = 'absolute'; + this.frame.filter.style.bottom = '0px'; + this.frame.filter.style.left = '0px'; + this.frame.filter.style.width = '100%'; + this.frame.appendChild(this.frame.filter); + + // add event listeners to handle moving and zooming the contents + var me = this; + var onmousedown = function onmousedown(event) { + me._onMouseDown(event); + }; + var ontouchstart = function ontouchstart(event) { + me._onTouchStart(event); }; + var onmousewheel = function onmousewheel(event) { + me._onWheel(event); + }; + var ontooltip = function ontooltip(event) { + me._onTooltip(event); + }; + // TODO: these events are never cleaned up... can give a 'memory leakage' - return queue; + util.addEventListener(this.frame.canvas, 'keydown', onkeydown); + util.addEventListener(this.frame.canvas, 'mousedown', onmousedown); + util.addEventListener(this.frame.canvas, 'touchstart', ontouchstart); + util.addEventListener(this.frame.canvas, 'mousewheel', onmousewheel); + util.addEventListener(this.frame.canvas, 'mousemove', ontooltip); + + // add the new graph to the container element + this.containerElement.appendChild(this.frame); }; /** - * Destroy the queue. The queue will first flush all queued actions, and in - * case it has extended an object, will restore the original object. + * Set a new size for the graph + * @param {string} width Width in pixels or percentage (for example '800px' + * or '50%') + * @param {string} height Height in pixels or percentage (for example '400px' + * or '30%') */ - Queue.prototype.destroy = function () { - this.flush(); + Graph3d.prototype.setSize = function (width, height) { + this.frame.style.width = width; + this.frame.style.height = height; - if (this._extended) { - var object = this._extended.object; - var methods = this._extended.methods; - for (var i = 0; i < methods.length; i++) { - var method = methods[i]; - if (method.original) { - object[method.name] = method.original; - } else { - delete object[method.name]; - } - } - this._extended = null; - } + this._resizeCanvas(); }; /** - * Replace a method on an object with a queued version - * @param {Object} object Object having the method - * @param {string} method The method name + * Resize the canvas to the current size of the frame */ - Queue.prototype.replace = function (object, method) { - var me = this; - var original = object[method]; - if (!original) { - throw new Error('Method ' + method + ' undefined'); - } + Graph3d.prototype._resizeCanvas = function () { + this.frame.canvas.style.width = '100%'; + this.frame.canvas.style.height = '100%'; - object[method] = function () { - // create an Array with the arguments - var args = []; - for (var i = 0; i < arguments.length; i++) { - args[i] = arguments[i]; - } + this.frame.canvas.width = this.frame.canvas.clientWidth; + this.frame.canvas.height = this.frame.canvas.clientHeight; - // add this call to the queue - me.queue({ - args: args, - fn: original, - context: this - }); - }; + // adjust with for margin + this.frame.filter.style.width = this.frame.canvas.clientWidth - 2 * 10 + 'px'; }; /** - * Queue a call - * @param {function | {fn: function, args: Array} | {fn: function, args: Array, context: Object}} entry + * Start animation */ - Queue.prototype.queue = function (entry) { - if (typeof entry === 'function') { - this._queue.push({ fn: entry }); - } else { - this._queue.push(entry); - } + Graph3d.prototype.animationStart = function () { + if (!this.frame.filter || !this.frame.filter.slider) throw 'No animation available'; - this._flushIfNeeded(); + this.frame.filter.slider.play(); }; /** - * Check whether the queue needs to be flushed - * @private + * Stop animation */ - Queue.prototype._flushIfNeeded = function () { - // flush when the maximum is exceeded. - if (this._queue.length > this.max) { - this.flush(); + Graph3d.prototype.animationStop = function () { + if (!this.frame.filter || !this.frame.filter.slider) return; + + this.frame.filter.slider.stop(); + }; + + /** + * Resize the center position based on the current values in this.defaultXCenter + * and this.defaultYCenter (which are strings with a percentage or a value + * in pixels). The center positions are the variables this.xCenter + * and this.yCenter + */ + Graph3d.prototype._resizeCenter = function () { + // calculate the horizontal center position + if (this.defaultXCenter.charAt(this.defaultXCenter.length - 1) === '%') { + this.xcenter = parseFloat(this.defaultXCenter) / 100 * this.frame.canvas.clientWidth; + } else { + this.xcenter = parseFloat(this.defaultXCenter); // supposed to be in px } - // flush after a period of inactivity when a delay is configured - clearTimeout(this._timeout); - if (this.queue.length > 0 && typeof this.delay === 'number') { - var me = this; - this._timeout = setTimeout(function () { - me.flush(); - }, this.delay); + // calculate the vertical center position + if (this.defaultYCenter.charAt(this.defaultYCenter.length - 1) === '%') { + this.ycenter = parseFloat(this.defaultYCenter) / 100 * (this.frame.canvas.clientHeight - this.frame.filter.clientHeight); + } else { + this.ycenter = parseFloat(this.defaultYCenter); // supposed to be in px } }; /** - * Flush all queued calls + * Set the rotation and distance of the camera + * @param {Object} pos An object with the camera position. The object + * contains three parameters: + * - horizontal {Number} + * The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * - vertical {Number} + * The vertical rotation, between 0 and 0.5*PI + * if vertical=0.5*PI, the graph is shown from the + * top. Optional, can be left undefined. + * - distance {Number} + * The (normalized) distance of the camera to the + * center of the graph, a value between 0.71 and 5.0. + * Optional, can be left undefined. */ - Queue.prototype.flush = function () { - while (this._queue.length > 0) { - var entry = this._queue.shift(); - entry.fn.apply(entry.context || entry.fn, entry.args || []); + Graph3d.prototype.setCameraPosition = function (pos) { + if (pos === undefined) { + return; } - }; - module.exports = Queue; + if (pos.horizontal !== undefined && pos.vertical !== undefined) { + this.camera.setArmRotation(pos.horizontal, pos.vertical); + } -/***/ }, -/* 6 */ -/***/ function(module, exports, __webpack_require__) { + if (pos.distance !== undefined) { + this.camera.setArmLength(pos.distance); + } - 'use strict'; + this.redraw(); + }; - var Emitter = __webpack_require__(69); - var DataSet = __webpack_require__(3); - var DataView = __webpack_require__(4); - var util = __webpack_require__(1); - var Point3d = __webpack_require__(10); - var Point2d = __webpack_require__(9); - var Camera = __webpack_require__(7); - var Filter = __webpack_require__(8); - var Slider = __webpack_require__(11); - var StepNumber = __webpack_require__(12); + /** + * Retrieve the current camera rotation + * @return {object} An object with parameters horizontal, vertical, and + * distance + */ + Graph3d.prototype.getCameraPosition = function () { + var pos = this.camera.getArmRotation(); + pos.distance = this.camera.getArmLength(); + return pos; + }; /** - * @constructor Graph3d - * Graph3d displays data in 3d. - * - * Graph3d is developed in javascript as a Google Visualization Chart. - * - * @param {Element} container The DOM element in which the Graph3d will - * be created. Normally a div element. - * @param {DataSet | DataView | Array} [data] - * @param {Object} [options] + * Load data into the 3D Graph */ - function Graph3d(container, data, options) { - if (!(this instanceof Graph3d)) { - throw new SyntaxError('Constructor must be called with the new operator'); - } + Graph3d.prototype._readData = function (data) { + // read the data + this._dataInitialize(data, this.style); - // create variables and set default values - this.containerElement = container; - this.width = '400px'; - this.height = '400px'; - this.margin = 10; // px - this.defaultXCenter = '55%'; - this.defaultYCenter = '50%'; + if (this.dataFilter) { + // apply filtering + this.dataPoints = this.dataFilter._getDataPoints(); + } else { + // no filtering. load all data + this.dataPoints = this._getDataPoints(this.dataTable); + } - this.xLabel = 'x'; - this.yLabel = 'y'; - this.zLabel = 'z'; + // draw the filter + this._redrawFilter(); + }; - var passValueFn = function passValueFn(v) { - return v; - }; - this.xValueLabel = passValueFn; - this.yValueLabel = passValueFn; - this.zValueLabel = passValueFn; + /** + * Replace the dataset of the Graph3d + * @param {Array | DataSet | DataView} data + */ + Graph3d.prototype.setData = function (data) { + this._readData(data); + this.redraw(); - this.filterLabel = 'time'; - this.legendLabel = 'value'; + // start animation when option is true + if (this.animationAutoStart && this.dataFilter) { + this.animationStart(); + } + }; - this.style = Graph3d.STYLE.DOT; - this.showPerspective = true; - this.showGrid = true; - this.keepAspectRatio = true; - this.showShadow = false; - this.showGrayBottom = false; // TODO: this does not work correctly - this.showTooltip = false; - this.verticalRatio = 0.5; // 0.1 to 1.0, where 1.0 results in a 'cube' + /** + * Update the options. Options will be merged with current options + * @param {Object} options + */ + Graph3d.prototype.setOptions = function (options) { + var cameraPosition = undefined; - this.animationInterval = 1000; // milliseconds - this.animationPreload = false; + this.animationStop(); - this.camera = new Camera(); - this.eye = new Point3d(0, 0, -1); // TODO: set eye.z about 3/4 of the width of the window? + if (options !== undefined) { + // retrieve parameter values + if (options.width !== undefined) this.width = options.width; + if (options.height !== undefined) this.height = options.height; - this.dataTable = null; // The original data table - this.dataPoints = null; // The table with point objects + if (options.xCenter !== undefined) this.defaultXCenter = options.xCenter; + if (options.yCenter !== undefined) this.defaultYCenter = options.yCenter; - // the column indexes - this.colX = undefined; - this.colY = undefined; - this.colZ = undefined; - this.colValue = undefined; - this.colFilter = undefined; + if (options.filterLabel !== undefined) this.filterLabel = options.filterLabel; + if (options.legendLabel !== undefined) this.legendLabel = options.legendLabel; + if (options.xLabel !== undefined) this.xLabel = options.xLabel; + if (options.yLabel !== undefined) this.yLabel = options.yLabel; + if (options.zLabel !== undefined) this.zLabel = options.zLabel; - this.xMin = 0; - this.xStep = undefined; // auto by default - this.xMax = 1; - this.yMin = 0; - this.yStep = undefined; // auto by default - this.yMax = 1; - this.zMin = 0; - this.zStep = undefined; // auto by default - this.zMax = 1; - this.valueMin = 0; - this.valueMax = 1; - this.xBarWidth = 1; - this.yBarWidth = 1; - // TODO: customize axis range + if (options.xValueLabel !== undefined) this.xValueLabel = options.xValueLabel; + if (options.yValueLabel !== undefined) this.yValueLabel = options.yValueLabel; + if (options.zValueLabel !== undefined) this.zValueLabel = options.zValueLabel; - // constants - this.colorAxis = '#4D4D4D'; - this.colorGrid = '#D3D3D3'; - this.colorDot = '#7DC1FF'; - this.colorDotBorder = '#3267D2'; + if (options.style !== undefined) { + var styleNumber = this._getStyleNumber(options.style); + if (styleNumber !== -1) { + this.style = styleNumber; + } + } + if (options.showGrid !== undefined) this.showGrid = options.showGrid; + if (options.showPerspective !== undefined) this.showPerspective = options.showPerspective; + if (options.showShadow !== undefined) this.showShadow = options.showShadow; + if (options.tooltip !== undefined) this.showTooltip = options.tooltip; + if (options.showAnimationControls !== undefined) this.showAnimationControls = options.showAnimationControls; + if (options.keepAspectRatio !== undefined) this.keepAspectRatio = options.keepAspectRatio; + if (options.verticalRatio !== undefined) this.verticalRatio = options.verticalRatio; - // create a frame and canvas - this.create(); + if (options.animationInterval !== undefined) this.animationInterval = options.animationInterval; + if (options.animationPreload !== undefined) this.animationPreload = options.animationPreload; + if (options.animationAutoStart !== undefined) this.animationAutoStart = options.animationAutoStart; - // apply options (also when undefined) - this.setOptions(options); + if (options.xBarWidth !== undefined) this.defaultXBarWidth = options.xBarWidth; + if (options.yBarWidth !== undefined) this.defaultYBarWidth = options.yBarWidth; - // apply data - if (data) { - this.setData(data); - } - } - - // Extend Graph3d with an Emitter mixin - Emitter(Graph3d.prototype); + if (options.xMin !== undefined) this.defaultXMin = options.xMin; + if (options.xStep !== undefined) this.defaultXStep = options.xStep; + if (options.xMax !== undefined) this.defaultXMax = options.xMax; + if (options.yMin !== undefined) this.defaultYMin = options.yMin; + if (options.yStep !== undefined) this.defaultYStep = options.yStep; + if (options.yMax !== undefined) this.defaultYMax = options.yMax; + if (options.zMin !== undefined) this.defaultZMin = options.zMin; + if (options.zStep !== undefined) this.defaultZStep = options.zStep; + if (options.zMax !== undefined) this.defaultZMax = options.zMax; + if (options.valueMin !== undefined) this.defaultValueMin = options.valueMin; + if (options.valueMax !== undefined) this.defaultValueMax = options.valueMax; - /** - * Calculate the scaling values, dependent on the range in x, y, and z direction - */ - Graph3d.prototype._setScale = function () { - this.scale = new Point3d(1 / (this.xMax - this.xMin), 1 / (this.yMax - this.yMin), 1 / (this.zMax - this.zMin)); + if (options.cameraPosition !== undefined) cameraPosition = options.cameraPosition; - // keep aspect ration between x and y scale if desired - if (this.keepAspectRatio) { - if (this.scale.x < this.scale.y) { - //noinspection JSSuspiciousNameCombination - this.scale.y = this.scale.x; + if (cameraPosition !== undefined) { + this.camera.setArmRotation(cameraPosition.horizontal, cameraPosition.vertical); + this.camera.setArmLength(cameraPosition.distance); } else { - //noinspection JSSuspiciousNameCombination - this.scale.x = this.scale.y; + this.camera.setArmRotation(1, 0.5); + this.camera.setArmLength(1.7); } } - // scale the vertical axis - this.scale.z *= this.verticalRatio; - // TODO: can this be automated? verticalRatio? + this._setBackgroundColor(options && options.backgroundColor); - // determine scale for (optional) value - this.scale.value = 1 / (this.valueMax - this.valueMin); + this.setSize(this.width, this.height); - // position the camera arm - var xCenter = (this.xMax + this.xMin) / 2 * this.scale.x; - var yCenter = (this.yMax + this.yMin) / 2 * this.scale.y; - var zCenter = (this.zMax + this.zMin) / 2 * this.scale.z; - this.camera.setArmLocation(xCenter, yCenter, zCenter); - }; + // re-load the data + if (this.dataTable) { + this.setData(this.dataTable); + } - /** - * Convert a 3D location to a 2D location on screen - * http://en.wikipedia.org/wiki/3D_projection - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @return {Point2d} point2d A 2D point with parameters x, y - */ - Graph3d.prototype._convert3Dto2D = function (point3d) { - var translation = this._convertPointToTranslation(point3d); - return this._convertTranslationToScreen(translation); + // start animation when option is true + if (this.animationAutoStart && this.dataFilter) { + this.animationStart(); + } }; /** - * Convert a 3D location its translation seen from the camera - * http://en.wikipedia.org/wiki/3D_projection - * @param {Point3d} point3d A 3D point with parameters x, y, z - * @return {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera + * Redraw the Graph. */ - Graph3d.prototype._convertPointToTranslation = function (point3d) { - var ax = point3d.x * this.scale.x, - ay = point3d.y * this.scale.y, - az = point3d.z * this.scale.z, - cx = this.camera.getCameraLocation().x, - cy = this.camera.getCameraLocation().y, - cz = this.camera.getCameraLocation().z, - - // calculate angles - sinTx = Math.sin(this.camera.getCameraRotation().x), - cosTx = Math.cos(this.camera.getCameraRotation().x), - sinTy = Math.sin(this.camera.getCameraRotation().y), - cosTy = Math.cos(this.camera.getCameraRotation().y), - sinTz = Math.sin(this.camera.getCameraRotation().z), - cosTz = Math.cos(this.camera.getCameraRotation().z), - - // calculate translation - dx = cosTy * (sinTz * (ay - cy) + cosTz * (ax - cx)) - sinTy * (az - cz), - dy = sinTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) + cosTx * (cosTz * (ay - cy) - sinTz * (ax - cx)), - dz = cosTx * (cosTy * (az - cz) + sinTy * (sinTz * (ay - cy) + cosTz * (ax - cx))) - sinTx * (cosTz * (ay - cy) - sinTz * (ax - cx)); - - return new Point3d(dx, dy, dz); - }; + Graph3d.prototype.redraw = function () { + if (this.dataPoints === undefined) { + throw 'Error: graph data not initialized'; + } - /** - * Convert a translation point to a point on the screen - * @param {Point3d} translation A 3D point with parameters x, y, z This is - * the translation of the point, seen from the - * camera - * @return {Point2d} point2d A 2D point with parameters x, y - */ - Graph3d.prototype._convertTranslationToScreen = function (translation) { - var ex = this.eye.x, - ey = this.eye.y, - ez = this.eye.z, - dx = translation.x, - dy = translation.y, - dz = translation.z; + this._resizeCanvas(); + this._resizeCenter(); + this._redrawSlider(); + this._redrawClear(); + this._redrawAxis(); - // calculate position on screen from translation - var bx; - var by; - if (this.showPerspective) { - bx = (dx - ex) * (ez / dz); - by = (dy - ey) * (ez / dz); + if (this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE) { + this._redrawDataGrid(); + } else if (this.style === Graph3d.STYLE.LINE) { + this._redrawDataLine(); + } else if (this.style === Graph3d.STYLE.BAR || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { + this._redrawDataBar(); } else { - bx = dx * -(ez / this.camera.getArmLength()); - by = dy * -(ez / this.camera.getArmLength()); + // style is DOT, DOTLINE, DOTCOLOR, DOTSIZE + this._redrawDataDot(); } - // shift and scale the point to the center of the screen - // use the width of the graph to scale both horizontally and vertically. - return new Point2d(this.xcenter + bx * this.frame.canvas.clientWidth, this.ycenter - by * this.frame.canvas.clientWidth); + this._redrawInfo(); + this._redrawLegend(); }; /** - * Set the background styling for the graph - * @param {string | {fill: string, stroke: string, strokeWidth: string}} backgroundColor + * Clear the canvas before redrawing */ - Graph3d.prototype._setBackgroundColor = function (backgroundColor) { - var fill = 'white'; - var stroke = 'gray'; - var strokeWidth = 1; - - if (typeof backgroundColor === 'string') { - fill = backgroundColor; - stroke = 'none'; - strokeWidth = 0; - } else if (typeof backgroundColor === 'object') { - if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; - if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; - if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; - } else if (backgroundColor === undefined) {} else { - throw 'Unsupported type of backgroundColor'; - } - - this.frame.style.backgroundColor = fill; - this.frame.style.borderColor = stroke; - this.frame.style.borderWidth = strokeWidth + 'px'; - this.frame.style.borderStyle = 'solid'; - }; + Graph3d.prototype._redrawClear = function () { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); - /// enumerate the available styles - Graph3d.STYLE = { - BAR: 0, - BARCOLOR: 1, - BARSIZE: 2, - DOT: 3, - DOTLINE: 4, - DOTCOLOR: 5, - DOTSIZE: 6, - GRID: 7, - LINE: 8, - SURFACE: 9 + ctx.clearRect(0, 0, canvas.width, canvas.height); }; /** - * Retrieve the style index from given styleName - * @param {string} styleName Style name such as 'dot', 'grid', 'dot-line' - * @return {Number} styleNumber Enumeration value representing the style, or -1 - * when not found + * Redraw the legend showing the colors */ - Graph3d.prototype._getStyleNumber = function (styleName) { - switch (styleName) { - case 'dot': - return Graph3d.STYLE.DOT; - case 'dot-line': - return Graph3d.STYLE.DOTLINE; - case 'dot-color': - return Graph3d.STYLE.DOTCOLOR; - case 'dot-size': - return Graph3d.STYLE.DOTSIZE; - case 'line': - return Graph3d.STYLE.LINE; - case 'grid': - return Graph3d.STYLE.GRID; - case 'surface': - return Graph3d.STYLE.SURFACE; - case 'bar': - return Graph3d.STYLE.BAR; - case 'bar-color': - return Graph3d.STYLE.BARCOLOR; - case 'bar-size': - return Graph3d.STYLE.BARSIZE; - } + Graph3d.prototype._redrawLegend = function () { + var y; - return -1; - }; + if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { - /** - * Determine the indexes of the data columns, based on the given style and data - * @param {DataSet} data - * @param {Number} style - */ - Graph3d.prototype._determineColumnIndexes = function (data, style) { - if (this.style === Graph3d.STYLE.DOT || this.style === Graph3d.STYLE.DOTLINE || this.style === Graph3d.STYLE.LINE || this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE || this.style === Graph3d.STYLE.BAR) { - // 3 columns expected, and optionally a 4th with filter values - this.colX = 0; - this.colY = 1; - this.colZ = 2; - this.colValue = undefined; + var dotSize = this.frame.clientWidth * 0.02; - if (data.getNumberOfColumns() > 3) { - this.colFilter = 3; + var widthMin, widthMax; + if (this.style === Graph3d.STYLE.DOTSIZE) { + widthMin = dotSize / 2; // px + widthMax = dotSize / 2 + dotSize * 2; // Todo: put this in one function + } else { + widthMin = 20; // px + widthMax = 20; // px } - } else if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { - // 4 columns expected, and optionally a 5th with filter values - this.colX = 0; - this.colY = 1; - this.colZ = 2; - this.colValue = 3; - if (data.getNumberOfColumns() > 4) { - this.colFilter = 4; - } - } else { - throw 'Unknown style "' + this.style + '"'; + var height = Math.max(this.frame.clientHeight * 0.25, 100); + var top = this.margin; + var right = this.frame.clientWidth - this.margin; + var left = right - widthMax; + var bottom = top + height; } - }; - Graph3d.prototype.getNumberOfRows = function (data) { - return data.length; - }; + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + ctx.lineWidth = 1; + ctx.font = '14px arial'; // TODO: put in options - Graph3d.prototype.getNumberOfColumns = function (data) { - var counter = 0; - for (var column in data[0]) { - if (data[0].hasOwnProperty(column)) { - counter++; - } - } - return counter; - }; + if (this.style === Graph3d.STYLE.DOTCOLOR) { + // draw the color bar + var ymin = 0; + var ymax = height; // Todo: make height customizable + for (y = ymin; y < ymax; y++) { + var f = (y - ymin) / (ymax - ymin); - Graph3d.prototype.getDistinctValues = function (data, column) { - var distinctValues = []; - for (var i = 0; i < data.length; i++) { - if (distinctValues.indexOf(data[i][column]) == -1) { - distinctValues.push(data[i][column]); - } - } - return distinctValues; - }; + //var width = (dotSize / 2 + (1-f) * dotSize * 2); // Todo: put this in one function + var hue = f * 240; + var color = this._hsv2rgb(hue, 1, 1); - Graph3d.prototype.getColumnRange = function (data, column) { - var minMax = { min: data[0][column], max: data[0][column] }; - for (var i = 0; i < data.length; i++) { - if (minMax.min > data[i][column]) { - minMax.min = data[i][column]; - } - if (minMax.max < data[i][column]) { - minMax.max = data[i][column]; + ctx.strokeStyle = color; + ctx.beginPath(); + ctx.moveTo(left, top + y); + ctx.lineTo(right, top + y); + ctx.stroke(); } - } - return minMax; - }; - /** - * Initialize the data from the data table. Calculate minimum and maximum values - * and column index values - * @param {Array | DataSet | DataView} rawData The data containing the items for the Graph. - * @param {Number} style Style Number - */ - Graph3d.prototype._dataInitialize = function (rawData, style) { - var me = this; + ctx.strokeStyle = this.colorAxis; + ctx.strokeRect(left, top, widthMax, height); + } - // unsubscribe from the dataTable - if (this.dataSet) { - this.dataSet.off('*', this._onChange); + if (this.style === Graph3d.STYLE.DOTSIZE) { + // draw border around color bar + ctx.strokeStyle = this.colorAxis; + ctx.fillStyle = this.colorDot; + ctx.beginPath(); + ctx.moveTo(left, top); + ctx.lineTo(right, top); + ctx.lineTo(right - widthMax + widthMin, bottom); + ctx.lineTo(left, bottom); + ctx.closePath(); + ctx.fill(); + ctx.stroke(); } - if (rawData === undefined) return; + if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { + // print values along the color bar + var gridLineLen = 5; // px + var step = new StepNumber(this.valueMin, this.valueMax, (this.valueMax - this.valueMin) / 5, true); + step.start(); + if (step.getCurrent() < this.valueMin) { + step.next(); + } + while (!step.end()) { + y = bottom - (step.getCurrent() - this.valueMin) / (this.valueMax - this.valueMin) * height; - if (Array.isArray(rawData)) { - rawData = new DataSet(rawData); - } + ctx.beginPath(); + ctx.moveTo(left - gridLineLen, y); + ctx.lineTo(left, y); + ctx.stroke(); - var data; - if (rawData instanceof DataSet || rawData instanceof DataView) { - data = rawData.get(); - } else { - throw new Error('Array, DataSet, or DataView expected'); - } + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(step.getCurrent(), left - 2 * gridLineLen, y); - if (data.length == 0) return; + step.next(); + } - this.dataSet = rawData; - this.dataTable = data; + ctx.textAlign = 'right'; + ctx.textBaseline = 'top'; + var label = this.legendLabel; + ctx.fillText(label, right, bottom + this.margin); + } + }; - // subscribe to changes in the dataset - this._onChange = function () { - me.setData(me.dataSet); - }; - this.dataSet.on('*', this._onChange); + /** + * Redraw the filter + */ + Graph3d.prototype._redrawFilter = function () { + this.frame.filter.innerHTML = ''; - // _determineColumnIndexes - // getNumberOfRows (points) - // getNumberOfColumns (x,y,z,v,t,t1,t2...) - // getDistinctValues (unique values?) - // getColumnRange + if (this.dataFilter) { + var options = { + 'visible': this.showAnimationControls + }; + var slider = new Slider(this.frame.filter, options); + this.frame.filter.slider = slider; - // determine the location of x,y,z,value,filter columns - this.colX = 'x'; - this.colY = 'y'; - this.colZ = 'z'; - this.colValue = 'style'; - this.colFilter = 'filter'; + // TODO: css here is not nice here... + this.frame.filter.style.padding = '10px'; + //this.frame.filter.style.backgroundColor = '#EFEFEF'; - // check if a filter column is provided - if (data[0].hasOwnProperty('filter')) { - if (this.dataFilter === undefined) { - this.dataFilter = new Filter(rawData, this.colFilter, this); - this.dataFilter.setOnLoadCallback(function () { - me.redraw(); - }); - } - } + slider.setValues(this.dataFilter.values); + slider.setPlayInterval(this.animationInterval); - var withBars = this.style == Graph3d.STYLE.BAR || this.style == Graph3d.STYLE.BARCOLOR || this.style == Graph3d.STYLE.BARSIZE; + // create an event handler + var me = this; + var onchange = function onchange() { + var index = slider.getIndex(); - // determine barWidth from data - if (withBars) { - if (this.defaultXBarWidth !== undefined) { - this.xBarWidth = this.defaultXBarWidth; - } else { - var dataX = this.getDistinctValues(data, this.colX); - this.xBarWidth = dataX[1] - dataX[0] || 1; - } + me.dataFilter.selectValue(index); + me.dataPoints = me.dataFilter._getDataPoints(); - if (this.defaultYBarWidth !== undefined) { - this.yBarWidth = this.defaultYBarWidth; - } else { - var dataY = this.getDistinctValues(data, this.colY); - this.yBarWidth = dataY[1] - dataY[0] || 1; - } + me.redraw(); + }; + slider.setOnChangeCallback(onchange); + } else { + this.frame.filter.slider = undefined; } + }; - // calculate minimums and maximums - var xRange = this.getColumnRange(data, this.colX); - if (withBars) { - xRange.min -= this.xBarWidth / 2; - xRange.max += this.xBarWidth / 2; + /** + * Redraw the slider + */ + Graph3d.prototype._redrawSlider = function () { + if (this.frame.filter.slider !== undefined) { + this.frame.filter.slider.redraw(); } - this.xMin = this.defaultXMin !== undefined ? this.defaultXMin : xRange.min; - this.xMax = this.defaultXMax !== undefined ? this.defaultXMax : xRange.max; - if (this.xMax <= this.xMin) this.xMax = this.xMin + 1; - this.xStep = this.defaultXStep !== undefined ? this.defaultXStep : (this.xMax - this.xMin) / 5; + }; - var yRange = this.getColumnRange(data, this.colY); - if (withBars) { - yRange.min -= this.yBarWidth / 2; - yRange.max += this.yBarWidth / 2; - } - this.yMin = this.defaultYMin !== undefined ? this.defaultYMin : yRange.min; - this.yMax = this.defaultYMax !== undefined ? this.defaultYMax : yRange.max; - if (this.yMax <= this.yMin) this.yMax = this.yMin + 1; - this.yStep = this.defaultYStep !== undefined ? this.defaultYStep : (this.yMax - this.yMin) / 5; + /** + * Redraw common information + */ + Graph3d.prototype._redrawInfo = function () { + if (this.dataFilter) { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); - var zRange = this.getColumnRange(data, this.colZ); - this.zMin = this.defaultZMin !== undefined ? this.defaultZMin : zRange.min; - this.zMax = this.defaultZMax !== undefined ? this.defaultZMax : zRange.max; - if (this.zMax <= this.zMin) this.zMax = this.zMin + 1; - this.zStep = this.defaultZStep !== undefined ? this.defaultZStep : (this.zMax - this.zMin) / 5; + ctx.font = '14px arial'; // TODO: put in options + ctx.lineStyle = 'gray'; + ctx.fillStyle = 'gray'; + ctx.textAlign = 'left'; + ctx.textBaseline = 'top'; - if (this.colValue !== undefined) { - var valueRange = this.getColumnRange(data, this.colValue); - this.valueMin = this.defaultValueMin !== undefined ? this.defaultValueMin : valueRange.min; - this.valueMax = this.defaultValueMax !== undefined ? this.defaultValueMax : valueRange.max; - if (this.valueMax <= this.valueMin) this.valueMax = this.valueMin + 1; + var x = this.margin; + var y = this.margin; + ctx.fillText(this.dataFilter.getLabel() + ': ' + this.dataFilter.getSelectedValue(), x, y); } - - // set the scale dependent on the ranges. - this._setScale(); }; /** - * Filter the data based on the current filter - * @param {Array} data - * @return {Array} dataPoints Array with point objects which can be drawn on screen + * Redraw the axis */ - Graph3d.prototype._getDataPoints = function (data) { - // TODO: store the created matrix dataPoints in the filters instead of reloading each time - var x, y, i, z, obj, point; - - var dataPoints = []; + Graph3d.prototype._redrawAxis = function () { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + from, + to, + step, + prettyStep, + text, + xText, + yText, + zText, + offset, + xOffset, + yOffset, + xMin2d, + xMax2d; - if (this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE) { - // copy all values from the google data table to a matrix - // the provided values are supposed to form a grid of (x,y) positions - - // create two lists with all present x and y values - var dataX = []; - var dataY = []; - for (i = 0; i < this.getNumberOfRows(data); i++) { - x = data[i][this.colX] || 0; - y = data[i][this.colY] || 0; - - if (dataX.indexOf(x) === -1) { - dataX.push(x); - } - if (dataY.indexOf(y) === -1) { - dataY.push(y); - } - } + // TODO: get the actual rendered style of the containerElement + //ctx.font = this.containerElement.style.font; + ctx.font = 24 / this.camera.getArmLength() + 'px arial'; - var sortNumber = function sortNumber(a, b) { - return a - b; - }; - dataX.sort(sortNumber); - dataY.sort(sortNumber); + // calculate the length for the short grid lines + var gridLenX = 0.025 / this.scale.x; + var gridLenY = 0.025 / this.scale.y; + var textMargin = 5 / this.camera.getArmLength(); // px + var armAngle = this.camera.getArmRotation().horizontal; - // create a grid, a 2d matrix, with all values. - var dataMatrix = []; // temporary data matrix - for (i = 0; i < data.length; i++) { - x = data[i][this.colX] || 0; - y = data[i][this.colY] || 0; - z = data[i][this.colZ] || 0; + // draw x-grid lines + ctx.lineWidth = 1; + prettyStep = this.defaultXStep === undefined; + step = new StepNumber(this.xMin, this.xMax, this.xStep, prettyStep); + step.start(); + if (step.getCurrent() < this.xMin) { + step.next(); + } + while (!step.end()) { + var x = step.getCurrent(); - var xIndex = dataX.indexOf(x); // TODO: implement Array().indexOf() for Internet Explorer - var yIndex = dataY.indexOf(y); + if (this.showGrid) { + from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } else { + from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMin + gridLenX, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); - if (dataMatrix[xIndex] === undefined) { - dataMatrix[xIndex] = []; - } + from = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); + to = this._convert3Dto2D(new Point3d(x, this.yMax - gridLenX, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } - var point3d = new Point3d(); - point3d.x = x; - point3d.y = y; - point3d.z = z; + yText = Math.cos(armAngle) > 0 ? this.yMin : this.yMax; + text = this._convert3Dto2D(new Point3d(x, yText, this.zMin)); + if (Math.cos(armAngle * 2) > 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + text.y += textMargin; + } else if (Math.sin(armAngle * 2) < 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(' ' + this.xValueLabel(step.getCurrent()) + ' ', text.x, text.y); - obj = {}; - obj.point = point3d; - obj.trans = undefined; - obj.screen = undefined; - obj.bottom = new Point3d(x, y, this.zMin); + step.next(); + } - dataMatrix[xIndex][yIndex] = obj; + // draw y-grid lines + ctx.lineWidth = 1; + prettyStep = this.defaultYStep === undefined; + step = new StepNumber(this.yMin, this.yMax, this.yStep, prettyStep); + step.start(); + if (step.getCurrent() < this.yMin) { + step.next(); + } + while (!step.end()) { + if (this.showGrid) { + from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + } else { + from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMin + gridLenY, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); - dataPoints.push(obj); + from = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax - gridLenY, step.getCurrent(), this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); } - // fill in the pointers to the neighbors. - for (x = 0; x < dataMatrix.length; x++) { - for (y = 0; y < dataMatrix[x].length; y++) { - if (dataMatrix[x][y]) { - dataMatrix[x][y].pointRight = x < dataMatrix.length - 1 ? dataMatrix[x + 1][y] : undefined; - dataMatrix[x][y].pointTop = y < dataMatrix[x].length - 1 ? dataMatrix[x][y + 1] : undefined; - dataMatrix[x][y].pointCross = x < dataMatrix.length - 1 && y < dataMatrix[x].length - 1 ? dataMatrix[x + 1][y + 1] : undefined; - } - } + xText = Math.sin(armAngle) > 0 ? this.xMin : this.xMax; + text = this._convert3Dto2D(new Point3d(xText, step.getCurrent(), this.zMin)); + if (Math.cos(armAngle * 2) < 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + text.y += textMargin; + } else if (Math.sin(armAngle * 2) > 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; } - } else { - // 'dot', 'dot-line', etc. - // copy all values from the google data table to a list with Point3d objects - for (i = 0; i < data.length; i++) { - point = new Point3d(); - point.x = data[i][this.colX] || 0; - point.y = data[i][this.colY] || 0; - point.z = data[i][this.colZ] || 0; - - if (this.colValue !== undefined) { - point.value = data[i][this.colValue] || 0; - } - - obj = {}; - obj.point = point; - obj.bottom = new Point3d(point.x, point.y, this.zMin); - obj.trans = undefined; - obj.screen = undefined; + ctx.fillStyle = this.colorAxis; + ctx.fillText(' ' + this.yValueLabel(step.getCurrent()) + ' ', text.x, text.y); - dataPoints.push(obj); - } + step.next(); } - return dataPoints; - }; - - /** - * Create the main frame for the Graph3d. - * This function is executed once when a Graph3d object is created. The frame - * contains a canvas, and this canvas contains all objects like the axis and - * nodes. - */ - Graph3d.prototype.create = function () { - // remove all elements from the container element. - while (this.containerElement.hasChildNodes()) { - this.containerElement.removeChild(this.containerElement.firstChild); + // draw z-grid lines and axis + ctx.lineWidth = 1; + prettyStep = this.defaultZStep === undefined; + step = new StepNumber(this.zMin, this.zMax, this.zStep, prettyStep); + step.start(); + if (step.getCurrent() < this.zMin) { + step.next(); } + xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; + yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; + while (!step.end()) { + // TODO: make z-grid lines really 3d? + from = this._convert3Dto2D(new Point3d(xText, yText, step.getCurrent())); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(from.x - textMargin, from.y); + ctx.stroke(); - this.frame = document.createElement('div'); - this.frame.style.position = 'relative'; - this.frame.style.overflow = 'hidden'; + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(this.zValueLabel(step.getCurrent()) + ' ', from.x - 5, from.y); - // create the graph canvas (HTML canvas element) - this.frame.canvas = document.createElement('canvas'); - this.frame.canvas.style.position = 'relative'; - this.frame.appendChild(this.frame.canvas); - //if (!this.frame.canvas.getContext) { - { - var noCanvas = document.createElement('DIV'); - noCanvas.style.color = 'red'; - noCanvas.style.fontWeight = 'bold'; - noCanvas.style.padding = '10px'; - noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; - this.frame.canvas.appendChild(noCanvas); + step.next(); } + ctx.lineWidth = 1; + from = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + to = this._convert3Dto2D(new Point3d(xText, yText, this.zMax)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); - this.frame.filter = document.createElement('div'); - this.frame.filter.style.position = 'absolute'; - this.frame.filter.style.bottom = '0px'; - this.frame.filter.style.left = '0px'; - this.frame.filter.style.width = '100%'; - this.frame.appendChild(this.frame.filter); - - // add event listeners to handle moving and zooming the contents - var me = this; - var onmousedown = function onmousedown(event) { - me._onMouseDown(event); - }; - var ontouchstart = function ontouchstart(event) { - me._onTouchStart(event); - }; - var onmousewheel = function onmousewheel(event) { - me._onWheel(event); - }; - var ontooltip = function ontooltip(event) { - me._onTooltip(event); - }; - // TODO: these events are never cleaned up... can give a 'memory leakage' + // draw x-axis + ctx.lineWidth = 1; + // line at yMin + xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); + xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(xMin2d.x, xMin2d.y); + ctx.lineTo(xMax2d.x, xMax2d.y); + ctx.stroke(); + // line at ymax + xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); + xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(xMin2d.x, xMin2d.y); + ctx.lineTo(xMax2d.x, xMax2d.y); + ctx.stroke(); - util.addEventListener(this.frame.canvas, 'keydown', onkeydown); - util.addEventListener(this.frame.canvas, 'mousedown', onmousedown); - util.addEventListener(this.frame.canvas, 'touchstart', ontouchstart); - util.addEventListener(this.frame.canvas, 'mousewheel', onmousewheel); - util.addEventListener(this.frame.canvas, 'mousemove', ontooltip); + // draw y-axis + ctx.lineWidth = 1; + // line at xMin + from = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); + // line at xMax + from = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); + to = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); + ctx.strokeStyle = this.colorAxis; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(to.x, to.y); + ctx.stroke(); - // add the new graph to the container element - this.containerElement.appendChild(this.frame); - }; + // draw x-label + var xLabel = this.xLabel; + if (xLabel.length > 0) { + yOffset = 0.1 / this.scale.y; + xText = (this.xMin + this.xMax) / 2; + yText = Math.cos(armAngle) > 0 ? this.yMin - yOffset : this.yMax + yOffset; + text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + if (Math.cos(armAngle * 2) > 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + } else if (Math.sin(armAngle * 2) < 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(xLabel, text.x, text.y); + } - /** - * Set a new size for the graph - * @param {string} width Width in pixels or percentage (for example '800px' - * or '50%') - * @param {string} height Height in pixels or percentage (for example '400px' - * or '30%') - */ - Graph3d.prototype.setSize = function (width, height) { - this.frame.style.width = width; - this.frame.style.height = height; + // draw y-label + var yLabel = this.yLabel; + if (yLabel.length > 0) { + xOffset = 0.1 / this.scale.x; + xText = Math.sin(armAngle) > 0 ? this.xMin - xOffset : this.xMax + xOffset; + yText = (this.yMin + this.yMax) / 2; + text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); + if (Math.cos(armAngle * 2) < 0) { + ctx.textAlign = 'center'; + ctx.textBaseline = 'top'; + } else if (Math.sin(armAngle * 2) > 0) { + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + } else { + ctx.textAlign = 'left'; + ctx.textBaseline = 'middle'; + } + ctx.fillStyle = this.colorAxis; + ctx.fillText(yLabel, text.x, text.y); + } - this._resizeCanvas(); + // draw z-label + var zLabel = this.zLabel; + if (zLabel.length > 0) { + offset = 30; // pixels. // TODO: relate to the max width of the values on the z axis? + xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; + yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; + zText = (this.zMin + this.zMax) / 2; + text = this._convert3Dto2D(new Point3d(xText, yText, zText)); + ctx.textAlign = 'right'; + ctx.textBaseline = 'middle'; + ctx.fillStyle = this.colorAxis; + ctx.fillText(zLabel, text.x - offset, text.y); + } }; /** - * Resize the canvas to the current size of the frame + * Calculate the color based on the given value. + * @param {Number} H Hue, a value be between 0 and 360 + * @param {Number} S Saturation, a value between 0 and 1 + * @param {Number} V Value, a value between 0 and 1 */ - Graph3d.prototype._resizeCanvas = function () { - this.frame.canvas.style.width = '100%'; - this.frame.canvas.style.height = '100%'; + Graph3d.prototype._hsv2rgb = function (H, S, V) { + var R, G, B, C, Hi, X; - this.frame.canvas.width = this.frame.canvas.clientWidth; - this.frame.canvas.height = this.frame.canvas.clientHeight; + C = V * S; + Hi = Math.floor(H / 60); // hi = 0,1,2,3,4,5 + X = C * (1 - Math.abs(H / 60 % 2 - 1)); - // adjust with for margin - this.frame.filter.style.width = this.frame.canvas.clientWidth - 2 * 10 + 'px'; - }; + switch (Hi) { + case 0: + R = C;G = X;B = 0;break; + case 1: + R = X;G = C;B = 0;break; + case 2: + R = 0;G = C;B = X;break; + case 3: + R = 0;G = X;B = C;break; + case 4: + R = X;G = 0;B = C;break; + case 5: + R = C;G = 0;B = X;break; - /** - * Start animation - */ - Graph3d.prototype.animationStart = function () { - if (!this.frame.filter || !this.frame.filter.slider) throw 'No animation available'; + default: + R = 0;G = 0;B = 0;break; + } - this.frame.filter.slider.play(); + return 'RGB(' + parseInt(R * 255) + ',' + parseInt(G * 255) + ',' + parseInt(B * 255) + ')'; }; /** - * Stop animation + * Draw all datapoints as a grid + * This function can be used when the style is 'grid' */ - Graph3d.prototype.animationStop = function () { - if (!this.frame.filter || !this.frame.filter.slider) return; - - this.frame.filter.slider.stop(); - }; + Graph3d.prototype._redrawDataGrid = function () { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + point, + right, + top, + cross, + i, + topSideVisible, + fillStyle, + strokeStyle, + lineWidth, + h, + s, + v, + zAvg; - /** - * Resize the center position based on the current values in this.defaultXCenter - * and this.defaultYCenter (which are strings with a percentage or a value - * in pixels). The center positions are the variables this.xCenter - * and this.yCenter - */ - Graph3d.prototype._resizeCenter = function () { - // calculate the horizontal center position - if (this.defaultXCenter.charAt(this.defaultXCenter.length - 1) === '%') { - this.xcenter = parseFloat(this.defaultXCenter) / 100 * this.frame.canvas.clientWidth; - } else { - this.xcenter = parseFloat(this.defaultXCenter); // supposed to be in px - } + if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? - // calculate the vertical center position - if (this.defaultYCenter.charAt(this.defaultYCenter.length - 1) === '%') { - this.ycenter = parseFloat(this.defaultYCenter) / 100 * (this.frame.canvas.clientHeight - this.frame.filter.clientHeight); - } else { - this.ycenter = parseFloat(this.defaultYCenter); // supposed to be in px - } - }; + // calculate the translations and screen position of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); - /** - * Set the rotation and distance of the camera - * @param {Object} pos An object with the camera position. The object - * contains three parameters: - * - horizontal {Number} - * The horizontal rotation, between 0 and 2*PI. - * Optional, can be left undefined. - * - vertical {Number} - * The vertical rotation, between 0 and 0.5*PI - * if vertical=0.5*PI, the graph is shown from the - * top. Optional, can be left undefined. - * - distance {Number} - * The (normalized) distance of the camera to the - * center of the graph, a value between 0.71 and 5.0. - * Optional, can be left undefined. - */ - Graph3d.prototype.setCameraPosition = function (pos) { - if (pos === undefined) { - return; - } + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; - if (pos.horizontal !== undefined && pos.vertical !== undefined) { - this.camera.setArmRotation(pos.horizontal, pos.vertical); + // calculate the translation of the point at the bottom (needed for sorting) + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; } - if (pos.distance !== undefined) { - this.camera.setArmLength(pos.distance); - } + // sort the points on depth of their (x,y) position (not on z) + var sortDepth = function sortDepth(a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); - this.redraw(); - }; + if (this.style === Graph3d.STYLE.SURFACE) { + for (i = 0; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + right = this.dataPoints[i].pointRight; + top = this.dataPoints[i].pointTop; + cross = this.dataPoints[i].pointCross; - /** - * Retrieve the current camera rotation - * @return {object} An object with parameters horizontal, vertical, and - * distance - */ - Graph3d.prototype.getCameraPosition = function () { - var pos = this.camera.getArmRotation(); - pos.distance = this.camera.getArmLength(); - return pos; - }; + if (point !== undefined && right !== undefined && top !== undefined && cross !== undefined) { - /** - * Load data into the 3D Graph - */ - Graph3d.prototype._readData = function (data) { - // read the data - this._dataInitialize(data, this.style); - - if (this.dataFilter) { - // apply filtering - this.dataPoints = this.dataFilter._getDataPoints(); - } else { - // no filtering. load all data - this.dataPoints = this._getDataPoints(this.dataTable); - } - - // draw the filter - this._redrawFilter(); - }; + if (this.showGrayBottom || this.showShadow) { + // calculate the cross product of the two vectors from center + // to left and right, in order to know whether we are looking at the + // bottom or at the top side. We can also use the cross product + // for calculating light intensity + var aDiff = Point3d.subtract(cross.trans, point.trans); + var bDiff = Point3d.subtract(top.trans, right.trans); + var crossproduct = Point3d.crossProduct(aDiff, bDiff); + var len = crossproduct.length(); + // FIXME: there is a bug with determining the surface side (shadow or colored) - /** - * Replace the dataset of the Graph3d - * @param {Array | DataSet | DataView} data - */ - Graph3d.prototype.setData = function (data) { - this._readData(data); - this.redraw(); + topSideVisible = crossproduct.z > 0; + } else { + topSideVisible = true; + } - // start animation when option is true - if (this.animationAutoStart && this.dataFilter) { - this.animationStart(); - } - }; + if (topSideVisible) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + right.point.z + top.point.z + cross.point.z) / 4; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + s = 1; // saturation - /** - * Update the options. Options will be merged with current options - * @param {Object} options - */ - Graph3d.prototype.setOptions = function (options) { - var cameraPosition = undefined; + if (this.showShadow) { + v = Math.min(1 + crossproduct.x / len / 2, 1); // value. TODO: scale + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = fillStyle; + } else { + v = 1; + fillStyle = this._hsv2rgb(h, s, v); + strokeStyle = this.colorAxis; + } + } else { + fillStyle = 'gray'; + strokeStyle = this.colorAxis; + } + lineWidth = 0.5; - this.animationStop(); + ctx.lineWidth = lineWidth; + ctx.fillStyle = fillStyle; + ctx.strokeStyle = strokeStyle; + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(right.screen.x, right.screen.y); + ctx.lineTo(cross.screen.x, cross.screen.y); + ctx.lineTo(top.screen.x, top.screen.y); + ctx.closePath(); + ctx.fill(); + ctx.stroke(); + } + } + } else { + // grid style + for (i = 0; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + right = this.dataPoints[i].pointRight; + top = this.dataPoints[i].pointTop; - if (options !== undefined) { - // retrieve parameter values - if (options.width !== undefined) this.width = options.width; - if (options.height !== undefined) this.height = options.height; + if (point !== undefined) { + if (this.showPerspective) { + lineWidth = 2 / -point.trans.z; + } else { + lineWidth = 2 * -(this.eye.z / this.camera.getArmLength()); + } + } - if (options.xCenter !== undefined) this.defaultXCenter = options.xCenter; - if (options.yCenter !== undefined) this.defaultYCenter = options.yCenter; + if (point !== undefined && right !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + right.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - if (options.filterLabel !== undefined) this.filterLabel = options.filterLabel; - if (options.legendLabel !== undefined) this.legendLabel = options.legendLabel; - if (options.xLabel !== undefined) this.xLabel = options.xLabel; - if (options.yLabel !== undefined) this.yLabel = options.yLabel; - if (options.zLabel !== undefined) this.zLabel = options.zLabel; + ctx.lineWidth = lineWidth; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(right.screen.x, right.screen.y); + ctx.stroke(); + } - if (options.xValueLabel !== undefined) this.xValueLabel = options.xValueLabel; - if (options.yValueLabel !== undefined) this.yValueLabel = options.yValueLabel; - if (options.zValueLabel !== undefined) this.zValueLabel = options.zValueLabel; + if (point !== undefined && top !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + top.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - if (options.style !== undefined) { - var styleNumber = this._getStyleNumber(options.style); - if (styleNumber !== -1) { - this.style = styleNumber; + ctx.lineWidth = lineWidth; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(top.screen.x, top.screen.y); + ctx.stroke(); } } - if (options.showGrid !== undefined) this.showGrid = options.showGrid; - if (options.showPerspective !== undefined) this.showPerspective = options.showPerspective; - if (options.showShadow !== undefined) this.showShadow = options.showShadow; - if (options.tooltip !== undefined) this.showTooltip = options.tooltip; - if (options.showAnimationControls !== undefined) this.showAnimationControls = options.showAnimationControls; - if (options.keepAspectRatio !== undefined) this.keepAspectRatio = options.keepAspectRatio; - if (options.verticalRatio !== undefined) this.verticalRatio = options.verticalRatio; - - if (options.animationInterval !== undefined) this.animationInterval = options.animationInterval; - if (options.animationPreload !== undefined) this.animationPreload = options.animationPreload; - if (options.animationAutoStart !== undefined) this.animationAutoStart = options.animationAutoStart; + } + }; - if (options.xBarWidth !== undefined) this.defaultXBarWidth = options.xBarWidth; - if (options.yBarWidth !== undefined) this.defaultYBarWidth = options.yBarWidth; + /** + * Draw all datapoints as dots. + * This function can be used when the style is 'dot' or 'dot-line' + */ + Graph3d.prototype._redrawDataDot = function () { + var canvas = this.frame.canvas; + var ctx = canvas.getContext('2d'); + var i; - if (options.xMin !== undefined) this.defaultXMin = options.xMin; - if (options.xStep !== undefined) this.defaultXStep = options.xStep; - if (options.xMax !== undefined) this.defaultXMax = options.xMax; - if (options.yMin !== undefined) this.defaultYMin = options.yMin; - if (options.yStep !== undefined) this.defaultYStep = options.yStep; - if (options.yMax !== undefined) this.defaultYMax = options.yMax; - if (options.zMin !== undefined) this.defaultZMin = options.zMin; - if (options.zStep !== undefined) this.defaultZStep = options.zStep; - if (options.zMax !== undefined) this.defaultZMax = options.zMax; - if (options.valueMin !== undefined) this.defaultValueMin = options.valueMin; - if (options.valueMax !== undefined) this.defaultValueMax = options.valueMax; + if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? - if (options.cameraPosition !== undefined) cameraPosition = options.cameraPosition; + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; - if (cameraPosition !== undefined) { - this.camera.setArmRotation(cameraPosition.horizontal, cameraPosition.vertical); - this.camera.setArmLength(cameraPosition.distance); - } else { - this.camera.setArmRotation(1, 0.5); - this.camera.setArmLength(1.7); - } + // calculate the distance from the point at the bottom to the camera + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; } - this._setBackgroundColor(options && options.backgroundColor); + // order the translated points by depth + var sortDepth = function sortDepth(a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); - this.setSize(this.width, this.height); + // draw the datapoints as colored circles + var dotSize = this.frame.clientWidth * 0.02; // px + for (i = 0; i < this.dataPoints.length; i++) { + var point = this.dataPoints[i]; - // re-load the data - if (this.dataTable) { - this.setData(this.dataTable); - } + if (this.style === Graph3d.STYLE.DOTLINE) { + // draw a vertical line from the bottom to the graph value + //var from = this._convert3Dto2D(new Point3d(point.point.x, point.point.y, this.zMin)); + var from = this._convert3Dto2D(point.bottom); + ctx.lineWidth = 1; + ctx.strokeStyle = this.colorGrid; + ctx.beginPath(); + ctx.moveTo(from.x, from.y); + ctx.lineTo(point.screen.x, point.screen.y); + ctx.stroke(); + } - // start animation when option is true - if (this.animationAutoStart && this.dataFilter) { - this.animationStart(); - } - }; + // calculate radius for the circle + var size; + if (this.style === Graph3d.STYLE.DOTSIZE) { + size = dotSize / 2 + 2 * dotSize * (point.point.value - this.valueMin) / (this.valueMax - this.valueMin); + } else { + size = dotSize; + } - /** - * Redraw the Graph. - */ - Graph3d.prototype.redraw = function () { - if (this.dataPoints === undefined) { - throw 'Error: graph data not initialized'; - } + var radius; + if (this.showPerspective) { + radius = size / -point.trans.z; + } else { + radius = size * -(this.eye.z / this.camera.getArmLength()); + } + if (radius < 0) { + radius = 0; + } - this._resizeCanvas(); - this._resizeCenter(); - this._redrawSlider(); - this._redrawClear(); - this._redrawAxis(); + var hue, color, borderColor; + if (this.style === Graph3d.STYLE.DOTCOLOR) { + // calculate the color based on the value + hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } else if (this.style === Graph3d.STYLE.DOTSIZE) { + color = this.colorDot; + borderColor = this.colorDotBorder; + } else { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } - if (this.style === Graph3d.STYLE.GRID || this.style === Graph3d.STYLE.SURFACE) { - this._redrawDataGrid(); - } else if (this.style === Graph3d.STYLE.LINE) { - this._redrawDataLine(); - } else if (this.style === Graph3d.STYLE.BAR || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { - this._redrawDataBar(); - } else { - // style is DOT, DOTLINE, DOTCOLOR, DOTSIZE - this._redrawDataDot(); + // draw the circle + ctx.lineWidth = 1; + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + ctx.beginPath(); + ctx.arc(point.screen.x, point.screen.y, radius, 0, Math.PI * 2, true); + ctx.fill(); + ctx.stroke(); } - - this._redrawInfo(); - this._redrawLegend(); }; /** - * Clear the canvas before redrawing + * Draw all datapoints as bars. + * This function can be used when the style is 'bar', 'bar-color', or 'bar-size' */ - Graph3d.prototype._redrawClear = function () { + Graph3d.prototype._redrawDataBar = function () { var canvas = this.frame.canvas; var ctx = canvas.getContext('2d'); + var i, j, surface, corners; - ctx.clearRect(0, 0, canvas.width, canvas.height); - }; + if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? - /** - * Redraw the legend showing the colors - */ - Graph3d.prototype._redrawLegend = function () { - var y; + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; - if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { + // calculate the distance from the point at the bottom to the camera + var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); + this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + } - var dotSize = this.frame.clientWidth * 0.02; + // order the translated points by depth + var sortDepth = function sortDepth(a, b) { + return b.dist - a.dist; + }; + this.dataPoints.sort(sortDepth); - var widthMin, widthMax; - if (this.style === Graph3d.STYLE.DOTSIZE) { - widthMin = dotSize / 2; // px - widthMax = dotSize / 2 + dotSize * 2; // Todo: put this in one function + // draw the datapoints as bars + var xWidth = this.xBarWidth / 2; + var yWidth = this.yBarWidth / 2; + for (i = 0; i < this.dataPoints.length; i++) { + var point = this.dataPoints[i]; + + // determine color + var hue, color, borderColor; + if (this.style === Graph3d.STYLE.BARCOLOR) { + // calculate the color based on the value + hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); + } else if (this.style === Graph3d.STYLE.BARSIZE) { + color = this.colorDot; + borderColor = this.colorDotBorder; } else { - widthMin = 20; // px - widthMax = 20; // px + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; + color = this._hsv2rgb(hue, 1, 1); + borderColor = this._hsv2rgb(hue, 1, 0.8); } - var height = Math.max(this.frame.clientHeight * 0.25, 100); - var top = this.margin; - var right = this.frame.clientWidth - this.margin; - var left = right - widthMax; - var bottom = top + height; - } + // calculate size for the bar + if (this.style === Graph3d.STYLE.BARSIZE) { + xWidth = this.xBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); + yWidth = this.yBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); + } - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); - ctx.lineWidth = 1; - ctx.font = '14px arial'; // TODO: put in options + // calculate all corner points + var me = this; + var point3d = point.point; + var top = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, point3d.z) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, point3d.z) }]; + var bottom = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, this.zMin) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, this.zMin) }]; - if (this.style === Graph3d.STYLE.DOTCOLOR) { - // draw the color bar - var ymin = 0; - var ymax = height; // Todo: make height customizable - for (y = ymin; y < ymax; y++) { - var f = (y - ymin) / (ymax - ymin); + // calculate screen location of the points + top.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); + bottom.forEach(function (obj) { + obj.screen = me._convert3Dto2D(obj.point); + }); - //var width = (dotSize / 2 + (1-f) * dotSize * 2); // Todo: put this in one function - var hue = f * 240; - var color = this._hsv2rgb(hue, 1, 1); + // create five sides, calculate both corner points and center points + var surfaces = [{ corners: top, center: Point3d.avg(bottom[0].point, bottom[2].point) }, { corners: [top[0], top[1], bottom[1], bottom[0]], center: Point3d.avg(bottom[1].point, bottom[0].point) }, { corners: [top[1], top[2], bottom[2], bottom[1]], center: Point3d.avg(bottom[2].point, bottom[1].point) }, { corners: [top[2], top[3], bottom[3], bottom[2]], center: Point3d.avg(bottom[3].point, bottom[2].point) }, { corners: [top[3], top[0], bottom[0], bottom[3]], center: Point3d.avg(bottom[0].point, bottom[3].point) }]; + point.surfaces = surfaces; - ctx.strokeStyle = color; - ctx.beginPath(); - ctx.moveTo(left, top + y); - ctx.lineTo(right, top + y); - ctx.stroke(); + // calculate the distance of each of the surface centers to the camera + for (j = 0; j < surfaces.length; j++) { + surface = surfaces[j]; + var transCenter = this._convertPointToTranslation(surface.center); + surface.dist = this.showPerspective ? transCenter.length() : -transCenter.z; + // TODO: this dept calculation doesn't work 100% of the cases due to perspective, + // but the current solution is fast/simple and works in 99.9% of all cases + // the issue is visible in example 14, with graph.setCameraPosition({horizontal: 2.97, vertical: 0.5, distance: 0.9}) } - ctx.strokeStyle = this.colorAxis; - ctx.strokeRect(left, top, widthMax, height); - } + // order the surfaces by their (translated) depth + surfaces.sort(function (a, b) { + var diff = b.dist - a.dist; + if (diff) return diff; - if (this.style === Graph3d.STYLE.DOTSIZE) { - // draw border around color bar - ctx.strokeStyle = this.colorAxis; - ctx.fillStyle = this.colorDot; - ctx.beginPath(); - ctx.moveTo(left, top); - ctx.lineTo(right, top); - ctx.lineTo(right - widthMax + widthMin, bottom); - ctx.lineTo(left, bottom); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); - } + // if equal depth, sort the top surface last + if (a.corners === top) return 1; + if (b.corners === top) return -1; - if (this.style === Graph3d.STYLE.DOTCOLOR || this.style === Graph3d.STYLE.DOTSIZE) { - // print values along the color bar - var gridLineLen = 5; // px - var step = new StepNumber(this.valueMin, this.valueMax, (this.valueMax - this.valueMin) / 5, true); - step.start(); - if (step.getCurrent() < this.valueMin) { - step.next(); - } - while (!step.end()) { - y = bottom - (step.getCurrent() - this.valueMin) / (this.valueMax - this.valueMin) * height; + // both are equal + return 0; + }); + // draw the ordered surfaces + ctx.lineWidth = 1; + ctx.strokeStyle = borderColor; + ctx.fillStyle = color; + // NOTE: we start at j=2 instead of j=0 as we don't need to draw the two surfaces at the backside + for (j = 2; j < surfaces.length; j++) { + surface = surfaces[j]; + corners = surface.corners; ctx.beginPath(); - ctx.moveTo(left - gridLineLen, y); - ctx.lineTo(left, y); + ctx.moveTo(corners[3].screen.x, corners[3].screen.y); + ctx.lineTo(corners[0].screen.x, corners[0].screen.y); + ctx.lineTo(corners[1].screen.x, corners[1].screen.y); + ctx.lineTo(corners[2].screen.x, corners[2].screen.y); + ctx.lineTo(corners[3].screen.x, corners[3].screen.y); + ctx.fill(); ctx.stroke(); - - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.colorAxis; - ctx.fillText(step.getCurrent(), left - 2 * gridLineLen, y); - - step.next(); } - - ctx.textAlign = 'right'; - ctx.textBaseline = 'top'; - var label = this.legendLabel; - ctx.fillText(label, right, bottom + this.margin); } }; /** - * Redraw the filter + * Draw a line through all datapoints. + * This function can be used when the style is 'line' */ - Graph3d.prototype._redrawFilter = function () { - this.frame.filter.innerHTML = ''; + Graph3d.prototype._redrawDataLine = function () { + var canvas = this.frame.canvas, + ctx = canvas.getContext('2d'), + point, + i; - if (this.dataFilter) { - var options = { - 'visible': this.showAnimationControls - }; - var slider = new Slider(this.frame.filter, options); - this.frame.filter.slider = slider; + if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? - // TODO: css here is not nice here... - this.frame.filter.style.padding = '10px'; - //this.frame.filter.style.backgroundColor = '#EFEFEF'; + // calculate the translations of all points + for (i = 0; i < this.dataPoints.length; i++) { + var trans = this._convertPointToTranslation(this.dataPoints[i].point); + var screen = this._convertTranslationToScreen(trans); - slider.setValues(this.dataFilter.values); - slider.setPlayInterval(this.animationInterval); + this.dataPoints[i].trans = trans; + this.dataPoints[i].screen = screen; + } - // create an event handler - var me = this; - var onchange = function onchange() { - var index = slider.getIndex(); + // start the line + if (this.dataPoints.length > 0) { + point = this.dataPoints[0]; - me.dataFilter.selectValue(index); - me.dataPoints = me.dataFilter._getDataPoints(); + ctx.lineWidth = 1; // TODO: make customizable + ctx.strokeStyle = 'blue'; // TODO: make customizable + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + } - me.redraw(); - }; - slider.setOnChangeCallback(onchange); - } else { - this.frame.filter.slider = undefined; + // draw the datapoints as colored circles + for (i = 1; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + ctx.lineTo(point.screen.x, point.screen.y); + } + + // finish the line + if (this.dataPoints.length > 0) { + ctx.stroke(); } }; /** - * Redraw the slider - */ - Graph3d.prototype._redrawSlider = function () { - if (this.frame.filter.slider !== undefined) { - this.frame.filter.slider.redraw(); + * Start a moving operation inside the provided parent element + * @param {Event} event The event that occurred (required for + * retrieving the mouse position) + */ + Graph3d.prototype._onMouseDown = function (event) { + event = event || window.event; + + // check if mouse is still down (may be up when focus is lost for example + // in an iframe) + if (this.leftButtonDown) { + this._onMouseUp(event); } - }; - /** - * Redraw common information - */ - Graph3d.prototype._redrawInfo = function () { - if (this.dataFilter) { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); + // only react on left mouse button down + this.leftButtonDown = event.which ? event.which === 1 : event.button === 1; + if (!this.leftButtonDown && !this.touchDown) return; - ctx.font = '14px arial'; // TODO: put in options - ctx.lineStyle = 'gray'; - ctx.fillStyle = 'gray'; - ctx.textAlign = 'left'; - ctx.textBaseline = 'top'; + // get mouse position (different code for IE and all other browsers) + this.startMouseX = getMouseX(event); + this.startMouseY = getMouseY(event); - var x = this.margin; - var y = this.margin; - ctx.fillText(this.dataFilter.getLabel() + ': ' + this.dataFilter.getSelectedValue(), x, y); - } + this.startStart = new Date(this.start); + this.startEnd = new Date(this.end); + this.startArmRotation = this.camera.getArmRotation(); + + this.frame.style.cursor = 'move'; + + // add event listeners to handle moving the contents + // we store the function onmousemove and onmouseup in the graph, so we can + // remove the eventlisteners lateron in the function mouseUp() + var me = this; + this.onmousemove = function (event) { + me._onMouseMove(event); + }; + this.onmouseup = function (event) { + me._onMouseUp(event); + }; + util.addEventListener(document, 'mousemove', me.onmousemove); + util.addEventListener(document, 'mouseup', me.onmouseup); + util.preventDefault(event); }; /** - * Redraw the axis + * Perform moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {Event} event Well, eehh, the event */ - Graph3d.prototype._redrawAxis = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), - from, - to, - step, - prettyStep, - text, - xText, - yText, - zText, - offset, - xOffset, - yOffset, - xMin2d, - xMax2d; - - // TODO: get the actual rendered style of the containerElement - //ctx.font = this.containerElement.style.font; - ctx.font = 24 / this.camera.getArmLength() + 'px arial'; - - // calculate the length for the short grid lines - var gridLenX = 0.025 / this.scale.x; - var gridLenY = 0.025 / this.scale.y; - var textMargin = 5 / this.camera.getArmLength(); // px - var armAngle = this.camera.getArmRotation().horizontal; - - // draw x-grid lines - ctx.lineWidth = 1; - prettyStep = this.defaultXStep === undefined; - step = new StepNumber(this.xMin, this.xMax, this.xStep, prettyStep); - step.start(); - if (step.getCurrent() < this.xMin) { - step.next(); - } - while (!step.end()) { - var x = step.getCurrent(); + Graph3d.prototype._onMouseMove = function (event) { + event = event || window.event; - if (this.showGrid) { - from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); - ctx.strokeStyle = this.colorGrid; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - } else { - from = this._convert3Dto2D(new Point3d(x, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMin + gridLenX, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + // calculate change in mouse position + var diffX = parseFloat(getMouseX(event)) - this.startMouseX; + var diffY = parseFloat(getMouseY(event)) - this.startMouseY; - from = this._convert3Dto2D(new Point3d(x, this.yMax, this.zMin)); - to = this._convert3Dto2D(new Point3d(x, this.yMax - gridLenX, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - } + var horizontalNew = this.startArmRotation.horizontal + diffX / 200; + var verticalNew = this.startArmRotation.vertical + diffY / 200; - yText = Math.cos(armAngle) > 0 ? this.yMin : this.yMax; - text = this._convert3Dto2D(new Point3d(x, yText, this.zMin)); - if (Math.cos(armAngle * 2) > 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - text.y += textMargin; - } else if (Math.sin(armAngle * 2) < 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.colorAxis; - ctx.fillText(' ' + this.xValueLabel(step.getCurrent()) + ' ', text.x, text.y); + var snapAngle = 4; // degrees + var snapValue = Math.sin(snapAngle / 360 * 2 * Math.PI); - step.next(); + // snap horizontally to nice angles at 0pi, 0.5pi, 1pi, 1.5pi, etc... + // the -0.001 is to take care that the vertical axis is always drawn at the left front corner + if (Math.abs(Math.sin(horizontalNew)) < snapValue) { + horizontalNew = Math.round(horizontalNew / Math.PI) * Math.PI - 0.001; + } + if (Math.abs(Math.cos(horizontalNew)) < snapValue) { + horizontalNew = (Math.round(horizontalNew / Math.PI - 0.5) + 0.5) * Math.PI - 0.001; } - // draw y-grid lines - ctx.lineWidth = 1; - prettyStep = this.defaultYStep === undefined; - step = new StepNumber(this.yMin, this.yMax, this.yStep, prettyStep); - step.start(); - if (step.getCurrent() < this.yMin) { - step.next(); + // snap vertically to nice angles + if (Math.abs(Math.sin(verticalNew)) < snapValue) { + verticalNew = Math.round(verticalNew / Math.PI) * Math.PI; + } + if (Math.abs(Math.cos(verticalNew)) < snapValue) { + verticalNew = (Math.round(verticalNew / Math.PI - 0.5) + 0.5) * Math.PI; } - while (!step.end()) { - if (this.showGrid) { - from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.colorGrid; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - } else { - from = this._convert3Dto2D(new Point3d(this.xMin, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMin + gridLenY, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - from = this._convert3Dto2D(new Point3d(this.xMax, step.getCurrent(), this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax - gridLenY, step.getCurrent(), this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - } + this.camera.setArmRotation(horizontalNew, verticalNew); + this.redraw(); - xText = Math.sin(armAngle) > 0 ? this.xMin : this.xMax; - text = this._convert3Dto2D(new Point3d(xText, step.getCurrent(), this.zMin)); - if (Math.cos(armAngle * 2) < 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - text.y += textMargin; - } else if (Math.sin(armAngle * 2) > 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.colorAxis; - ctx.fillText(' ' + this.yValueLabel(step.getCurrent()) + ' ', text.x, text.y); + // fire a cameraPositionChange event + var parameters = this.getCameraPosition(); + this.emit('cameraPositionChange', parameters); - step.next(); - } + util.preventDefault(event); + }; - // draw z-grid lines and axis - ctx.lineWidth = 1; - prettyStep = this.defaultZStep === undefined; - step = new StepNumber(this.zMin, this.zMax, this.zStep, prettyStep); - step.start(); - if (step.getCurrent() < this.zMin) { - step.next(); - } - xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; - yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; - while (!step.end()) { - // TODO: make z-grid lines really 3d? - from = this._convert3Dto2D(new Point3d(xText, yText, step.getCurrent())); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(from.x - textMargin, from.y); - ctx.stroke(); + /** + * Stop moving operating. + * This function activated from within the funcion Graph.mouseDown(). + * @param {event} event The event + */ + Graph3d.prototype._onMouseUp = function (event) { + this.frame.style.cursor = 'auto'; + this.leftButtonDown = false; - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.colorAxis; - ctx.fillText(this.zValueLabel(step.getCurrent()) + ' ', from.x - 5, from.y); + // remove event listeners here + util.removeEventListener(document, 'mousemove', this.onmousemove); + util.removeEventListener(document, 'mouseup', this.onmouseup); + util.preventDefault(event); + }; - step.next(); - } - ctx.lineWidth = 1; - from = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - to = this._convert3Dto2D(new Point3d(xText, yText, this.zMax)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + /** + * After having moved the mouse, a tooltip should pop up when the mouse is resting on a data point + * @param {Event} event A mouse move event + */ + Graph3d.prototype._onTooltip = function (event) { + var delay = 300; // ms + var boundingRect = this.frame.getBoundingClientRect(); + var mouseX = getMouseX(event) - boundingRect.left; + var mouseY = getMouseY(event) - boundingRect.top; - // draw x-axis - ctx.lineWidth = 1; - // line at yMin - xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); - xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(xMin2d.x, xMin2d.y); - ctx.lineTo(xMax2d.x, xMax2d.y); - ctx.stroke(); - // line at ymax - xMin2d = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); - xMax2d = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(xMin2d.x, xMin2d.y); - ctx.lineTo(xMax2d.x, xMax2d.y); - ctx.stroke(); + if (!this.showTooltip) { + return; + } - // draw y-axis - ctx.lineWidth = 1; - // line at xMin - from = this._convert3Dto2D(new Point3d(this.xMin, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMin, this.yMax, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); - // line at xMax - from = this._convert3Dto2D(new Point3d(this.xMax, this.yMin, this.zMin)); - to = this._convert3Dto2D(new Point3d(this.xMax, this.yMax, this.zMin)); - ctx.strokeStyle = this.colorAxis; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(to.x, to.y); - ctx.stroke(); + if (this.tooltipTimeout) { + clearTimeout(this.tooltipTimeout); + } - // draw x-label - var xLabel = this.xLabel; - if (xLabel.length > 0) { - yOffset = 0.1 / this.scale.y; - xText = (this.xMin + this.xMax) / 2; - yText = Math.cos(armAngle) > 0 ? this.yMin - yOffset : this.yMax + yOffset; - text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - if (Math.cos(armAngle * 2) > 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - } else if (Math.sin(armAngle * 2) < 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; - } - ctx.fillStyle = this.colorAxis; - ctx.fillText(xLabel, text.x, text.y); + // (delayed) display of a tooltip only if no mouse button is down + if (this.leftButtonDown) { + this._hideTooltip(); + return; } - // draw y-label - var yLabel = this.yLabel; - if (yLabel.length > 0) { - xOffset = 0.1 / this.scale.x; - xText = Math.sin(armAngle) > 0 ? this.xMin - xOffset : this.xMax + xOffset; - yText = (this.yMin + this.yMax) / 2; - text = this._convert3Dto2D(new Point3d(xText, yText, this.zMin)); - if (Math.cos(armAngle * 2) < 0) { - ctx.textAlign = 'center'; - ctx.textBaseline = 'top'; - } else if (Math.sin(armAngle * 2) > 0) { - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - } else { - ctx.textAlign = 'left'; - ctx.textBaseline = 'middle'; + if (this.tooltip && this.tooltip.dataPoint) { + // tooltip is currently visible + var dataPoint = this._dataPointFromXY(mouseX, mouseY); + if (dataPoint !== this.tooltip.dataPoint) { + // datapoint changed + if (dataPoint) { + this._showTooltip(dataPoint); + } else { + this._hideTooltip(); + } } - ctx.fillStyle = this.colorAxis; - ctx.fillText(yLabel, text.x, text.y); - } + } else { + // tooltip is currently not visible + var me = this; + this.tooltipTimeout = setTimeout(function () { + me.tooltipTimeout = null; - // draw z-label - var zLabel = this.zLabel; - if (zLabel.length > 0) { - offset = 30; // pixels. // TODO: relate to the max width of the values on the z axis? - xText = Math.cos(armAngle) > 0 ? this.xMin : this.xMax; - yText = Math.sin(armAngle) < 0 ? this.yMin : this.yMax; - zText = (this.zMin + this.zMax) / 2; - text = this._convert3Dto2D(new Point3d(xText, yText, zText)); - ctx.textAlign = 'right'; - ctx.textBaseline = 'middle'; - ctx.fillStyle = this.colorAxis; - ctx.fillText(zLabel, text.x - offset, text.y); + // show a tooltip if we have a data point + var dataPoint = me._dataPointFromXY(mouseX, mouseY); + if (dataPoint) { + me._showTooltip(dataPoint); + } + }, delay); } }; /** - * Calculate the color based on the given value. - * @param {Number} H Hue, a value be between 0 and 360 - * @param {Number} S Saturation, a value between 0 and 1 - * @param {Number} V Value, a value between 0 and 1 + * Event handler for touchstart event on mobile devices */ - Graph3d.prototype._hsv2rgb = function (H, S, V) { - var R, G, B, C, Hi, X; - - C = V * S; - Hi = Math.floor(H / 60); // hi = 0,1,2,3,4,5 - X = C * (1 - Math.abs(H / 60 % 2 - 1)); + Graph3d.prototype._onTouchStart = function (event) { + this.touchDown = true; - switch (Hi) { - case 0: - R = C;G = X;B = 0;break; - case 1: - R = X;G = C;B = 0;break; - case 2: - R = 0;G = C;B = X;break; - case 3: - R = 0;G = X;B = C;break; - case 4: - R = X;G = 0;B = C;break; - case 5: - R = C;G = 0;B = X;break; + var me = this; + this.ontouchmove = function (event) { + me._onTouchMove(event); + }; + this.ontouchend = function (event) { + me._onTouchEnd(event); + }; + util.addEventListener(document, 'touchmove', me.ontouchmove); + util.addEventListener(document, 'touchend', me.ontouchend); - default: - R = 0;G = 0;B = 0;break; - } + this._onMouseDown(event); + }; - return 'RGB(' + parseInt(R * 255) + ',' + parseInt(G * 255) + ',' + parseInt(B * 255) + ')'; + /** + * Event handler for touchmove event on mobile devices + */ + Graph3d.prototype._onTouchMove = function (event) { + this._onMouseMove(event); }; /** - * Draw all datapoints as a grid - * This function can be used when the style is 'grid' + * Event handler for touchend event on mobile devices */ - Graph3d.prototype._redrawDataGrid = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), - point, - right, - top, - cross, - i, - topSideVisible, - fillStyle, - strokeStyle, - lineWidth, - h, - s, - v, - zAvg; + Graph3d.prototype._onTouchEnd = function (event) { + this.touchDown = false; - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + util.removeEventListener(document, 'touchmove', this.ontouchmove); + util.removeEventListener(document, 'touchend', this.ontouchend); - // calculate the translations and screen position of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); + this._onMouseUp(event); + }; - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + /** + * Event handler for mouse wheel event, used to zoom the graph + * Code from http://adomas.org/javascript-mouse-wheel/ + * @param {event} event The event + */ + Graph3d.prototype._onWheel = function (event) { + if (!event) /* For IE. */ + event = window.event; - // calculate the translation of the point at the bottom (needed for sorting) - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; + // retrieve delta + var delta = 0; + if (event.wheelDelta) { + /* IE/Opera. */ + delta = event.wheelDelta / 120; + } else if (event.detail) { + /* Mozilla case. */ + // In Mozilla, sign of delta is different than in IE. + // Also, delta is multiple of 3. + delta = -event.detail / 3; } - // sort the points on depth of their (x,y) position (not on z) - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); + // If delta is nonzero, handle it. + // Basically, delta is now positive if wheel was scrolled up, + // and negative, if wheel was scrolled down. + if (delta) { + var oldLength = this.camera.getArmLength(); + var newLength = oldLength * (1 - delta / 10); - if (this.style === Graph3d.STYLE.SURFACE) { - for (i = 0; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - right = this.dataPoints[i].pointRight; - top = this.dataPoints[i].pointTop; - cross = this.dataPoints[i].pointCross; + this.camera.setArmLength(newLength); + this.redraw(); - if (point !== undefined && right !== undefined && top !== undefined && cross !== undefined) { + this._hideTooltip(); + } - if (this.showGrayBottom || this.showShadow) { - // calculate the cross product of the two vectors from center - // to left and right, in order to know whether we are looking at the - // bottom or at the top side. We can also use the cross product - // for calculating light intensity - var aDiff = Point3d.subtract(cross.trans, point.trans); - var bDiff = Point3d.subtract(top.trans, right.trans); - var crossproduct = Point3d.crossProduct(aDiff, bDiff); - var len = crossproduct.length(); - // FIXME: there is a bug with determining the surface side (shadow or colored) + // fire a cameraPositionChange event + var parameters = this.getCameraPosition(); + this.emit('cameraPositionChange', parameters); - topSideVisible = crossproduct.z > 0; - } else { - topSideVisible = true; - } + // Prevent default actions caused by mouse wheel. + // That might be ugly, but we handle scrolls somehow + // anyway, so don't bother here.. + util.preventDefault(event); + }; - if (topSideVisible) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + right.point.z + top.point.z + cross.point.z) / 4; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - s = 1; // saturation + /** + * Test whether a point lies inside given 2D triangle + * @param {Point2d} point + * @param {Point2d[]} triangle + * @return {boolean} Returns true if given point lies inside or on the edge of the triangle + * @private + */ + Graph3d.prototype._insideTriangle = function (point, triangle) { + var a = triangle[0], + b = triangle[1], + c = triangle[2]; - if (this.showShadow) { - v = Math.min(1 + crossproduct.x / len / 2, 1); // value. TODO: scale - fillStyle = this._hsv2rgb(h, s, v); - strokeStyle = fillStyle; - } else { - v = 1; - fillStyle = this._hsv2rgb(h, s, v); - strokeStyle = this.colorAxis; + function sign(x) { + return x > 0 ? 1 : x < 0 ? -1 : 0; + } + + var as = sign((b.x - a.x) * (point.y - a.y) - (b.y - a.y) * (point.x - a.x)); + var bs = sign((c.x - b.x) * (point.y - b.y) - (c.y - b.y) * (point.x - b.x)); + var cs = sign((a.x - c.x) * (point.y - c.y) - (a.y - c.y) * (point.x - c.x)); + + // each of the three signs must be either equal to each other or zero + return (as == 0 || bs == 0 || as == bs) && (bs == 0 || cs == 0 || bs == cs) && (as == 0 || cs == 0 || as == cs); + }; + + /** + * Find a data point close to given screen position (x, y) + * @param {Number} x + * @param {Number} y + * @return {Object | null} The closest data point or null if not close to any data point + * @private + */ + Graph3d.prototype._dataPointFromXY = function (x, y) { + var i, + distMax = 100, + // px + dataPoint = null, + closestDataPoint = null, + closestDist = null, + center = new Point2d(x, y); + + if (this.style === Graph3d.STYLE.BAR || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { + // the data points are ordered from far away to closest + for (i = this.dataPoints.length - 1; i >= 0; i--) { + dataPoint = this.dataPoints[i]; + var surfaces = dataPoint.surfaces; + if (surfaces) { + for (var s = surfaces.length - 1; s >= 0; s--) { + // split each surface in two triangles, and see if the center point is inside one of these + var surface = surfaces[s]; + var corners = surface.corners; + var triangle1 = [corners[0].screen, corners[1].screen, corners[2].screen]; + var triangle2 = [corners[2].screen, corners[3].screen, corners[0].screen]; + if (this._insideTriangle(center, triangle1) || this._insideTriangle(center, triangle2)) { + // return immediately at the first hit + return dataPoint; } - } else { - fillStyle = 'gray'; - strokeStyle = this.colorAxis; } - lineWidth = 0.5; - - ctx.lineWidth = lineWidth; - ctx.fillStyle = fillStyle; - ctx.strokeStyle = strokeStyle; - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(right.screen.x, right.screen.y); - ctx.lineTo(cross.screen.x, cross.screen.y); - ctx.lineTo(top.screen.x, top.screen.y); - ctx.closePath(); - ctx.fill(); - ctx.stroke(); } } } else { - // grid style + // find the closest data point, using distance to the center of the point on 2d screen for (i = 0; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - right = this.dataPoints[i].pointRight; - top = this.dataPoints[i].pointTop; + dataPoint = this.dataPoints[i]; + var point = dataPoint.screen; + if (point) { + var distX = Math.abs(x - point.x); + var distY = Math.abs(y - point.y); + var dist = Math.sqrt(distX * distX + distY * distY); - if (point !== undefined) { - if (this.showPerspective) { - lineWidth = 2 / -point.trans.z; - } else { - lineWidth = 2 * -(this.eye.z / this.camera.getArmLength()); + if ((closestDist === null || dist < closestDist) && dist < distMax) { + closestDist = dist; + closestDataPoint = dataPoint; } } - - if (point !== undefined && right !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + right.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - - ctx.lineWidth = lineWidth; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(right.screen.x, right.screen.y); - ctx.stroke(); - } - - if (point !== undefined && top !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + top.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - - ctx.lineWidth = lineWidth; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(top.screen.x, top.screen.y); - ctx.stroke(); - } } } + + return closestDataPoint; }; /** - * Draw all datapoints as dots. - * This function can be used when the style is 'dot' or 'dot-line' + * Display a tooltip for given data point + * @param {Object} dataPoint + * @private */ - Graph3d.prototype._redrawDataDot = function () { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); - var i; + Graph3d.prototype._showTooltip = function (dataPoint) { + var content, line, dot; - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + if (!this.tooltip) { + content = document.createElement('div'); + content.style.position = 'absolute'; + content.style.padding = '10px'; + content.style.border = '1px solid #4d4d4d'; + content.style.color = '#1a1a1a'; + content.style.background = 'rgba(255,255,255,0.7)'; + content.style.borderRadius = '2px'; + content.style.boxShadow = '5px 5px 10px rgba(128,128,128,0.5)'; - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; + line = document.createElement('div'); + line.style.position = 'absolute'; + line.style.height = '40px'; + line.style.width = '0'; + line.style.borderLeft = '1px solid #4d4d4d'; - // calculate the distance from the point at the bottom to the camera - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; - } + dot = document.createElement('div'); + dot.style.position = 'absolute'; + dot.style.height = '0'; + dot.style.width = '0'; + dot.style.border = '5px solid #4d4d4d'; + dot.style.borderRadius = '5px'; - // order the translated points by depth - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); + this.tooltip = { + dataPoint: null, + dom: { + content: content, + line: line, + dot: dot + } + }; + } else { + content = this.tooltip.dom.content; + line = this.tooltip.dom.line; + dot = this.tooltip.dom.dot; + } - // draw the datapoints as colored circles - var dotSize = this.frame.clientWidth * 0.02; // px - for (i = 0; i < this.dataPoints.length; i++) { - var point = this.dataPoints[i]; + this._hideTooltip(); - if (this.style === Graph3d.STYLE.DOTLINE) { - // draw a vertical line from the bottom to the graph value - //var from = this._convert3Dto2D(new Point3d(point.point.x, point.point.y, this.zMin)); - var from = this._convert3Dto2D(point.bottom); - ctx.lineWidth = 1; - ctx.strokeStyle = this.colorGrid; - ctx.beginPath(); - ctx.moveTo(from.x, from.y); - ctx.lineTo(point.screen.x, point.screen.y); - ctx.stroke(); - } + this.tooltip.dataPoint = dataPoint; + if (typeof this.showTooltip === 'function') { + content.innerHTML = this.showTooltip(dataPoint.point); + } else { + content.innerHTML = '' + '' + '' + '' + '
x:' + dataPoint.point.x + '
y:' + dataPoint.point.y + '
z:' + dataPoint.point.z + '
'; + } - // calculate radius for the circle - var size; - if (this.style === Graph3d.STYLE.DOTSIZE) { - size = dotSize / 2 + 2 * dotSize * (point.point.value - this.valueMin) / (this.valueMax - this.valueMin); - } else { - size = dotSize; - } + content.style.left = '0'; + content.style.top = '0'; + this.frame.appendChild(content); + this.frame.appendChild(line); + this.frame.appendChild(dot); - var radius; - if (this.showPerspective) { - radius = size / -point.trans.z; - } else { - radius = size * -(this.eye.z / this.camera.getArmLength()); - } - if (radius < 0) { - radius = 0; - } + // calculate sizes + var contentWidth = content.offsetWidth; + var contentHeight = content.offsetHeight; + var lineHeight = line.offsetHeight; + var dotWidth = dot.offsetWidth; + var dotHeight = dot.offsetHeight; - var hue, color, borderColor; - if (this.style === Graph3d.STYLE.DOTCOLOR) { - // calculate the color based on the value - hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } else if (this.style === Graph3d.STYLE.DOTSIZE) { - color = this.colorDot; - borderColor = this.colorDotBorder; - } else { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } + var left = dataPoint.screen.x - contentWidth / 2; + left = Math.min(Math.max(left, 10), this.frame.clientWidth - 10 - contentWidth); - // draw the circle - ctx.lineWidth = 1; - ctx.strokeStyle = borderColor; - ctx.fillStyle = color; - ctx.beginPath(); - ctx.arc(point.screen.x, point.screen.y, radius, 0, Math.PI * 2, true); - ctx.fill(); - ctx.stroke(); - } + line.style.left = dataPoint.screen.x + 'px'; + line.style.top = dataPoint.screen.y - lineHeight + 'px'; + content.style.left = left + 'px'; + content.style.top = dataPoint.screen.y - lineHeight - contentHeight + 'px'; + dot.style.left = dataPoint.screen.x - dotWidth / 2 + 'px'; + dot.style.top = dataPoint.screen.y - dotHeight / 2 + 'px'; }; /** - * Draw all datapoints as bars. - * This function can be used when the style is 'bar', 'bar-color', or 'bar-size' + * Hide the tooltip when displayed + * @private */ - Graph3d.prototype._redrawDataBar = function () { - var canvas = this.frame.canvas; - var ctx = canvas.getContext('2d'); - var i, j, surface, corners; - - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? - - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; - - // calculate the distance from the point at the bottom to the camera - var transBottom = this._convertPointToTranslation(this.dataPoints[i].bottom); - this.dataPoints[i].dist = this.showPerspective ? transBottom.length() : -transBottom.z; - } - - // order the translated points by depth - var sortDepth = function sortDepth(a, b) { - return b.dist - a.dist; - }; - this.dataPoints.sort(sortDepth); - - // draw the datapoints as bars - var xWidth = this.xBarWidth / 2; - var yWidth = this.yBarWidth / 2; - for (i = 0; i < this.dataPoints.length; i++) { - var point = this.dataPoints[i]; - - // determine color - var hue, color, borderColor; - if (this.style === Graph3d.STYLE.BARCOLOR) { - // calculate the color based on the value - hue = (1 - (point.point.value - this.valueMin) * this.scale.value) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } else if (this.style === Graph3d.STYLE.BARSIZE) { - color = this.colorDot; - borderColor = this.colorDotBorder; - } else { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - hue = (1 - (point.point.z - this.zMin) * this.scale.z / this.verticalRatio) * 240; - color = this._hsv2rgb(hue, 1, 1); - borderColor = this._hsv2rgb(hue, 1, 0.8); - } + Graph3d.prototype._hideTooltip = function () { + if (this.tooltip) { + this.tooltip.dataPoint = null; - // calculate size for the bar - if (this.style === Graph3d.STYLE.BARSIZE) { - xWidth = this.xBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); - yWidth = this.yBarWidth / 2 * ((point.point.value - this.valueMin) / (this.valueMax - this.valueMin) * 0.8 + 0.2); + for (var prop in this.tooltip.dom) { + if (this.tooltip.dom.hasOwnProperty(prop)) { + var elem = this.tooltip.dom[prop]; + if (elem && elem.parentNode) { + elem.parentNode.removeChild(elem); + } + } } + } + }; - // calculate all corner points - var me = this; - var point3d = point.point; - var top = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, point3d.z) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, point3d.z) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, point3d.z) }]; - var bottom = [{ point: new Point3d(point3d.x - xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y - yWidth, this.zMin) }, { point: new Point3d(point3d.x + xWidth, point3d.y + yWidth, this.zMin) }, { point: new Point3d(point3d.x - xWidth, point3d.y + yWidth, this.zMin) }]; + /**--------------------------------------------------------------------------**/ - // calculate screen location of the points - top.forEach(function (obj) { - obj.screen = me._convert3Dto2D(obj.point); - }); - bottom.forEach(function (obj) { - obj.screen = me._convert3Dto2D(obj.point); - }); + /** + * Get the horizontal mouse position from a mouse event + * @param {Event} event + * @return {Number} mouse x + */ + function getMouseX(event) { + if ('clientX' in event) return event.clientX; + return event.targetTouches[0] && event.targetTouches[0].clientX || 0; + } - // create five sides, calculate both corner points and center points - var surfaces = [{ corners: top, center: Point3d.avg(bottom[0].point, bottom[2].point) }, { corners: [top[0], top[1], bottom[1], bottom[0]], center: Point3d.avg(bottom[1].point, bottom[0].point) }, { corners: [top[1], top[2], bottom[2], bottom[1]], center: Point3d.avg(bottom[2].point, bottom[1].point) }, { corners: [top[2], top[3], bottom[3], bottom[2]], center: Point3d.avg(bottom[3].point, bottom[2].point) }, { corners: [top[3], top[0], bottom[0], bottom[3]], center: Point3d.avg(bottom[0].point, bottom[3].point) }]; - point.surfaces = surfaces; + /** + * Get the vertical mouse position from a mouse event + * @param {Event} event + * @return {Number} mouse y + */ + function getMouseY(event) { + if ('clientY' in event) return event.clientY; + return event.targetTouches[0] && event.targetTouches[0].clientY || 0; + } - // calculate the distance of each of the surface centers to the camera - for (j = 0; j < surfaces.length; j++) { - surface = surfaces[j]; - var transCenter = this._convertPointToTranslation(surface.center); - surface.dist = this.showPerspective ? transCenter.length() : -transCenter.z; - // TODO: this dept calculation doesn't work 100% of the cases due to perspective, - // but the current solution is fast/simple and works in 99.9% of all cases - // the issue is visible in example 14, with graph.setCameraPosition({horizontal: 2.97, vertical: 0.5, distance: 0.9}) - } + module.exports = Graph3d; - // order the surfaces by their (translated) depth - surfaces.sort(function (a, b) { - var diff = b.dist - a.dist; - if (diff) return diff; + // use use defaults - // if equal depth, sort the top surface last - if (a.corners === top) return 1; - if (b.corners === top) return -1; +/***/ }, +/* 7 */ +/***/ function(module, exports, __webpack_require__) { - // both are equal - return 0; - }); + 'use strict'; - // draw the ordered surfaces - ctx.lineWidth = 1; - ctx.strokeStyle = borderColor; - ctx.fillStyle = color; - // NOTE: we start at j=2 instead of j=0 as we don't need to draw the two surfaces at the backside - for (j = 2; j < surfaces.length; j++) { - surface = surfaces[j]; - corners = surface.corners; - ctx.beginPath(); - ctx.moveTo(corners[3].screen.x, corners[3].screen.y); - ctx.lineTo(corners[0].screen.x, corners[0].screen.y); - ctx.lineTo(corners[1].screen.x, corners[1].screen.y); - ctx.lineTo(corners[2].screen.x, corners[2].screen.y); - ctx.lineTo(corners[3].screen.x, corners[3].screen.y); - ctx.fill(); - ctx.stroke(); - } - } - }; + var Point3d = __webpack_require__(10); /** - * Draw a line through all datapoints. - * This function can be used when the style is 'line' + * @class Camera + * The camera is mounted on a (virtual) camera arm. The camera arm can rotate + * The camera is always looking in the direction of the origin of the arm. + * This way, the camera always rotates around one fixed point, the location + * of the camera arm. + * + * Documentation: + * http://en.wikipedia.org/wiki/3D_projection */ - Graph3d.prototype._redrawDataLine = function () { - var canvas = this.frame.canvas, - ctx = canvas.getContext('2d'), - point, - i; + function Camera() { + this.armLocation = new Point3d(); + this.armRotation = {}; + this.armRotation.horizontal = 0; + this.armRotation.vertical = 0; + this.armLength = 1.7; - if (this.dataPoints === undefined || this.dataPoints.length <= 0) return; // TODO: throw exception? + this.cameraLocation = new Point3d(); + this.cameraRotation = new Point3d(0.5 * Math.PI, 0, 0); - // calculate the translations of all points - for (i = 0; i < this.dataPoints.length; i++) { - var trans = this._convertPointToTranslation(this.dataPoints[i].point); - var screen = this._convertTranslationToScreen(trans); + this.calculateCameraOrientation(); + } - this.dataPoints[i].trans = trans; - this.dataPoints[i].screen = screen; - } + /** + * Set the location (origin) of the arm + * @param {Number} x Normalized value of x + * @param {Number} y Normalized value of y + * @param {Number} z Normalized value of z + */ + Camera.prototype.setArmLocation = function (x, y, z) { + this.armLocation.x = x; + this.armLocation.y = y; + this.armLocation.z = z; - // start the line - if (this.dataPoints.length > 0) { - point = this.dataPoints[0]; + this.calculateCameraOrientation(); + }; - ctx.lineWidth = 1; // TODO: make customizable - ctx.strokeStyle = 'blue'; // TODO: make customizable - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); + /** + * Set the rotation of the camera arm + * @param {Number} horizontal The horizontal rotation, between 0 and 2*PI. + * Optional, can be left undefined. + * @param {Number} vertical The vertical rotation, between 0 and 0.5*PI + * if vertical=0.5*PI, the graph is shown from the + * top. Optional, can be left undefined. + */ + Camera.prototype.setArmRotation = function (horizontal, vertical) { + if (horizontal !== undefined) { + this.armRotation.horizontal = horizontal; } - // draw the datapoints as colored circles - for (i = 1; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - ctx.lineTo(point.screen.x, point.screen.y); + if (vertical !== undefined) { + this.armRotation.vertical = vertical; + if (this.armRotation.vertical < 0) this.armRotation.vertical = 0; + if (this.armRotation.vertical > 0.5 * Math.PI) this.armRotation.vertical = 0.5 * Math.PI; } - // finish the line - if (this.dataPoints.length > 0) { - ctx.stroke(); - } - }; - - /** - * Start a moving operation inside the provided parent element - * @param {Event} event The event that occurred (required for - * retrieving the mouse position) - */ - Graph3d.prototype._onMouseDown = function (event) { - event = event || window.event; - - // check if mouse is still down (may be up when focus is lost for example - // in an iframe) - if (this.leftButtonDown) { - this._onMouseUp(event); - } - - // only react on left mouse button down - this.leftButtonDown = event.which ? event.which === 1 : event.button === 1; - if (!this.leftButtonDown && !this.touchDown) return; - - // get mouse position (different code for IE and all other browsers) - this.startMouseX = getMouseX(event); - this.startMouseY = getMouseY(event); - - this.startStart = new Date(this.start); - this.startEnd = new Date(this.end); - this.startArmRotation = this.camera.getArmRotation(); - - this.frame.style.cursor = 'move'; - - // add event listeners to handle moving the contents - // we store the function onmousemove and onmouseup in the graph, so we can - // remove the eventlisteners lateron in the function mouseUp() - var me = this; - this.onmousemove = function (event) { - me._onMouseMove(event); - }; - this.onmouseup = function (event) { - me._onMouseUp(event); - }; - util.addEventListener(document, 'mousemove', me.onmousemove); - util.addEventListener(document, 'mouseup', me.onmouseup); - util.preventDefault(event); - }; - - /** - * Perform moving operating. - * This function activated from within the funcion Graph.mouseDown(). - * @param {Event} event Well, eehh, the event - */ - Graph3d.prototype._onMouseMove = function (event) { - event = event || window.event; - - // calculate change in mouse position - var diffX = parseFloat(getMouseX(event)) - this.startMouseX; - var diffY = parseFloat(getMouseY(event)) - this.startMouseY; - - var horizontalNew = this.startArmRotation.horizontal + diffX / 200; - var verticalNew = this.startArmRotation.vertical + diffY / 200; - - var snapAngle = 4; // degrees - var snapValue = Math.sin(snapAngle / 360 * 2 * Math.PI); - - // snap horizontally to nice angles at 0pi, 0.5pi, 1pi, 1.5pi, etc... - // the -0.001 is to take care that the vertical axis is always drawn at the left front corner - if (Math.abs(Math.sin(horizontalNew)) < snapValue) { - horizontalNew = Math.round(horizontalNew / Math.PI) * Math.PI - 0.001; - } - if (Math.abs(Math.cos(horizontalNew)) < snapValue) { - horizontalNew = (Math.round(horizontalNew / Math.PI - 0.5) + 0.5) * Math.PI - 0.001; - } - - // snap vertically to nice angles - if (Math.abs(Math.sin(verticalNew)) < snapValue) { - verticalNew = Math.round(verticalNew / Math.PI) * Math.PI; - } - if (Math.abs(Math.cos(verticalNew)) < snapValue) { - verticalNew = (Math.round(verticalNew / Math.PI - 0.5) + 0.5) * Math.PI; - } - - this.camera.setArmRotation(horizontalNew, verticalNew); - this.redraw(); - - // fire a cameraPositionChange event - var parameters = this.getCameraPosition(); - this.emit('cameraPositionChange', parameters); - - util.preventDefault(event); - }; - - /** - * Stop moving operating. - * This function activated from within the funcion Graph.mouseDown(). - * @param {event} event The event - */ - Graph3d.prototype._onMouseUp = function (event) { - this.frame.style.cursor = 'auto'; - this.leftButtonDown = false; - - // remove event listeners here - util.removeEventListener(document, 'mousemove', this.onmousemove); - util.removeEventListener(document, 'mouseup', this.onmouseup); - util.preventDefault(event); - }; - - /** - * After having moved the mouse, a tooltip should pop up when the mouse is resting on a data point - * @param {Event} event A mouse move event - */ - Graph3d.prototype._onTooltip = function (event) { - var delay = 300; // ms - var boundingRect = this.frame.getBoundingClientRect(); - var mouseX = getMouseX(event) - boundingRect.left; - var mouseY = getMouseY(event) - boundingRect.top; - - if (!this.showTooltip) { - return; - } - - if (this.tooltipTimeout) { - clearTimeout(this.tooltipTimeout); - } - - // (delayed) display of a tooltip only if no mouse button is down - if (this.leftButtonDown) { - this._hideTooltip(); - return; - } - - if (this.tooltip && this.tooltip.dataPoint) { - // tooltip is currently visible - var dataPoint = this._dataPointFromXY(mouseX, mouseY); - if (dataPoint !== this.tooltip.dataPoint) { - // datapoint changed - if (dataPoint) { - this._showTooltip(dataPoint); - } else { - this._hideTooltip(); - } - } - } else { - // tooltip is currently not visible - var me = this; - this.tooltipTimeout = setTimeout(function () { - me.tooltipTimeout = null; - - // show a tooltip if we have a data point - var dataPoint = me._dataPointFromXY(mouseX, mouseY); - if (dataPoint) { - me._showTooltip(dataPoint); - } - }, delay); - } - }; - - /** - * Event handler for touchstart event on mobile devices - */ - Graph3d.prototype._onTouchStart = function (event) { - this.touchDown = true; - - var me = this; - this.ontouchmove = function (event) { - me._onTouchMove(event); - }; - this.ontouchend = function (event) { - me._onTouchEnd(event); - }; - util.addEventListener(document, 'touchmove', me.ontouchmove); - util.addEventListener(document, 'touchend', me.ontouchend); - - this._onMouseDown(event); - }; - - /** - * Event handler for touchmove event on mobile devices - */ - Graph3d.prototype._onTouchMove = function (event) { - this._onMouseMove(event); - }; - - /** - * Event handler for touchend event on mobile devices - */ - Graph3d.prototype._onTouchEnd = function (event) { - this.touchDown = false; - - util.removeEventListener(document, 'touchmove', this.ontouchmove); - util.removeEventListener(document, 'touchend', this.ontouchend); - - this._onMouseUp(event); - }; - - /** - * Event handler for mouse wheel event, used to zoom the graph - * Code from http://adomas.org/javascript-mouse-wheel/ - * @param {event} event The event - */ - Graph3d.prototype._onWheel = function (event) { - if (!event) /* For IE. */ - event = window.event; - - // retrieve delta - var delta = 0; - if (event.wheelDelta) { - /* IE/Opera. */ - delta = event.wheelDelta / 120; - } else if (event.detail) { - /* Mozilla case. */ - // In Mozilla, sign of delta is different than in IE. - // Also, delta is multiple of 3. - delta = -event.detail / 3; - } - - // If delta is nonzero, handle it. - // Basically, delta is now positive if wheel was scrolled up, - // and negative, if wheel was scrolled down. - if (delta) { - var oldLength = this.camera.getArmLength(); - var newLength = oldLength * (1 - delta / 10); - - this.camera.setArmLength(newLength); - this.redraw(); - - this._hideTooltip(); - } - - // fire a cameraPositionChange event - var parameters = this.getCameraPosition(); - this.emit('cameraPositionChange', parameters); - - // Prevent default actions caused by mouse wheel. - // That might be ugly, but we handle scrolls somehow - // anyway, so don't bother here.. - util.preventDefault(event); - }; - - /** - * Test whether a point lies inside given 2D triangle - * @param {Point2d} point - * @param {Point2d[]} triangle - * @return {boolean} Returns true if given point lies inside or on the edge of the triangle - * @private - */ - Graph3d.prototype._insideTriangle = function (point, triangle) { - var a = triangle[0], - b = triangle[1], - c = triangle[2]; - - function sign(x) { - return x > 0 ? 1 : x < 0 ? -1 : 0; - } - - var as = sign((b.x - a.x) * (point.y - a.y) - (b.y - a.y) * (point.x - a.x)); - var bs = sign((c.x - b.x) * (point.y - b.y) - (c.y - b.y) * (point.x - b.x)); - var cs = sign((a.x - c.x) * (point.y - c.y) - (a.y - c.y) * (point.x - c.x)); - - // each of the three signs must be either equal to each other or zero - return (as == 0 || bs == 0 || as == bs) && (bs == 0 || cs == 0 || bs == cs) && (as == 0 || cs == 0 || as == cs); - }; - - /** - * Find a data point close to given screen position (x, y) - * @param {Number} x - * @param {Number} y - * @return {Object | null} The closest data point or null if not close to any data point - * @private - */ - Graph3d.prototype._dataPointFromXY = function (x, y) { - var i, - distMax = 100, - // px - dataPoint = null, - closestDataPoint = null, - closestDist = null, - center = new Point2d(x, y); - - if (this.style === Graph3d.STYLE.BAR || this.style === Graph3d.STYLE.BARCOLOR || this.style === Graph3d.STYLE.BARSIZE) { - // the data points are ordered from far away to closest - for (i = this.dataPoints.length - 1; i >= 0; i--) { - dataPoint = this.dataPoints[i]; - var surfaces = dataPoint.surfaces; - if (surfaces) { - for (var s = surfaces.length - 1; s >= 0; s--) { - // split each surface in two triangles, and see if the center point is inside one of these - var surface = surfaces[s]; - var corners = surface.corners; - var triangle1 = [corners[0].screen, corners[1].screen, corners[2].screen]; - var triangle2 = [corners[2].screen, corners[3].screen, corners[0].screen]; - if (this._insideTriangle(center, triangle1) || this._insideTriangle(center, triangle2)) { - // return immediately at the first hit - return dataPoint; - } - } - } - } - } else { - // find the closest data point, using distance to the center of the point on 2d screen - for (i = 0; i < this.dataPoints.length; i++) { - dataPoint = this.dataPoints[i]; - var point = dataPoint.screen; - if (point) { - var distX = Math.abs(x - point.x); - var distY = Math.abs(y - point.y); - var dist = Math.sqrt(distX * distX + distY * distY); - - if ((closestDist === null || dist < closestDist) && dist < distMax) { - closestDist = dist; - closestDataPoint = dataPoint; - } - } - } - } - - return closestDataPoint; - }; - - /** - * Display a tooltip for given data point - * @param {Object} dataPoint - * @private - */ - Graph3d.prototype._showTooltip = function (dataPoint) { - var content, line, dot; - - if (!this.tooltip) { - content = document.createElement('div'); - content.style.position = 'absolute'; - content.style.padding = '10px'; - content.style.border = '1px solid #4d4d4d'; - content.style.color = '#1a1a1a'; - content.style.background = 'rgba(255,255,255,0.7)'; - content.style.borderRadius = '2px'; - content.style.boxShadow = '5px 5px 10px rgba(128,128,128,0.5)'; - - line = document.createElement('div'); - line.style.position = 'absolute'; - line.style.height = '40px'; - line.style.width = '0'; - line.style.borderLeft = '1px solid #4d4d4d'; - - dot = document.createElement('div'); - dot.style.position = 'absolute'; - dot.style.height = '0'; - dot.style.width = '0'; - dot.style.border = '5px solid #4d4d4d'; - dot.style.borderRadius = '5px'; - - this.tooltip = { - dataPoint: null, - dom: { - content: content, - line: line, - dot: dot - } - }; - } else { - content = this.tooltip.dom.content; - line = this.tooltip.dom.line; - dot = this.tooltip.dom.dot; - } - - this._hideTooltip(); - - this.tooltip.dataPoint = dataPoint; - if (typeof this.showTooltip === 'function') { - content.innerHTML = this.showTooltip(dataPoint.point); - } else { - content.innerHTML = '' + '' + '' + '' + '
x:' + dataPoint.point.x + '
y:' + dataPoint.point.y + '
z:' + dataPoint.point.z + '
'; - } - - content.style.left = '0'; - content.style.top = '0'; - this.frame.appendChild(content); - this.frame.appendChild(line); - this.frame.appendChild(dot); - - // calculate sizes - var contentWidth = content.offsetWidth; - var contentHeight = content.offsetHeight; - var lineHeight = line.offsetHeight; - var dotWidth = dot.offsetWidth; - var dotHeight = dot.offsetHeight; - - var left = dataPoint.screen.x - contentWidth / 2; - left = Math.min(Math.max(left, 10), this.frame.clientWidth - 10 - contentWidth); - - line.style.left = dataPoint.screen.x + 'px'; - line.style.top = dataPoint.screen.y - lineHeight + 'px'; - content.style.left = left + 'px'; - content.style.top = dataPoint.screen.y - lineHeight - contentHeight + 'px'; - dot.style.left = dataPoint.screen.x - dotWidth / 2 + 'px'; - dot.style.top = dataPoint.screen.y - dotHeight / 2 + 'px'; - }; - - /** - * Hide the tooltip when displayed - * @private - */ - Graph3d.prototype._hideTooltip = function () { - if (this.tooltip) { - this.tooltip.dataPoint = null; - - for (var prop in this.tooltip.dom) { - if (this.tooltip.dom.hasOwnProperty(prop)) { - var elem = this.tooltip.dom[prop]; - if (elem && elem.parentNode) { - elem.parentNode.removeChild(elem); - } - } - } - } - }; - - /**--------------------------------------------------------------------------**/ - - /** - * Get the horizontal mouse position from a mouse event - * @param {Event} event - * @return {Number} mouse x - */ - function getMouseX(event) { - if ('clientX' in event) return event.clientX; - return event.targetTouches[0] && event.targetTouches[0].clientX || 0; - } - - /** - * Get the vertical mouse position from a mouse event - * @param {Event} event - * @return {Number} mouse y - */ - function getMouseY(event) { - if ('clientY' in event) return event.clientY; - return event.targetTouches[0] && event.targetTouches[0].clientY || 0; - } - - module.exports = Graph3d; - - // use use defaults - -/***/ }, -/* 7 */ -/***/ function(module, exports, __webpack_require__) { - - 'use strict'; - - var Point3d = __webpack_require__(10); - - /** - * @class Camera - * The camera is mounted on a (virtual) camera arm. The camera arm can rotate - * The camera is always looking in the direction of the origin of the arm. - * This way, the camera always rotates around one fixed point, the location - * of the camera arm. - * - * Documentation: - * http://en.wikipedia.org/wiki/3D_projection - */ - function Camera() { - this.armLocation = new Point3d(); - this.armRotation = {}; - this.armRotation.horizontal = 0; - this.armRotation.vertical = 0; - this.armLength = 1.7; - - this.cameraLocation = new Point3d(); - this.cameraRotation = new Point3d(0.5 * Math.PI, 0, 0); - - this.calculateCameraOrientation(); - } - - /** - * Set the location (origin) of the arm - * @param {Number} x Normalized value of x - * @param {Number} y Normalized value of y - * @param {Number} z Normalized value of z - */ - Camera.prototype.setArmLocation = function (x, y, z) { - this.armLocation.x = x; - this.armLocation.y = y; - this.armLocation.z = z; - - this.calculateCameraOrientation(); - }; - - /** - * Set the rotation of the camera arm - * @param {Number} horizontal The horizontal rotation, between 0 and 2*PI. - * Optional, can be left undefined. - * @param {Number} vertical The vertical rotation, between 0 and 0.5*PI - * if vertical=0.5*PI, the graph is shown from the - * top. Optional, can be left undefined. - */ - Camera.prototype.setArmRotation = function (horizontal, vertical) { - if (horizontal !== undefined) { - this.armRotation.horizontal = horizontal; - } - - if (vertical !== undefined) { - this.armRotation.vertical = vertical; - if (this.armRotation.vertical < 0) this.armRotation.vertical = 0; - if (this.armRotation.vertical > 0.5 * Math.PI) this.armRotation.vertical = 0.5 * Math.PI; - } - - if (horizontal !== undefined || vertical !== undefined) { - this.calculateCameraOrientation(); + if (horizontal !== undefined || vertical !== undefined) { + this.calculateCameraOrientation(); } }; @@ -5827,7 +5224,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @constructor Slider @@ -6321,7 +5718,7 @@ return /******/ (function(modules) { // webpackBootstrap 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); @@ -6762,7 +6159,7 @@ return /******/ (function(modules) { // webpackBootstrap 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); @@ -7777,7 +7174,7 @@ return /******/ (function(modules) { // webpackBootstrap 'use strict'; - var util = __webpack_require__(1); + var util = __webpack_require__(57); var hammerUtil = __webpack_require__(48); var moment = __webpack_require__(40); var Component = __webpack_require__(25); @@ -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,7 +9920,7 @@ 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__(49); @@ -10700,7 +10097,7 @@ 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__(49); @@ -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,7 +10939,7 @@ 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__(50); var Bar = __webpack_require__(51); @@ -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); @@ -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,74 +15020,74 @@ 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 _Groups = __webpack_require__(53); + var _modulesGroups = __webpack_require__(53); - var _Groups2 = _interopRequireDefault(_Groups); + var _modulesGroups2 = _interopRequireDefault(_modulesGroups); - var _NodesHandler = __webpack_require__(54); + var _modulesNodesHandler = __webpack_require__(54); - var _NodesHandler2 = _interopRequireDefault(_NodesHandler); + var _modulesNodesHandler2 = _interopRequireDefault(_modulesNodesHandler); - var _EdgesHandler = __webpack_require__(55); + var _modulesEdgesHandler = __webpack_require__(55); - var _EdgesHandler2 = _interopRequireDefault(_EdgesHandler); + var _modulesEdgesHandler2 = _interopRequireDefault(_modulesEdgesHandler); - var _PhysicsEngine = __webpack_require__(56); + var _modulesPhysicsEngine = __webpack_require__(56); - var _PhysicsEngine2 = _interopRequireDefault(_PhysicsEngine); + var _modulesPhysicsEngine2 = _interopRequireDefault(_modulesPhysicsEngine); - var _ClusterEngine = __webpack_require__(57); + var _modulesClustering = __webpack_require__(1); - var _ClusterEngine2 = _interopRequireDefault(_ClusterEngine); + var _modulesClustering2 = _interopRequireDefault(_modulesClustering); - var _CanvasRenderer = __webpack_require__(58); + var _modulesCanvasRenderer = __webpack_require__(58); - var _CanvasRenderer2 = _interopRequireDefault(_CanvasRenderer); + var _modulesCanvasRenderer2 = _interopRequireDefault(_modulesCanvasRenderer); - var _Canvas = __webpack_require__(59); + var _modulesCanvas = __webpack_require__(59); - var _Canvas2 = _interopRequireDefault(_Canvas); + var _modulesCanvas2 = _interopRequireDefault(_modulesCanvas); - var _View = __webpack_require__(60); + var _modulesView = __webpack_require__(60); - var _View2 = _interopRequireDefault(_View); + var _modulesView2 = _interopRequireDefault(_modulesView); - var _InteractionHandler = __webpack_require__(61); + var _modulesInteractionHandler = __webpack_require__(61); - var _InteractionHandler2 = _interopRequireDefault(_InteractionHandler); + var _modulesInteractionHandler2 = _interopRequireDefault(_modulesInteractionHandler); - var _SelectionHandler = __webpack_require__(62); + var _modulesSelectionHandler = __webpack_require__(62); - var _SelectionHandler2 = _interopRequireDefault(_SelectionHandler); + var _modulesSelectionHandler2 = _interopRequireDefault(_modulesSelectionHandler); - var _LayoutEngine = __webpack_require__(63); + var _modulesLayoutEngine = __webpack_require__(63); - var _LayoutEngine2 = _interopRequireDefault(_LayoutEngine); + var _modulesLayoutEngine2 = _interopRequireDefault(_modulesLayoutEngine); - var _ManipulationSystem = __webpack_require__(64); + var _modulesManipulationSystem = __webpack_require__(64); - var _ManipulationSystem2 = _interopRequireDefault(_ManipulationSystem); + var _modulesManipulationSystem2 = _interopRequireDefault(_modulesManipulationSystem); - var _Configurator = __webpack_require__(44); + var _sharedConfigurator = __webpack_require__(44); - var _Configurator2 = _interopRequireDefault(_Configurator); + var _sharedConfigurator2 = _interopRequireDefault(_sharedConfigurator); - var _Validator = __webpack_require__(45); + var _sharedValidator = __webpack_require__(45); - var _Validator2 = _interopRequireDefault(_Validator); + var _sharedValidator2 = _interopRequireDefault(_sharedValidator); - var _allOptions$configureOptions = __webpack_require__(65); + var _optionsJs = __webpack_require__(65); - // Load custom shapes into CanvasRenderingContext2D __webpack_require__(66); 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); @@ -15775,25 +15172,25 @@ return /******/ (function(modules) { // webpackBootstrap this.images = new Images(function () { return _this.body.emitter.emit('_requestRedraw'); }); // object with images - this.groups = new _Groups2['default'](); // object with groups - this.canvas = new _Canvas2['default'](this.body); // DOM handler - this.selectionHandler = new _SelectionHandler2['default'](this.body, this.canvas); // Selection handler - this.interactionHandler = new _InteractionHandler2['default'](this.body, this.canvas, this.selectionHandler); // Interaction handler handles all the hammer bindings (that are bound by canvas), key - this.view = new _View2['default'](this.body, this.canvas); // camera handler, does animations and zooms - this.renderer = new _CanvasRenderer2['default'](this.body, this.canvas); // renderer, starts renderloop, has events that modules can hook into - this.physics = new _PhysicsEngine2['default'](this.body); // physics engine, does all the simulations - this.layoutEngine = new _LayoutEngine2['default'](this.body); // layout engine for inital layout and hierarchical layout - this.clustering = new _ClusterEngine2['default'](this.body); // clustering api - this.manipulation = new _ManipulationSystem2['default'](this.body, this.canvas, this.selectionHandler); // data manipulation system - - this.nodesHandler = new _NodesHandler2['default'](this.body, this.images, this.groups, this.layoutEngine); // Handle adding, deleting and updating of nodes as well as global options - this.edgesHandler = new _EdgesHandler2['default'](this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options + this.groups = new _modulesGroups2['default'](); // object with groups + this.canvas = new _modulesCanvas2['default'](this.body); // DOM handler + this.selectionHandler = new _modulesSelectionHandler2['default'](this.body, this.canvas); // Selection handler + this.interactionHandler = new _modulesInteractionHandler2['default'](this.body, this.canvas, this.selectionHandler); // Interaction handler handles all the hammer bindings (that are bound by canvas), key + this.view = new _modulesView2['default'](this.body, this.canvas); // camera handler, does animations and zooms + this.renderer = new _modulesCanvasRenderer2['default'](this.body, this.canvas); // renderer, starts renderloop, has events that modules can hook into + this.physics = new _modulesPhysicsEngine2['default'](this.body); // physics engine, does all the simulations + this.layoutEngine = new _modulesLayoutEngine2['default'](this.body); // layout engine for inital layout and hierarchical layout + this.clustering = new _modulesClustering2['default'](this.body); // clustering api + this.manipulation = new _modulesManipulationSystem2['default'](this.body, this.canvas, this.selectionHandler); // data manipulation system + + this.nodesHandler = new _modulesNodesHandler2['default'](this.body, this.images, this.groups, this.layoutEngine); // Handle adding, deleting and updating of nodes as well as global options + this.edgesHandler = new _modulesEdgesHandler2['default'](this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options // create the DOM elements this.canvas._create(); // setup configuration system - this.configurator = new _Configurator2['default'](this, this.body.container, _allOptions$configureOptions.configureOptions, this.canvas.pixelRatio); + this.configurator = new _sharedConfigurator2['default'](this, this.body.container, _optionsJs.configureOptions, this.canvas.pixelRatio); // apply options this.setOptions(options); @@ -15812,9 +15209,9 @@ return /******/ (function(modules) { // webpackBootstrap Network.prototype.setOptions = function (options) { if (options !== undefined) { - var errorFound = _Validator2['default'].validate(options, _allOptions$configureOptions.allOptions); + var errorFound = _sharedValidator2['default'].validate(options, _optionsJs.allOptions); if (errorFound === true) { - console.log('%cErrors have been found in the supplied options object.', _Validator.printStyle); + console.log('%cErrors have been found in the supplied options object.', _sharedValidator.printStyle); } // copy the global fields over @@ -17513,7 +16910,7 @@ return /******/ (function(modules) { // webpackBootstrap var Emitter = __webpack_require__(69); var Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(48); - 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); @@ -18490,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. @@ -19159,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; @@ -19468,11 +18865,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 46 */ /***/ 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. @@ -19480,6 +18872,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'; @@ -19685,11 +19082,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 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. @@ -19697,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'; @@ -20650,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 @@ -20794,15 +20191,15 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _Node = __webpack_require__(74); + var _componentsNode = __webpack_require__(74); - var _Node2 = _interopRequireDefault(_Node); + var _componentsNode2 = _interopRequireDefault(_componentsNode); - var _Label = __webpack_require__(75); + var _componentsSharedLabel = __webpack_require__(75); - var _Label2 = _interopRequireDefault(_Label); + var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); @@ -20932,7 +20329,7 @@ return /******/ (function(modules) { // webpackBootstrap key: 'setOptions', value: function setOptions(options) { if (options !== undefined) { - _Node2['default'].parseOptions(this.options, options); + _componentsNode2['default'].parseOptions(this.options, options); // update the shape in all nodes if (options.shape !== undefined) { @@ -20945,7 +20342,7 @@ return /******/ (function(modules) { // webpackBootstrap // update the shape size in all nodes if (options.font !== undefined) { - _Label2['default'].parseOptions(this.options.font, options); + _componentsSharedLabel2['default'].parseOptions(this.options.font, options); for (var nodeId in this.body.nodes) { if (this.body.nodes.hasOwnProperty(nodeId)) { this.body.nodes[nodeId].updateLabelModule(); @@ -21109,7 +20506,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param constructorClass */ value: function create(properties) { - var constructorClass = arguments[1] === undefined ? _Node2['default'] : arguments[1]; + var constructorClass = arguments[1] === undefined ? _componentsNode2['default'] : arguments[1]; return new constructorClass(properties, this.body, this.images, this.groups, this.options); } @@ -21269,15 +20666,15 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _Edge = __webpack_require__(76); + var _componentsEdge = __webpack_require__(76); - var _Edge2 = _interopRequireDefault(_Edge); + var _componentsEdge2 = _interopRequireDefault(_componentsEdge); - var _Label = __webpack_require__(75); + var _componentsSharedLabel = __webpack_require__(75); - var _Label2 = _interopRequireDefault(_Label); + var _componentsSharedLabel2 = _interopRequireDefault(_componentsSharedLabel); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var DataSet = __webpack_require__(3); var DataView = __webpack_require__(4); @@ -21434,7 +20831,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { if (options !== undefined) { // use the parser from the Edge class to fill in all shorthand notations - _Edge2['default'].parseOptions(this.options, options); + _componentsEdge2['default'].parseOptions(this.options, options); // hanlde multiple input cases for color if (options.color !== undefined) { @@ -21454,7 +20851,7 @@ return /******/ (function(modules) { // webpackBootstrap // update fonts in all edges if (options.font !== undefined) { // use the parser from the Label class to fill in all shorthand notations - _Label2['default'].parseOptions(this.options, options); + _componentsSharedLabel2['default'].parseOptions(this.options, options); for (var edgeId in this.body.edges) { if (this.body.edges.hasOwnProperty(edgeId)) { this.body.edges[edgeId].updateLabelModule(); @@ -21628,7 +21025,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'create', value: function create(properties) { - return new _Edge2['default'](properties, this.body, this.options); + return new _componentsEdge2['default'](properties, this.body, this.options); } }, { key: 'markAllEdgesAsDirty', @@ -21703,39 +21100,39 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _BarnesHutSolver = __webpack_require__(77); + var _componentsPhysicsBarnesHutSolver = __webpack_require__(77); - var _BarnesHutSolver2 = _interopRequireDefault(_BarnesHutSolver); + var _componentsPhysicsBarnesHutSolver2 = _interopRequireDefault(_componentsPhysicsBarnesHutSolver); - var _Repulsion = __webpack_require__(78); + var _componentsPhysicsRepulsionSolver = __webpack_require__(78); - var _Repulsion2 = _interopRequireDefault(_Repulsion); + var _componentsPhysicsRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsRepulsionSolver); - var _HierarchicalRepulsion = __webpack_require__(79); + var _componentsPhysicsHierarchicalRepulsionSolver = __webpack_require__(79); - var _HierarchicalRepulsion2 = _interopRequireDefault(_HierarchicalRepulsion); + var _componentsPhysicsHierarchicalRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsHierarchicalRepulsionSolver); - var _SpringSolver = __webpack_require__(80); + var _componentsPhysicsSpringSolver = __webpack_require__(80); - var _SpringSolver2 = _interopRequireDefault(_SpringSolver); + var _componentsPhysicsSpringSolver2 = _interopRequireDefault(_componentsPhysicsSpringSolver); - var _HierarchicalSpringSolver = __webpack_require__(81); + var _componentsPhysicsHierarchicalSpringSolver = __webpack_require__(81); - var _HierarchicalSpringSolver2 = _interopRequireDefault(_HierarchicalSpringSolver); + var _componentsPhysicsHierarchicalSpringSolver2 = _interopRequireDefault(_componentsPhysicsHierarchicalSpringSolver); - var _CentralGravitySolver = __webpack_require__(82); + var _componentsPhysicsCentralGravitySolver = __webpack_require__(82); - var _CentralGravitySolver2 = _interopRequireDefault(_CentralGravitySolver); + var _componentsPhysicsCentralGravitySolver2 = _interopRequireDefault(_componentsPhysicsCentralGravitySolver); - var _ForceAtlas2BasedRepulsionSolver = __webpack_require__(83); + var _componentsPhysicsFA2BasedRepulsionSolver = __webpack_require__(83); - var _ForceAtlas2BasedRepulsionSolver2 = _interopRequireDefault(_ForceAtlas2BasedRepulsionSolver); + var _componentsPhysicsFA2BasedRepulsionSolver2 = _interopRequireDefault(_componentsPhysicsFA2BasedRepulsionSolver); - var _ForceAtlas2BasedCentralGravitySolver = __webpack_require__(84); + var _componentsPhysicsFA2BasedCentralGravitySolver = __webpack_require__(84); - var _ForceAtlas2BasedCentralGravitySolver2 = _interopRequireDefault(_ForceAtlas2BasedCentralGravitySolver); + var _componentsPhysicsFA2BasedCentralGravitySolver2 = _interopRequireDefault(_componentsPhysicsFA2BasedCentralGravitySolver); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var PhysicsEngine = (function () { function PhysicsEngine(body) { @@ -21863,25 +21260,25 @@ return /******/ (function(modules) { // webpackBootstrap var options; if (this.options.solver === 'forceAtlas2Based') { options = this.options.forceAtlas2Based; - this.nodesSolver = new _ForceAtlas2BasedRepulsionSolver2['default'](this.body, this.physicsBody, options); - this.edgesSolver = new _SpringSolver2['default'](this.body, this.physicsBody, options); - this.gravitySolver = new _ForceAtlas2BasedCentralGravitySolver2['default'](this.body, this.physicsBody, options); + this.nodesSolver = new _componentsPhysicsFA2BasedRepulsionSolver2['default'](this.body, this.physicsBody, options); + this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options); + this.gravitySolver = new _componentsPhysicsFA2BasedCentralGravitySolver2['default'](this.body, this.physicsBody, options); } else if (this.options.solver === 'repulsion') { options = this.options.repulsion; - this.nodesSolver = new _Repulsion2['default'](this.body, this.physicsBody, options); - this.edgesSolver = new _SpringSolver2['default'](this.body, this.physicsBody, options); - this.gravitySolver = new _CentralGravitySolver2['default'](this.body, this.physicsBody, options); + this.nodesSolver = new _componentsPhysicsRepulsionSolver2['default'](this.body, this.physicsBody, options); + this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options); + this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options); } else if (this.options.solver === 'hierarchicalRepulsion') { options = this.options.hierarchicalRepulsion; - this.nodesSolver = new _HierarchicalRepulsion2['default'](this.body, this.physicsBody, options); - this.edgesSolver = new _HierarchicalSpringSolver2['default'](this.body, this.physicsBody, options); - this.gravitySolver = new _CentralGravitySolver2['default'](this.body, this.physicsBody, options); + this.nodesSolver = new _componentsPhysicsHierarchicalRepulsionSolver2['default'](this.body, this.physicsBody, options); + this.edgesSolver = new _componentsPhysicsHierarchicalSpringSolver2['default'](this.body, this.physicsBody, options); + this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options); } else { // barnesHut options = this.options.barnesHut; - this.nodesSolver = new _BarnesHutSolver2['default'](this.body, this.physicsBody, options); - this.edgesSolver = new _SpringSolver2['default'](this.body, this.physicsBody, options); - this.gravitySolver = new _CentralGravitySolver2['default'](this.body, this.physicsBody, options); + this.nodesSolver = new _componentsPhysicsBarnesHutSolver2['default'](this.body, this.physicsBody, options); + this.edgesSolver = new _componentsPhysicsSpringSolver2['default'](this.body, this.physicsBody, options); + this.gravitySolver = new _componentsPhysicsCentralGravitySolver2['default'](this.body, this.physicsBody, options); } this.modelOptions = options; @@ -22314,738 +21711,1341 @@ return /******/ (function(modules) { // webpackBootstrap /* 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 _Cluster = __webpack_require__(85); + var moment = __webpack_require__(40); + var uuid = __webpack_require__(42); - var _Cluster2 = _interopRequireDefault(_Cluster); + /** + * 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', + } + return a; + }; - /** - * 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; + /** + * 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]); + } } else { - util.deepExtend(clonedOptions, item.options, true); + a[prop] = b[prop]; } - return clonedOptions; } - }, { - key: '_createClusterEdges', + } + return a; + }; - /** - * 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; + /** + * 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; - var childKeys = Object.keys(childNodesObj); - for (var i = 0; i < childKeys.length; i++) { - childNodeId = childKeys[i]; - childNode = childNodesObj[childNodeId]; + for (var i = 0, len = a.length; i < len; i++) { + if (a[i] != b[i]) return false; + } - // 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 true; + }; - // 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; - } + /** + * 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; - // 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)); - } + if (object === undefined) { + return undefined; + } + if (object === null) { + return null; + } + + if (!type) { + return object; + } + if (!(typeof type === 'string') && !(type instanceof String)) { + throw new Error('Type must be a string'); + } + + //noinspection FallthroughInSwitchStatementJS + switch (type) { + case 'boolean': + case 'Boolean': + return Boolean(object); + + case 'number': + case 'Number': + return Number(object.valueOf()); + + case 'string': + case 'String': + return String(object); + + case 'Date': + if (exports.isNumber(object)) { + return new Date(object); + } + 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'); } - } - }, { - key: '_checkOptions', - /** - * 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 'Moment': + if (exports.isNumber(object)) { + return moment(object); + } + 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 + } + } else { + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + } - if (options.clusterEdgeProperties === undefined) { - options.clusterEdgeProperties = {}; + 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'); } - if (options.clusterNodeProperties === undefined) { - options.clusterNodeProperties = {}; + + 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'); } - return options; + 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; + + /** + * 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; + + if (type == 'object') { + if (object === null) { + return 'null'; } - }, { - key: '_cluster', + 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'; + } - /** - * - * @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]; + return type; + }; - // kill condition: no children so cant cluster - if (Object.keys(childNodesObj).length === 0) { - return; - } + /** + * 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; + }; - var clusterNodeProperties = util.deepExtend({}, options.clusterNodeProperties); + /** + * 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; + }; - // 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); - } + /** + * 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; + }; - // get clusterproperties based on childNodes - var childEdgesOptions = []; - for (var edgeId in childEdgesObj) { - var clonedOptions = this._cloneOptions(childEdgesObj[edgeId], 'edge'); - childEdgesOptions.push(clonedOptions); - } + /** + * 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; + }; - clusterNodeProperties = options.processProperties(clusterNodeProperties, childNodesOptions, childEdgesOptions); - if (!clusterNodeProperties) { - throw new Error('The processProperties function does not return properties!'); - } - } + /** + * 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(' '); + } + }; - // check if we have an unique id; - if (clusterNodeProperties.id === undefined) { - clusterNodeProperties.id = 'cluster:' + util.randomUUID(); - } - var clusterId = clusterNodeProperties.id; + /** + * 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(' '); + } + }; - if (clusterNodeProperties.label === undefined) { - clusterNodeProperties.label = 'cluster'; + /** + * 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); } + } + } + }; - // 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); - } - clusterNodeProperties.y = pos.y; - } + /** + * 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 = []; - // force the ID to remain the same - clusterNodeProperties.id = clusterId; + for (var prop in object) { + if (object.hasOwnProperty(prop)) array.push(object[prop]); + } - // create the clusterNode - var clusterNode = this.body.functions.createNode(clusterNodeProperties, _Cluster2['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; + return array; + }; - // finally put the cluster node into global - this.body.nodes[clusterNodeProperties.id] = clusterNode; + /** + * 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; + } + }; - // create the new edges that will connect to the cluster - var newEdges = []; - this._createClusterEdges(childNodesObj, childEdgesObj, newEdges, clusterNodeProperties, options.clusterEdgeProperties); + /** + * 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; - // 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; - } - } - } + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox + } - // 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; - } - } + element.addEventListener(action, listener, useCapture); + } else { + element.attachEvent('on' + action, listener); // IE browsers + } + }; - // 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(); - } + /** + * 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; - // set ID to undefined so no duplicates arise - clusterNodeProperties.id = undefined; + if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { + action = 'DOMMouseScroll'; // For Firefox + } - // wrap up - if (refreshData === true) { - this.body.emitter.emit('_dataChanged'); - } + 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; } - }, { - key: 'isCluster', + e = e.parentNode; + } - /** - * 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 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 + ')'; } - }, { - key: '_getClusterPosition', + } + }; - /** - * 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; - } + /** + * + * @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); + }; - return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) }; + /** + * 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]); } - }, { - key: 'openCluster', + 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; - /** - * 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]; + 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; + } - // 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; + 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; } - var clusterNode = this.body.nodes[clusterNodeId]; - var containedNodes = clusterNode.containedNodes; - var containedEdges = clusterNode.containedEdges; + }); - // 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; + return styles; + }, - // inherit speed - containedNode.vx = clusterNode.vx; - containedNode.vy = clusterNode.vy; + // 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); + + element.style.cssText = cssUtil.join(styles); + }; + + /** + * 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); + + for (var key in removeStyles) { + if (removeStyles.hasOwnProperty(key)) { + delete styles[key]; + } + } + + element.style.cssText = cssUtil.join(styles); + }; + + /** + * 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; - containedNode.options.hidden = false; - containedNode.togglePhysics(true); + 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); - delete this.clusteredNodes[nodeId]; - } - } + 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; + } - // 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 { r: Math.floor(r * 255), g: Math.floor(g * 255), b: Math.floor(b * 255) }; + }; - // 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; + exports.HSVToHex = function (h, s, v) { + var rgb = exports.HSVToRGB(h, s, v); + return exports.RGBToHex(rgb.r, rgb.g, rgb.b); + }; - // 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; - } + exports.hexToHSV = function (hex) { + var rgb = exports.hexToRGB(hex); + return exports.RGBToHSV(rgb.r, rgb.g, rgb.b); + }; - 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.isValidHex = function (hex) { + var isOk = /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex); + return isOk; + }; - this.body.edges[id] = newEdge; - this.body.edges[id].connect(); - } - } else { - edge.options.hidden = false; - edge.togglePhysics(true); - } - } - } - } + 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; + }; - // 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]; + /** + * 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]]); + } } + } + return objectTo; + } else { + return null; + } + }; - // remove clusterNode - delete this.body.nodes[clusterNodeId]; - - 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.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]); + } } } - }, { - 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; + /** + * 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]; + + 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 { - edge.to = clusterStack[clusterStack.length - 1]; - edge.toId = clusterStack[clusterStack.length - 1].id; - clusterStack.pop(); - edge.toArray = clusterStack; + 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]; + } + } } - edge.connect(); } - }, { - key: 'findNode', + } + }; - /** - * 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 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 (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', + while (low <= high && iteration < maxIterations) { + var middle = Math.floor((low + high) / 2); - /** - * 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; - } + 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; + } + }; /***/ }, /* 58 */ @@ -23065,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) { @@ -23444,7 +23444,7 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(48); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * Create the main frame for the Network. @@ -23809,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) { @@ -24213,15 +24213,15 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _NavigationHandler = __webpack_require__(86); + var _componentsNavigationHandler = __webpack_require__(86); - var _NavigationHandler2 = _interopRequireDefault(_NavigationHandler); + var _componentsNavigationHandler2 = _interopRequireDefault(_componentsNavigationHandler); - var _Popup = __webpack_require__(87); + var _componentsPopup = __webpack_require__(87); - var _Popup2 = _interopRequireDefault(_Popup); + var _componentsPopup2 = _interopRequireDefault(_componentsPopup); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var InteractionHandler = (function () { function InteractionHandler(body, canvas, selectionHandler) { @@ -24230,7 +24230,7 @@ return /******/ (function(modules) { // webpackBootstrap this.body = body; this.canvas = canvas; this.selectionHandler = selectionHandler; - this.navigationHandler = new _NavigationHandler2['default'](body, canvas); + this.navigationHandler = new _componentsNavigationHandler2['default'](body, canvas); // bind the events from hammer to functions in this object this.body.eventListeners.onTap = this.onTap.bind(this); @@ -24836,7 +24836,7 @@ return /******/ (function(modules) { // webpackBootstrap // show popup message window if (this.popupObj.id !== previousPopupObjId) { if (this.popup === undefined) { - this.popup = new _Popup2['default'](this.canvas.frame); + this.popup = new _componentsPopup2['default'](this.canvas.frame); } this.popup.popupTargetType = popupType; @@ -24919,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) { @@ -25637,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) { @@ -26134,7 +26134,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 Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(48); @@ -27319,11 +27319,6 @@ return /******/ (function(modules) { // webpackBootstrap /* 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. @@ -27331,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'; @@ -28088,7 +28088,7 @@ return /******/ (function(modules) { // webpackBootstrap var keycharm = __webpack_require__(88); 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. @@ -28451,7 +28451,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ 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); @@ -34248,7 +34276,7 @@ return /******/ (function(modules) { // webpackBootstrap var Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(48); - var util = __webpack_require__(1); + var util = __webpack_require__(57); var ColorPicker = (function () { function ColorPicker() { @@ -34828,71 +34856,71 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _Label = __webpack_require__(75); + var _sharedLabel = __webpack_require__(75); - var _Label2 = _interopRequireDefault(_Label); + var _sharedLabel2 = _interopRequireDefault(_sharedLabel); - var _Box = __webpack_require__(90); + var _nodesShapesBox = __webpack_require__(90); - var _Box2 = _interopRequireDefault(_Box); + var _nodesShapesBox2 = _interopRequireDefault(_nodesShapesBox); - var _Circle = __webpack_require__(91); + var _nodesShapesCircle = __webpack_require__(91); - var _Circle2 = _interopRequireDefault(_Circle); + var _nodesShapesCircle2 = _interopRequireDefault(_nodesShapesCircle); - var _CircularImage = __webpack_require__(92); + var _nodesShapesCircularImage = __webpack_require__(92); - var _CircularImage2 = _interopRequireDefault(_CircularImage); + var _nodesShapesCircularImage2 = _interopRequireDefault(_nodesShapesCircularImage); - var _Database = __webpack_require__(93); + var _nodesShapesDatabase = __webpack_require__(93); - var _Database2 = _interopRequireDefault(_Database); + var _nodesShapesDatabase2 = _interopRequireDefault(_nodesShapesDatabase); - var _Diamond = __webpack_require__(94); + var _nodesShapesDiamond = __webpack_require__(94); - var _Diamond2 = _interopRequireDefault(_Diamond); + var _nodesShapesDiamond2 = _interopRequireDefault(_nodesShapesDiamond); - var _Dot = __webpack_require__(95); + var _nodesShapesDot = __webpack_require__(95); - var _Dot2 = _interopRequireDefault(_Dot); + var _nodesShapesDot2 = _interopRequireDefault(_nodesShapesDot); - var _Ellipse = __webpack_require__(96); + var _nodesShapesEllipse = __webpack_require__(96); - var _Ellipse2 = _interopRequireDefault(_Ellipse); + var _nodesShapesEllipse2 = _interopRequireDefault(_nodesShapesEllipse); - var _Icon = __webpack_require__(97); + var _nodesShapesIcon = __webpack_require__(97); - var _Icon2 = _interopRequireDefault(_Icon); + var _nodesShapesIcon2 = _interopRequireDefault(_nodesShapesIcon); - var _Image = __webpack_require__(98); + var _nodesShapesImage = __webpack_require__(98); - var _Image2 = _interopRequireDefault(_Image); + var _nodesShapesImage2 = _interopRequireDefault(_nodesShapesImage); - var _Square = __webpack_require__(99); + var _nodesShapesSquare = __webpack_require__(99); - var _Square2 = _interopRequireDefault(_Square); + var _nodesShapesSquare2 = _interopRequireDefault(_nodesShapesSquare); - var _Star = __webpack_require__(100); + var _nodesShapesStar = __webpack_require__(100); - var _Star2 = _interopRequireDefault(_Star); + var _nodesShapesStar2 = _interopRequireDefault(_nodesShapesStar); - var _Text = __webpack_require__(101); + var _nodesShapesText = __webpack_require__(101); - var _Text2 = _interopRequireDefault(_Text); + var _nodesShapesText2 = _interopRequireDefault(_nodesShapesText); - var _Triangle = __webpack_require__(102); + var _nodesShapesTriangle = __webpack_require__(102); - var _Triangle2 = _interopRequireDefault(_Triangle); + var _nodesShapesTriangle2 = _interopRequireDefault(_nodesShapesTriangle); - var _TriangleDown = __webpack_require__(103); + var _nodesShapesTriangleDown = __webpack_require__(103); - var _TriangleDown2 = _interopRequireDefault(_TriangleDown); + var _nodesShapesTriangleDown2 = _interopRequireDefault(_nodesShapesTriangleDown); - var _Validator = __webpack_require__(45); + var _sharedValidator = __webpack_require__(45); - var _Validator2 = _interopRequireDefault(_Validator); + var _sharedValidator2 = _interopRequireDefault(_sharedValidator); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @class Node @@ -34943,7 +34971,7 @@ return /******/ (function(modules) { // webpackBootstrap this.selected = false; this.hover = false; - this.labelModule = new _Label2['default'](this.body, this.options); + this.labelModule = new _sharedLabel2['default'](this.body, this.options); this.setOptions(options); } @@ -35060,49 +35088,49 @@ return /******/ (function(modules) { // webpackBootstrap // choose draw method depending on the shape switch (this.options.shape) { case 'box': - this.shape = new _Box2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesBox2['default'](this.options, this.body, this.labelModule); break; case 'circle': - this.shape = new _Circle2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesCircle2['default'](this.options, this.body, this.labelModule); break; case 'circularImage': - this.shape = new _CircularImage2['default'](this.options, this.body, this.labelModule, this.imageObj); + this.shape = new _nodesShapesCircularImage2['default'](this.options, this.body, this.labelModule, this.imageObj); break; case 'database': - this.shape = new _Database2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesDatabase2['default'](this.options, this.body, this.labelModule); break; case 'diamond': - this.shape = new _Diamond2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesDiamond2['default'](this.options, this.body, this.labelModule); break; case 'dot': - this.shape = new _Dot2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesDot2['default'](this.options, this.body, this.labelModule); break; case 'ellipse': - this.shape = new _Ellipse2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesEllipse2['default'](this.options, this.body, this.labelModule); break; case 'icon': - this.shape = new _Icon2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesIcon2['default'](this.options, this.body, this.labelModule); break; case 'image': - this.shape = new _Image2['default'](this.options, this.body, this.labelModule, this.imageObj); + this.shape = new _nodesShapesImage2['default'](this.options, this.body, this.labelModule, this.imageObj); break; case 'square': - this.shape = new _Square2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesSquare2['default'](this.options, this.body, this.labelModule); break; case 'star': - this.shape = new _Star2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesStar2['default'](this.options, this.body, this.labelModule); break; case 'text': - this.shape = new _Text2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesText2['default'](this.options, this.body, this.labelModule); break; case 'triangle': - this.shape = new _Triangle2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesTriangle2['default'](this.options, this.body, this.labelModule); break; case 'triangleDown': - this.shape = new _TriangleDown2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesTriangleDown2['default'](this.options, this.body, this.labelModule); break; default: - this.shape = new _Ellipse2['default'](this.options, this.body, this.labelModule); + this.shape = new _nodesShapesEllipse2['default'](this.options, this.body, this.labelModule); break; } this._reset(); @@ -35311,7 +35339,7 @@ return /******/ (function(modules) { // webpackBootstrap // handle the font options if (newOptions.font !== undefined) { - _Label2['default'].parseOptions(parentOptions.font, newOptions); + _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions); } // handle the scaling options, specifically the label part @@ -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) { @@ -35658,23 +35686,23 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - var _Label = __webpack_require__(75); + var _sharedLabel = __webpack_require__(75); - var _Label2 = _interopRequireDefault(_Label); + var _sharedLabel2 = _interopRequireDefault(_sharedLabel); - var _BezierEdgeDynamic = __webpack_require__(104); + var _edgesBezierEdgeDynamic = __webpack_require__(104); - var _BezierEdgeDynamic2 = _interopRequireDefault(_BezierEdgeDynamic); + var _edgesBezierEdgeDynamic2 = _interopRequireDefault(_edgesBezierEdgeDynamic); - var _BezierEdgeStatic = __webpack_require__(105); + var _edgesBezierEdgeStatic = __webpack_require__(105); - var _BezierEdgeStatic2 = _interopRequireDefault(_BezierEdgeStatic); + var _edgesBezierEdgeStatic2 = _interopRequireDefault(_edgesBezierEdgeStatic); - var _StraightEdge = __webpack_require__(106); + var _edgesStraightEdge = __webpack_require__(106); - var _StraightEdge2 = _interopRequireDefault(_StraightEdge); + var _edgesStraightEdge2 = _interopRequireDefault(_edgesStraightEdge); - var util = __webpack_require__(1); + var util = __webpack_require__(57); /** * @class Edge @@ -35721,7 +35749,7 @@ return /******/ (function(modules) { // webpackBootstrap this.connected = false; - this.labelModule = new _Label2['default'](this.body, this.options); + this.labelModule = new _sharedLabel2['default'](this.body, this.options); this.setOptions(options); } @@ -35794,13 +35822,13 @@ return /******/ (function(modules) { // webpackBootstrap var dataChanged = false; var changeInType = true; if (this.edgeType !== undefined) { - if (this.edgeType instanceof _BezierEdgeDynamic2['default'] && this.options.smooth.enabled === true && this.options.smooth.type === 'dynamic') { + if (this.edgeType instanceof _edgesBezierEdgeDynamic2['default'] && this.options.smooth.enabled === true && this.options.smooth.type === 'dynamic') { changeInType = false; } - if (this.edgeType instanceof _BezierEdgeStatic2['default'] && this.options.smooth.enabled === true && this.options.smooth.type !== 'dynamic') { + if (this.edgeType instanceof _edgesBezierEdgeStatic2['default'] && this.options.smooth.enabled === true && this.options.smooth.type !== 'dynamic') { changeInType = false; } - if (this.edgeType instanceof _StraightEdge2['default'] && this.options.smooth.enabled === false) { + if (this.edgeType instanceof _edgesStraightEdge2['default'] && this.options.smooth.enabled === false) { changeInType = false; } @@ -35813,12 +35841,12 @@ return /******/ (function(modules) { // webpackBootstrap if (this.options.smooth.enabled === true) { if (this.options.smooth.type === 'dynamic') { dataChanged = true; - this.edgeType = new _BezierEdgeDynamic2['default'](this.options, this.body, this.labelModule); + this.edgeType = new _edgesBezierEdgeDynamic2['default'](this.options, this.body, this.labelModule); } else { - this.edgeType = new _BezierEdgeStatic2['default'](this.options, this.body, this.labelModule); + this.edgeType = new _edgesBezierEdgeStatic2['default'](this.options, this.body, this.labelModule); } } else { - this.edgeType = new _StraightEdge2['default'](this.options, this.body, this.labelModule); + this.edgeType = new _edgesStraightEdge2['default'](this.options, this.body, this.labelModule); } } else { // if nothing changes, we just set the options. @@ -36186,7 +36214,7 @@ return /******/ (function(modules) { // webpackBootstrap // handle the font settings if (newOptions.font !== undefined) { - _Label2['default'].parseOptions(parentOptions.font, newOptions); + _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions); } } }]); @@ -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,7 +37392,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 Hammer = __webpack_require__(41); var hammerUtil = __webpack_require__(48); var keycharm = __webpack_require__(88); @@ -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) { @@ -37977,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 }; } @@ -37987,11 +38006,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); - - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase = __webpack_require__(109); - 'use strict'; + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var Box = (function (_NodeBase) { function Box(options, body, labelModule) { @@ -38069,7 +38086,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Box; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = Box; module.exports = exports['default']; @@ -38086,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 }; } @@ -38096,11 +38111,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _CircleImageBase2 = __webpack_require__(110); - - var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); + var _utilCircleImageBase = __webpack_require__(110); - 'use strict'; + var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); var Circle = (function (_CircleImageBase) { function Circle(options, body, labelModule) { @@ -38163,7 +38176,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Circle; - })(_CircleImageBase3['default']); + })(_utilCircleImageBase2['default']); exports['default'] = Circle; module.exports = exports['default']; @@ -38180,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 }; } @@ -38190,11 +38201,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _CircleImageBase2 = __webpack_require__(110); - - var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); + var _utilCircleImageBase = __webpack_require__(110); - 'use strict'; + var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); var CircularImage = (function (_CircleImageBase) { function CircularImage(options, body, labelModule, imageObj) { @@ -38272,7 +38281,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return CircularImage; - })(_CircleImageBase3['default']); + })(_utilCircleImageBase2['default']); exports['default'] = CircularImage; module.exports = exports['default']; @@ -38289,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 }; } @@ -38299,11 +38306,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); - - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase = __webpack_require__(109); - 'use strict'; + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var Database = (function (_NodeBase) { function Database(options, body, labelModule) { @@ -38381,7 +38386,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Database; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = Database; module.exports = exports['default']; @@ -38398,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 }; } @@ -38408,11 +38411,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var Diamond = (function (_ShapeBase) { function Diamond(options, body, labelModule) { @@ -38441,7 +38442,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Diamond; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = Diamond; module.exports = exports['default']; @@ -38458,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 }; } @@ -38468,11 +38467,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var Dot = (function (_ShapeBase) { function Dot(options, body, labelModule) { @@ -38501,7 +38498,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Dot; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = Dot; module.exports = exports['default']; @@ -38518,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 }; } @@ -38528,11 +38523,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); - - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase = __webpack_require__(109); - 'use strict'; + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var Ellipse = (function (_NodeBase) { function Ellipse(options, body, labelModule) { @@ -38612,7 +38605,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Ellipse; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = Ellipse; module.exports = exports['default']; @@ -38629,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 }; } @@ -38639,11 +38630,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); - - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase = __webpack_require__(109); - 'use strict'; + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var Icon = (function (_NodeBase) { function Icon(options, body, labelModule) { @@ -38732,7 +38721,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Icon; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = Icon; module.exports = exports['default']; @@ -38749,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 }; } @@ -38759,11 +38746,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _CircleImageBase2 = __webpack_require__(110); - - var _CircleImageBase3 = _interopRequireDefault(_CircleImageBase2); + var _utilCircleImageBase = __webpack_require__(110); - 'use strict'; + var _utilCircleImageBase2 = _interopRequireDefault(_utilCircleImageBase); var Image = (function (_CircleImageBase) { function Image(options, body, labelModule, imageObj) { @@ -38823,7 +38808,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Image; - })(_CircleImageBase3['default']); + })(_utilCircleImageBase2['default']); exports['default'] = Image; module.exports = exports['default']; @@ -38840,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 }; } @@ -38850,11 +38833,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var Square = (function (_ShapeBase) { function Square(options, body, labelModule) { @@ -38884,7 +38865,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Square; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = Square; module.exports = exports['default']; @@ -38901,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 }; } @@ -38911,11 +38890,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var Star = (function (_ShapeBase) { function Star(options, body, labelModule) { @@ -38944,7 +38921,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Star; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = Star; module.exports = exports['default']; @@ -38961,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 }; } @@ -38971,11 +38946,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); - - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase = __webpack_require__(109); - 'use strict'; + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var Text = (function (_NodeBase) { function Text(options, body, labelModule) { @@ -39033,7 +39006,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Text; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = Text; module.exports = exports['default']; @@ -39050,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 }; } @@ -39060,11 +39031,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var Triangle = (function (_ShapeBase) { function Triangle(options, body, labelModule) { @@ -39093,7 +39062,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return Triangle; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = Triangle; module.exports = exports['default']; @@ -39110,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 }; } @@ -39120,11 +39087,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _ShapeBase2 = __webpack_require__(111); - - var _ShapeBase3 = _interopRequireDefault(_ShapeBase2); + var _utilShapeBase = __webpack_require__(111); - 'use strict'; + var _utilShapeBase2 = _interopRequireDefault(_utilShapeBase); var TriangleDown = (function (_ShapeBase) { function TriangleDown(options, body, labelModule) { @@ -39153,7 +39118,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return TriangleDown; - })(_ShapeBase3['default']); + })(_utilShapeBase2['default']); exports['default'] = TriangleDown; module.exports = exports['default']; @@ -39170,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 }; } @@ -39180,9 +39143,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _BezierEdgeBase2 = __webpack_require__(112); + var _utilBezierEdgeBase = __webpack_require__(112); - var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); + var _utilBezierEdgeBase2 = _interopRequireDefault(_utilBezierEdgeBase); var BezierEdgeDynamic = (function (_BezierEdgeBase) { function BezierEdgeDynamic(options, body, labelModule) { @@ -39311,7 +39274,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return BezierEdgeDynamic; - })(_BezierEdgeBase3['default']); + })(_utilBezierEdgeBase2['default']); exports['default'] = BezierEdgeDynamic; module.exports = exports['default']; @@ -39328,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 }; } @@ -39338,9 +39299,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _BezierEdgeBase2 = __webpack_require__(112); + var _utilBezierEdgeBase = __webpack_require__(112); - var _BezierEdgeBase3 = _interopRequireDefault(_BezierEdgeBase2); + var _utilBezierEdgeBase2 = _interopRequireDefault(_utilBezierEdgeBase); var BezierEdgeStatic = (function (_BezierEdgeBase) { function BezierEdgeStatic(options, body, labelModule) { @@ -39577,7 +39538,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return BezierEdgeStatic; - })(_BezierEdgeBase3['default']); + })(_utilBezierEdgeBase2['default']); exports['default'] = BezierEdgeStatic; module.exports = exports['default']; @@ -39594,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 }; } @@ -39604,9 +39563,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _EdgeBase2 = __webpack_require__(113); + var _utilEdgeBase = __webpack_require__(113); - var _EdgeBase3 = _interopRequireDefault(_EdgeBase2); + var _utilEdgeBase2 = _interopRequireDefault(_utilEdgeBase); var StraightEdge = (function (_EdgeBase) { function StraightEdge(options, body, labelModule) { @@ -39689,7 +39648,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return StraightEdge; - })(_EdgeBase3['default']); + })(_utilEdgeBase2['default']); exports['default'] = StraightEdge; module.exports = exports['default']; @@ -39798,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 }; } @@ -39808,9 +39765,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); + var _utilNodeBase = __webpack_require__(109); - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var CircleImageBase = (function (_NodeBase) { function CircleImageBase(options, body, labelModule) { @@ -39916,7 +39873,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return CircleImageBase; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = CircleImageBase; module.exports = exports['default']; @@ -39933,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 }; } @@ -39943,9 +39898,9 @@ return /******/ (function(modules) { // webpackBootstrap function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } - var _NodeBase2 = __webpack_require__(109); + var _utilNodeBase = __webpack_require__(109); - var _NodeBase3 = _interopRequireDefault(_NodeBase2); + var _utilNodeBase2 = _interopRequireDefault(_utilNodeBase); var ShapeBase = (function (_NodeBase) { function ShapeBase(options, body, labelModule) { @@ -40017,7 +39972,7 @@ return /******/ (function(modules) { // webpackBootstrap }]); return ShapeBase; - })(_NodeBase3['default']); + })(_utilNodeBase2['default']); exports['default'] = ShapeBase; module.exports = exports['default']; @@ -40034,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 }; } @@ -40187,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 90f1dfbc..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","configurator","Configurator","configureOptions","setGroups","setItems","_redraw","Core","Validator","printStyle","allOptions","markDirty","refreshItems","errorFound","validate","console","selection","getSelection","setSelection","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animation","fit","focus","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","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","_Configurator2","_allOptions$configureOptions","pixelRatio","_Groups","_NodesHandler","_EdgesHandler","_PhysicsEngine","_ClusterEngine","_CanvasRenderer","_Canvas","_View","_InteractionHandler","_SelectionHandler","_LayoutEngine","_ManipulationSystem","_Configurator","_Validator","_Validator2","Activator","layout","interaction","configure","networkOptions","global","setModuleOptions","activator","_createKeyBinds","_updateVisibleIndices","nodeId","edgeId","_this2","updatePhysicsData","_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","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","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","setProp","names","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","image","shape","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","arrows","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","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","showButton","moduleOptions","domElements","colorPicker","wrapper","_clean","_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","checkOnly","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","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","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","_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","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","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","initPhysics","init","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","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","_i","_cluster","clusters","visibleEdges","childNodeId","_getConnectedId","_checkIfUsed","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","amountOfConnections","newEdges","clusterEdgeProperties","childNode","otherNodeId","childKeys","processProperties","childNodesOptions","childEdgesOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","togglePhysics","minX","maxX","minY","maxY","clusterNodeId","containedNode","cleanup","clusteredNode","_clusterNode","newEdge","clusterStack","fromArray","average","averageSquared","hubCounter","largestHub","letiance","standardDeviation","hubThreshold","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","_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","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","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","_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","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","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","_BezierEdgeDynamic","_BezierEdgeDynamic2","_BezierEdgeStatic","_BezierEdgeStatic2","_StraightEdge","_StraightEdge2","baseWidth","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","node1","node2","getPoint","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","BarnesHutSolver","barnesHutTree","thetaInversed","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","desc","receiver","getOwnPropertyDescriptor","getPrototypeOf","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","degree","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_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 63258c5a..e4bc62a0 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.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 @@ -22,27 +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:.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){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=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(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.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(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;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(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),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(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?" 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){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,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 new TypeError("rangeoverflow"==r?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}':'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(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),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(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.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&&t=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){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(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 R(t,e){return a(Ji,t)?Ji[t](e._strict,e._locale):new RegExp(F(t))}function F(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 Rt(t){return this.utcOffset(0,t)}function Ft(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 Re(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Fe(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/,Ri=/\d\d/,Fi=/\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,Ri),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,Ri),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,Ri),B("W",Yi),B("WW",Yi,Ri),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",Fi),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,Ri),B("gg",Yi,Ri),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,Ri),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}),Fe("a",!0),Fe("A",!1),M("hour","h"),B("a",je),B("A",je),B("H",Yi),B("h",Yi),B("HH",Yi,Ri),B("hh",Yi,Ri),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,Ri),j(["m","mm"],oo);var So=T("Minutes",!1);I("s",["ss",2],0,"second"),M("second","s"),B("s",Yi),B("ss",Yi,Ri),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,Ri),B("SSS",Wi,Fi),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=Re,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=Rt,No.local=Ft,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",Ro="%d",Fo=/\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=Ro,Ho.ordinal=Je,Ho._ordinalParse=Fo,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=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;){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.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"]}])}); +"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/download/vis.zip b/download/vis.zip index f2fb83dbcabbb2ada5a5763d96ecf3c5fc19daee..63d43bb6d67ce603bb6b127f4b996b43909a688f 100644 GIT binary patch delta 1371179 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

3Y3tE$eex>$U06~I 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

!P-C<2;E+ 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

W=Ns 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�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 >Xw|VuBl@r^w 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ⅇy6*L=c58I>k0(e;oz-Mh=B#{K%EfJU7Cq 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

rMUL6XmPyA&2|E#jmL6bERla#d_M02lCwixB) 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

9+?XyZz9>DLUlAkOFSc}-)G_|6?*6mTSPvvZ> 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�z&&ChN#w)ZM8Q5ell{azM(0w3QGzQ%=OFk2n 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 z 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%0A96gfLbC@#;0b-+wn*j)iYti zKR7SeX-dBEfrSxGZhx0NI(2*Q6y;*@gQ9$5Vj`i{5hvxhKBQs=N9Xa|n?}`MF|YUA z!`)qd#m@S(wB{c8>lu=O6s{(*^QX zMc>y$^vczn1Q*QL-Pln@vHelILpI!*`qXVu-DR4IDTv0_!tmxq&7(RP9LJ;z{y2%5)oSg3OPgO}$+M74Lq5Jn? zJMMH#BB8cT^RUZ?+FhGpoeJ`Vn0T|qrY)yN?k=gRsX)~!U(Lb&(^HWko^-}l(I7Oi zO^15ccdMf>!hhy~j;QeWMdIh#?i{uzPSh^ZmnxfUD93*#MqJb**%JlAMv6^gxJX=I ze;WI69BA9|5FU8h5-4)UXdd+6;|zQIzB7s|j&%{wU|QUJ{s&MVm_&|*?>wQi(I{mG zYh&iY>iZ!RJUl#?`d`S#as1YgC9*jPt6LVSCXQOGLVs;Hfk*nzc!&^Dt7q!#HeE3X z7jPK-_0_bNVe0LCKd)>9adDHM< z&8yBAD1Xt`+M27p`m>zHQ(c9~mhGM$UUCOMU!75V|4d(I^(S*`hQMPn<(6>&%r@*D zHXA&v?q!F0+2YCJm~KnK(j*IV_5_*pH^C&kvEIZq9ohHDi2emrUiUY#At;+8kq31X zpxwV>>e`kykNKmLP7B1(%#O#)akqLRQ1f2hnSWQz_hS6zf{S~mt6shtQ*_vQSmLu1 zfNIfi3{!QJ!-g!9an}&3yX}NGZLZpq7HJjXSQs)wkl_4h*rdG{Zn1d93W9xq9xy^f zX79}W*uZveBASC+T2;xk)Ux+`_SyM&#q}#F=pt)rHT<4I2Y!|0<?8p3tOEM3jao;!tY z6HnF&;sbz0?^9DK`m^K?9_Rrf&3}imq>dYqZgK%Ap4O0rh3FZuvdoFv9B$;=?fy&& z3q7Vt{H1U1w64}t(lpJeTdZ+aA%{5KJ3g<(LU#Uqe-*Wm(pZ6xVNU4OH(v+KE< zWh3CxD9VCw5U|Z4T#9dy*E`n8IjU3a^!a4z)xh%S)6!R(QM(uXRP54TI9^fABc6Qq z{cyBLf?p;&p;K4QkZdApXmbeqA)2s5-@iWJn-wAxw9B&oSt#Bc7WZe+3@q+gUZ{`S zljTkQ!!Eq(^n8{vdmumw!GDl(FcqDb#3twtcaFC@+N!Pqa{!3JviNz^8bbNa{eg2x zrnpP_XrL7}bS`?cw2Y85HGc^;dK3RsQWQi*9HuDa=L8aP$%7^1pFyf$!y6b)uEg!- z7qbjEf}13LvF^`Ef{(hP2T>x}lEv-o<|ft}M6Kk=Tiy(-B3g_Cdw*EdVh}xE6C=8j zAzD*W!-Thl@eD3Iath<2OmqDC{=A~8jJ;GDv*qW_%F8HH&9C4&JTcH{5ib?V*7`IP zmMpgCL_RXj{216!VSaabs}L>f^3!rAhrcC-y|~mBRZ-<@jkHi8&olsSI7N-8~=~8pQLuG|0{YYUB`%x;G zwRMKL9epUGqKR7YE(6{mu&In1Q3`BJK`VSAGfF*VdJSf7mwyV0q~4=}rWf2_-|%;S z0h~tH(hLPPaW_FF^Yrn>ZxZ*{J7ZJjXoHi{5SBk3-QC0Pm^OA$$10a>^rC_b*Rn%4)DU(7$3TuGJ`=g|hReR+r*=WCtysid$l`$Ha zd&EppW-a3GbMd^Ytxk95vyyXMQRbH*P;zmaDA${H-wGs~rzI3bZj)g2NCDH?2z_<` zeb0%w+x{3ARDyIGY`I5+Vm3>hgmt&6-tegM@#=P+bAR-Lzm4j*>h>1pl>*@?YuRla!SUAcf#(lle<>xnW7Fu9a{J zevF5Wu)U-+4v;vQ29^&UuGiz@y7~6dlT++Xv41@m#f3lIAX5a{Q=s|;@Y|SA*DukMJoKY%F)Jyvk{I8HrOCzz!ckUJxAK&c&?LOu+#QEc(wixWYy0@d1{-WD$Ry+F^((8vNNGtqS?9sgYRcnc8yXB(x2|Pi+Pk`v zJAc*ql=*DC%i1RTEGCewlC7yJh`82vcx_b3Nr&~M9A6z)Qn3av?%9KfByn(Xk_y(6 z97RK5Js`%amhGW7yJM>D+~16~@SIalt#uH?3A;oMp-*`o6;yZ+Vp~R{Ay4AX{wbyZ>qy4xxc%MK$>^CilSFd4Kq+?dOrkiT0gMXFN z8rRB^#6UEkv!Jk0&_%-2ZvKwLKT{j)FR1fh5NKYTN-XKQc`4MEN>c*(psK~5xq$!B zezbzvNc2qOEfxAUSBxFAZDQ@^v3`S#zkus}ERlS&pO2rv#VkxQBn*hJaO~3CqCOZf zl`^4RKDeVXssMSMDqh$xoR3`TQ-7zR$67$_Nu|K3to5*mKgL-5hFYG^-(NB0P1J- zruwY#vcCu5r&AYT&reTq|7|>$C#qVot3@DM9#v;wbhpx(U!c|vp(SX_sXFY@ImasY z3#NlPdg4t8TCrrntuV>})_-TY5A#r7Lp=?P--Ya71@&oF_NW{PlF2>w3dM1!Wez)P z3cyL6N#44>ZrEl?9cINlU1@@K2sifObfIM0>)O=AWs~$F3&m1pTinxeox84$8G1q@ z?7R@mVbA;!QaL|(fQ*&K?8e|t!3f7f81EKwdAW*=4V;50wXh&I$bY8pkISF6e2L;Y zWWG%d<=!6;zgX{Ae-e8>=M%yDe8Ns@^>x@`Mb zA}(hHlb>pZ*UOFn8`P1O>EXKT=XuXp1+yOHcA}TmOC0eKgNU%QJ2o?%&9yckl}Vx> z3LH&6#K%xMX+#?_p?{HgK2gOL`!LPp%uOO@A4>@Rzl`;XsQKHwA;D!?%)%C7&iHMA z{!w>M3J%{BA%z&|DGB6(hKhqpd|B^RqEKtLq17J1fSvW z^D|E1q8`S8Ag;V$J1TRFqYqIjCTpx19p-90ozJ@Bf^!F?`hR~Y)b-CU0&bfPADq-% z>|leY9V+BUR@@phDi^>H4^?EBUpX$b-sW>pFJxD7s z5;4&{3*}X)B#QF>gA2W(ARyGprFWA7N{b7wx^d?*C?+Y8=rp=F;Mi+>*=tx0~B>ble^z!@Qc@TW$sz)A1_Z`#*yn$71eF;h}yM2l1-r+0ti z?VdA9K9&lLGeE3It$8^M7f2l3>;DBGZnlVSVU)vx7kc} zgko%`Y0lLS8j7}2ZTN6G3To(S(M*no-Ft0M0=&l_n8Yf1o0v zj{R?IOkfHWnkVK6tb1=qyF3dMeSdN#fyUwTtt_e-*V_J8CQRxaG`ZH?p07|at2Y_U zpbQ@&P+GUrPQRB zwSC7%3lIfzBiBjfC@q%HUfQz*#Oz5E(T`N46t%RWWDWvp(%X03 zI!%HRG&Qq(-qgLtKj7Had7h@Gq%(|?Eq~rM-xG%V7NGQMsAa0_2SXOYn4S!rfpvii zi^q`{Z3_XFFY{)%6)B3l!K%=FbGQAY@t`)uXlE0uqHYx+-k(Lfy8$N^hpRbdp&XVm z;ygVRc3GE`-h`$oa-N9k^t%G)RMAf)rW1;_Ud*c?5uJvI)mFF^w5*fz2ii(|tADUJ zpNPy9=WuZ&7p8F)T9cj-=F31RJSa_NP~+-&9#n8bl$KSWmS;~w>-y;`jvZwF4dcDm zFNiX^OuiDRhjSWFLI!9kQb!|?Yt`&)w4t(X)-s;2IAi>u`SP%{iPmNMt-ZweutX(L zsV3=!PQpqE?_J+~=PkrKI8*DGk$=+K3x7LgtQtpZU$D>ni`Nfhx7P&#)N|ab&IkHc z+8f*3U@XLlHqet74fRHUkp%&}P%aJ4b1PB?x71qTWWpE5-HSR9d};+&yaFY6nu$xZ zD$N{FM7T7JmNJFzDbh%G>wgxGIK2*-elfqNZxgBWsZ~J&9>r{{7P)+^R3)c&^wbQK z(CKx;@=F61`MrgH%)6%}uD@SjObXIKu8s{233rgWif@`V9{5U|;C`LT`j%^h=8S<` zn5H%ht(=NH?M14Vzu{}-5Q-Jxjo>)K>zIZAP>+C{Uam9ZGe7`IK(@c$b!mUa`^SXX z0*C30lJK*pOZWKsM<947)ltz7jpxFMm*|=RjjP3F2UoY{&@vz!g^*SpqGCTmuGX~u z&Vre%yt{esRpS#)R5iR@`+S2)5+~uP+QLkLwkQyC{&{GqoX>FK(K9SV9xy$bFha^>3q7b@O4eW<89Qf zR0$FIDz@N67<{AweIb;Fm_B-b^KhzIOS70h677gnaz&0y^AGbx?Y{+7<(m+DO=OMB zh<|v&9PsYa-tDirWI6rfOQs|2X#XB^k&my$KVum2K2m3E;T2nTH5PxtC)BH^Tp^iU zOO{^;h?(&l-WL=h{lwU;!^dr;{&}*yyF0`G-H8ryF0iwn^fan|mq1QVZdgCDwRC{} zc{BHmO=VG}R-TTr&Z1r0#HKq{%}O;RyX=$9V+oNamPPN%`u5@6T;pnGLaV4Q$Fife zG7mQwG_Si%D>k+dO*wywrVng$9V@iK=18yq!N8THcZC}2h_P}1V#!CXPTSJh-1@jN zwC!)JOI`|k4>^;Yx8#xWWlvG~9Jbj2)b{iU7n5mN3hdbVNtS4<;HD92N*YvGlx4V~ z>g5D|druGl$5qGmBrj~`nq2jOTTHkoE;b9_}DBT9d)O!CxR{1N3uQRaxp17? z*tr<14VXWAPK|SC%>3$Y7(fOA)e&2ktC^a*$d{d;4FdiExrxS_;8xQ;&lLq@g~X^f&(4^juz)&9=Tk1~q~qvYtZ)T~J! zh7*o681P{)|56f_CgV5Y?I#kOfZI$={5w`Lh!7)sqHL_;+MHF})OSI9p?-_WQW|9` z43w_Yg>8Ssl}D{0w&pKR^I(VmIw%zLZ6+SXy#4#ZnY6I5a8?5s@#Rt;-j`x<}7%s=U3JZP1}-+#&klTgo0Rj{xb z&D2y^x3cz^_qpUZIMJBp9Bla)HWd$cuhR1C)YR>osoAU@Xs-Xa-5Mt&?wwA~jJYH{QIr)lA=XeeLh)mVXufVk=h# zIMRPd?f%dR-$}v==eQYF;Q4Zm?no7$O%|W;+<{$-i*p#FYr!N!a#XUpqF|N%e8<6k zhtpCnyWPN;QC3#gYWi=Z9I(&-J}PCm&7D7b!wluJZK5krQNW))ot4&0eoVsFdEVCS z%EqNXJ-d0h1Z58_(^TCz&gr-lGvSX49W?CuGiAxoC@;c7(n0J%`p>gIQ8w z{T^RW5aRnd*ZnT{?nQ{F7y`6R8_>FJC}+%dX&e=XPAfE@N&MS<-W8E`66kO{PFR00 zP<@8&X#}-?_k5mKqWexZEf~i`?R{T_i@M!YscAYpEG6W<&Tu{8de(x#@PtWvmrt#= zmGoblN$_v4AZE6(2A|S=6ST&vtv`b+iHlm1Tg|@<9z=$3R}DaI)jl!C=3v0?*M(T} zPhK(~`ahD+DZH|-*}`!;=-9Sxqho*Dwr$&XN8Pc#W7|%4Y}@AP??3x;UG1l4t*Up- zHRmYU^!sjS1M}>5`X!z4X_n8}L{eNlt?UC(svV0l8t^AEuJ=-fzbn4>O=RR3e;`Bq zvaf1)grpXQxhVXDudR=tq&Xb}0%mlyPRed@L0^oqOg4Oz56LFP9|jom`I{0lz_ zw|M;yoLziQ1^~>75?{Cu@j2j2u1%cje*cOJ!uQLFV8NqZYf3XDwDT-M+>sP4tvaRj8{3XCFGviD0lu?MjT z{;NW1&)|DCFc2W;7$lOuH4lGpP!nvL&m|y_<9W7Dl5sv>MFSc?Izw?pi)&?I0K8bd zvVgpcnNrO*{)ag@Qu8kWF@MP8^<1zuEYyTV`qW>xT2)$2w+*hHe*{Nkw!g$OP}PP~ zt}Xpxh>XNa)DH(a(l^I5GPG|Xg}_0g!csmK{en6hLE=)+1Atg;b~%54_?FQ=VY5+&Ld8fTa0fyFfU6dU|?z zc(}NLcS-}3BwT&lQN%=1<@0&ExS0v~VvW|?B4k=95bKrmWFm#DZ01NCU|E!Y932-? z<>3#=wPQDnPepY@Rj_~ZU0k@lU((Ev<>8EVm`gjXRvc;0&+6pFtSiT;jIZxvNbi&# z5T9)73gw7N!V^9WDglgiMd8Z)V&UH{D6Gp#GnB>^o22D`eMIyjsfRf>qp=GJ=t;G0 z<_!5oLyGcUv~*SPtuLxzS${-AFRv83ck=TMr+4pn-Ild%Cdz*crRXS6d%g;yLj#34B-8FJ-8Ry;bnLp*$ZsV&3qSTcSioNFS>?(KgoPFRn-EoHF%YSG!c_NJmA z?y)_+LB%>j;sU(9q%6q-hdVoYm9##f5y7-Z!YV!?DVlfXeUUbr5Rf~qD~A&I7mILB zXBXAjP??lVu?gM7W%&Slg}(xJvDXn{?@3gOr29cMyHIOl?M_squj8S`GGhIprCU!r zVN)j6ydr;I^*K~;TD0ft84Ld+gad*}^;`bvuTuQV!I-cXAs!x{|M%zfrO^^y%1)xF z5gEerFj!CEXn~lB$10nPiuNIgsztpp6`Ip9{GUCFl_k;{WH)S0kYZXUA)@O_9&j&P z`#-$8{R48^yof+JtA^K?m;Yoz8A{AE-OmgQIYWON*+j7+%M=KueOvSBi0rRKCsm<9 zqnJw8^1f^?%oupa>N~q_dfOFoSTRZdddku@LlJ==BJ9 z^*2F5yJdgPMjf6#?RcLdo~3O*ZG@UG_lJf5!>?;71jn?ani~n#gC)GD|FUOA0 zu;Yj8R=3~!T+V1XgUjh9cZYSFlY2J#i#u1&pFafuNr?V*<-XqJs-bhD61edFz7}aof&YlGL__sRt zkT>?B1YS+Ui&~}lkJ>05Jh6y~h^3{an)q0rkf*lu^9bGF=DrsU%GFgoGH!oDPu6CI zwm&s0;8kg)^Cr!g#+`wu%+{ZwK10PPy6en#!YASJSY=oLO2TfqC99{@!Jv10 zNhQ$8pci;Ltgok+)S$RiFC-3PTe!-@?w^F0liMa43c<_vV_#>3Fy5kR+}qt0OQNBQ z=lma|Lbveti+u&`^$I>SH^m`~CobV(rpXk0Nxgh)2}g~LDZIkJ+d z9ip+k*FOq*W&F4l##W(yO0t&L%FJHsVI+K0HFar zDpbXYvi8`EOi?vlU?75x`3y9nip0&q{k@Cf+wZb}S;Wj;pk-~P`l^3-tg;x38|d&< zRn3hoGZV+c<5Lm_w~v6lMH*o3uml96%l*j75^_gZS0lCO~c)WCx`t@Nq=$MaUN#O~|`fIOjxO_Afw&ELk_$Io!5A zFTIn#YQmiFLk{Jsek}bxfr!lRlW1-@%KfFges7?#?TeQr$9x!qZ&Kq^fw3JBd4~|g!|U6in*@+kM7snVM+-^57h~dQaJq816CISR~w~H3RP`2CavzbwQIuB-wjfP z!(S^_`7>o9QV*tcmr1V)M}P}QI{jEAEEr3g##=gEO(cKYQYJU&9RKvBNH1?_hO&5i zFmHFP7)sdf?cta_=-68-NK$?x=`*eZ*+lNoZImW`mLR`lTUl0Ws5eg~cN1UlEo~P1Jx7QI6$) zIWhs)-zoL^=umFyDdwK280*$3uT{qAaZ_;R#ieV)yjAw9#85rGXNwQ|L{=e~lE#7- zm~(##!u%QLTW-7bF`3N-yD>Pc&x2a$qF7IVMcbH;_PVNvv7S{cHI=wOzTU6nY{@x# zoq%gGUE&bg+1Iwo%n>2oH1Zij0~mNMwWt!}*{%}cQXXoiL^Gm?K`Rx@h4EB9;wXp3w06R)QM2c(QBam)`E5PBaoR>qiv6s25RZ!D zNSnso&Vm>CJTNq5djKYM$@HrN=y-Mui$?? z!13AE;}655Ro$dAQPJRjvdK5(;< z`S|$!=j{`+Zx`1dVN$S7cBU{Qe6z0I6KK_JG z%;s<%1>ylJnrrt#j%pUSzd~YiSpz+j_x<-W+FyTh&RZ1m3093U@>q$e&fE(H10O@J9Zjncva`^d!c%m3K)qF zw~$}m$wZ4IM(&}EDK12f3B#)R;jxRbc%fmea2bc*cvdw>)q=h3;=Y0Ox+XEo8vSMm zO})vh>Kj>R+t`c4`wLHuNqe=aB%Dv-4_{kX7dc|!Mt8vX*TsLuBn@t*$PGjioJ|EX zN*{#KV3qp5Vx#5+J5THuT4U)t6-r$uFP!>efo6-UN;KTvp*8qrN-P?BFzJ{_(sRUvo2E6^`GfnvtvV=v6`h+Z<0ndAGr#)gG=!I55rd60 z_SN0FfBsyJTdaTT%v7gmh|n>vrFU_t<4E2rH=VeSiZPRctHJ?$Z<|?Ulkqj(mZA?V z)B6yAZ?31E+VJYU_7# zUNJg@3z?-MAgN-T*PWCuVQ_&h|FFZ;|Brwl%}QsNaQZcqakR2jSLQ$x|c5^!sn`Pgw&uu zDoU24SXA_tbR-=vnQhvM3^r@1?E83@_IsXL5KqnjKl{yq@9S?nNiaRB{IX!zjn5_@ zOQf=ikja1C{7^E?ydvZ5=^qjT$zhMnp0qvnPemmrMf0mwXBm#f zD9mEpK?X`<^Qh|rQ*ycFEEp{soLE7lq$WHRO^bm%QDMJ*_4zoSxAbz=WU9ix}B z_?{sfJp7%lGn`$kwwq~V<%L44SvcTfiEnB6owt8)1y8cmf%E$CpvtRYuJJ@>)cY?z zPFdPobTvLz`s^zcVhvYx+MD~~2^jdZ(kG?$Mg7Ww_Y!2NVSDfp1Eh_yb~I*$>GqZ< zbRpmz20vmFK};x!DUNnD^sQX>fHcmkqoVWa`k8t8Edn1I0k4=1xW%;02A0CJCx%3~ zmwbP9jauUT_s?fpch*)@92N-CJ*BOI!F82MJyl)2g}USV8NMd2q5Cn(mXypbS~_SZ z^T2XaoX1u-QtxD;=(pjoFM(#9HoO_^Pd17utHiTW?w(O#T6y?k#$FS>KzK^KRaN{$ z94Sb2zsRDx9WVsft+%q0w%w&F9c7}Wzc+tnEcmB(HbMrgM`3fYsHLT;mHtic$SQGY z8Uz4Cymfep^sdQ6Ef><>pPzT0nkx9op+Qj8UAG1l)nOfqdp z9VG+vs%hK9qciQXJN4(fI7aa~MHYB3f9R>v8^FzQrqW7jd8*7Hv1-5YpTe|7P?GF} zbkEk}tb?JI0pvwQiGSRCwzpS6@HT%m6sETqenWbvmY+?Y)TWw3TIeNafU%UM$5E-~ zn`lv5;ywdoetJu0bbU6idj&_z_YcK_<(B~qUYw%r`=nZw&fe0(++M^o{K4MQ=;b%!J;U^SDhMz;G~mJ9F#SWmN0kABVcB@?=H`E9>YkgswXojeK)kM;y8PvCItI_obN>1MY#Qn94nDRk zT0XZD=s;e7d2}w9v%__J!CORy#$U@6LlH$z{f{S393XD&WEL zB!0=>>TkV|t>}*zu*QFel@dK=+RDoA+gb;z>trLE(Gu#*d)GU4f&v1~aL&IC@TDF- zSqEQmOx?L5rD^HaIchL@cFwr)ZSt;q3@h`Kq@-)O=G`%OJeRT%`9b9sM({v2sjn z)yf}uInT;L7Dq&%Kxb7nkL#a#YG5&nXs@a8-7|J+@O76_K@9UT-20wZUkiYH7wyDF z$qb3BlM*PTIYvm*g^(=K;f1nR=^Q{Pi`71yb{lxMrMY~Em}*Q3f*qleIT zq(;VT$z3aE99w^ZgX2Hyc~xHBjxfFHv91Rr9p1?i=1_jp*THkApS_(cp1&@lV}OBz zu`DoOVn{TW(DtC;Jjz#EVUv(64h(Uq*odDQ{B0nwZ1;*Y;}pfY&GzQ`uK>M^b5ZD!;k!=$&`v$e?=>hO~hqPW4pn z=Aw;A>vVtT0U5d0=P=uojb9cp(=B=1`L_xl60BxgY_pB3MKx285~^(s3Gq!$W}z5V zDneL$H$tjz?cK5#=QNYNEO%Txzz7>*V)78BN_J*R&a#llxfAXwbdVrZou6U^GDZ zekc|6f={@~tm3hGsCv@Ca|`?CQ#>N|u3*1!sq$Ur)6xr}f&=23Hbo;pmb+Kxji#-! z12li98e~FrzK$!K4nm$Yu_9JxJ4ViC?Qu9&(o7n{0VuF^B*4f#&fHVpgtf?uK1tK6 zX;6+2SQS?M3p$EkW5ss}UA+;AM*qPU5xhYI*tT@UWULe>3@&|EGr4+=NPaGfdyIju z@}v%)dTN_WC}8FMqZ{7aZ$uKsx!3E$%c_4SnGvJY>neI(jK?+T3T`KOrk3`rG=9_O zq^9dBt3Hepo!P;y6QkeDP`*rTk9pk{)BP)vyC~eAK0Xs&q}dcvZFW-WYvT7V^?m<> z!S``HLO5Z|&Tz)S(d}%26@HT`T+=EJTRA10tGaH@>Ft5nP11kU zLCIWa{-YS5`@CAeOP;5u9H!I%vz^P_w^Sfr*wo}Nl=XtW?`jEG9)Y9OYE2){pt<-TlQTEtE-a~qk21f{sECzdg~hMb-<2P6C84=$R)J^*(lC=(iqTut>;nzD`+ZkA1h z%y-LD&NLVnWQH~%i()VXqHXn%$83I7)uonaf}l8!++4Nkroe5Q(}bLb&cc7f;&PLE z3q7|x7i!ztyXeo#w#(9Z!rP~!UGJ+=F+uCMDS>lo9*1f1qKKW9d1M#dLA$7rh^ zf?K9*vm=>sfx z%fr)1XPLZQbXSh5H4FR2fAXlCQEj8I;o|OPNCh2`-|pHjo-m-`7>C!d3Sq2>x~27F z^*K8^5g(Mwr<;F+DD>c?g}euVSdN_GF|XqAVFQ`@^V!l#@0*kfyc{CButPW?eAVGx zTqdr`cx=srJzjqQf!;O-=pUy&?)*qz6H$f;U)RJLN?x5PRgPbsZkUf_mtIc`+gM-c z{h!#{lD73GRq#{g`~~mS79opN6&NBf;-o@0?0dTxW=DUR7R%hU0b1s{bG_B&l9=jZ zDb2X9eF{Pw&8qoH=l5Q~^CFuvp8muMEo7}PT|=>0Cq)Yb)C~djSonYTR=`$9PBmJi$W=Ou#MtOj%KC_d>)u+g5;jfb$2(^i;{%Aa}*I{w`_5K;u}_E)+0o8s-K6uKXk}W)@3Z+jVMslnia*GoQIDCvml+BOQqWVRvb8^Mmqz+gGcPlBW{1}aK1*y33elB*=NE}F+%x?JLDps zY{OKERxR*RB|N6uNhrlkluB>z#19dS&ZQ5=m?8U}a+Oe}?3>56j*iw4^HPnPBYtq6 zgInOQw;z0=nQNCFEU!Iv`tpLj6Ul0PKS6P%_iKv#*WBFr^>$Cd>m7NBAhwB8cAs8X zM+blF#MP>mgLD$#h7=iU&-!FbU9w!R*;d7lfIYiLt}17r{3rGG4<8$C_eNzjEN1U; z8U6ONsvu|2_a}NW1uz_XZ`5FXOeSfO&{sWt>lgs8KO5#a8btDrBP<(^M#GZEuQ>#g z1&zEXU^BPhy|ADB%j4lh#{Z1}3SP1SOaXuDxkG9fcmxdahXl$rB66ueO>(>0SEyed zsO1)I=(HN%mN+qLZPYGNl`f9zcH( zYJJ}xsM+F*HNai%-;&+iP%>+G(rTvf4Bq2(H+O2728gb8NI@{>`*uVub`kIHB+YRN z4kNJra=r1+v3{=+yqn@;s99JYx8Bg7uCel}bB3F|1HFw*+{$1^*fCVB%e|R?G!w_J zo3^&tAQ3+iFcnsJmwedbnZFV_bd!I_WBoExNyD*Lu^5|HYsDNfC-s3Qk31lV8;PH_ z#03n#vlT|8QaAnBnzb}q#@^W8E)}jic$$Pjv8w0T=AbNS&2UnjM!iTl^9(%1A(ea} zrR5l3%$IeSOhwZihov-_Wyt8HSHKo za20v1UTFYvFS=z=YB&=^xmIY^Q@vQE6mp{+#$mX-SjJB4H0{$_~7LiUU4w#kH;gslWfp zwBzGrs5|mbytzjD+W~QF=YM}ouSMi+%2Z6&hc%jao%rO?v=;E15x{Ju$|J`sQvrB* zu7Jd+h~CI}3Ou^zz>YK#ojOGw&lo38VplOr!$?1ErBBk;)h$yVljGoJYA@zEMf%ZS zosoeN!oNGv@Wb;E>ch?Uv#$^IyAn^vwTt_3V?}p5E~wu6T_ zpY&zRb*j~FAs9B$S2_Ki3qA`=r(wB#24!7-f>D=6DlRewnikmNlCycn+vpqQbafNi zfCf)6PMiti6h4j82jLoy5)JT;J?{f?&)faIzQ}x~p`r01Jzy;neUgg)SFC-B0b}01 znOtpNHx~)^p5F7Srk#Hc<;8$+VPzJ8yNW`eSWec5dYPvgQHpX}NOHjqOwNz5yAAXd z&cXZd@&T=n(e=QY1-k{A;qlWGhC^l2^7(S@c9)OEN13UlU~l$n#rPveij@!L&xd~L z_5SIMV2*3p%mqc_eY#aHLz+${c zFrNtP-tklNrkOzL2r>bTMHu+QVGfSPWUR|^^1z#NKplV0MN+wCKk%qu=0_Nx8r^tf zZ7|avxt8J%)}J58?ebGt`%D@H9s_s)F>_}3O>1=i9~6!*Zgwa6 z+d%H;$^2smQ%Q?QI-E@4WjnA^;z&%5B?g)R4v(jjWnVNiIZFnw|BTEYH*Qe<8G3iI ztm)_8>@R;)+j`s0S=j(+o0gnqUKVeT)`}*JMTkd7KQ-wmNouzcj?Be$Tj`@{!4b28 zn>tGQnGyr^sThIFE>_l?^@FGXD(K-*Zo*J*@f)J zLOEU4u?OR34-=6VN?n(>v0HHN>u7CipsGyQP&Np{txdBk6WjZKjm&G84(R5WR+Xh1 z$<=?>?Zi$2XsOjSIM0ScQkAZ=DZGfy#dtB*D39VJb?kmghMJxMtz)@)OGI=6mH}Gi zD)N`?cTHKQ8h8*rXLKg)&(R(o?d=V?qJ|6qnGiY$#Rj7wO*AX1${SQZ_2}3_ zYJ=bsu)o#AFIlH+1N2gCI}LSzPruWRMX`T2V5!@O^#2|;m4n3()x;7*@C040fzs8> zz3Adwz~f`)jso}giy~b8IXC>fmE#b7$}(KO%^|>;GP@EW`AUmzN3tuo7DO~C46(yy zP(Oj<6Xn6l%|9*AqEi5Jm1aHdEpr!3=k%q1A`XfAgKLm z15zlmVFH!ui;2@wC@qK!Y7;KlL#$yg8fahHUC-w$d|Y5YVBmdaa4F+UE_a@^PEfyW zd1xri$uEf{9di9|ULTsEk~GGzaB)~qyjI+;f@JJoPg0w>dFuD-X0%svT%Lb=yD|d* z={ZmLt0<(nJ#A_1v$eR2@MR8bw8*ZGWiB!4s=0Uenn0EX0@*P`nU+oBrg>$6gYw}| z+f7ODwc>+^Jtxj}QY9ShX-UW0x2)E!=no;AH~O{ZsnHfWw_tK0{SYNvLhKvI-KThx zu3*3cz!u44-kG_WrP7WhfBk=r(>x&g>rxEDhN5YjZJc zby#&6>tf10K?n8qtS>42SRE5e=?bmi^i)`T{;(vj&hJv!NP#LX9Y%i!JxT-=m!w02 z6fI4ZdqTp465-ks(LAVDzpH@ffE}Yzt&{ymOvIB$mrP&cT7#Y^W7RtMk;@Qvpp=7y zjL%`XnpzuRJ~ZWXt>5FnDV_>SV@-SYZ~Y}!^@1^!yRy~d#T_M0s8KlXwVVggHNj6K zzpMZUM@i6WQ@hXG0fK)#+QcpUB2c|gBemQwL7>>{s@v7>y&IQ?VFsn0Y==ef6_jIe zk=29<&5YCmR%6!14fFo~FE>FG;iWrUT6TCs`n=Kg;7=o~=d>Jg{7G(v8PQ-V8x081 zlvLvD9QX{$3sRkz6e3Y8u<_T1=wtqG@?JOEIQtVJ@hTK$)lz?iu9ZfRZLIPTLV?xR zq$V^2chRd>$I(ryK(^b$8{`kmt0KH;XUVv6ZK z9mKMp?UX`I2`RS$)KA3N4J8VO^kD?pbr!XF8+wHnIhR8iQDYY_l7zPBa=!2`St4aM z{K&7kIg%Z|*SUb2^4q`*F;01VlPezF`zypv!&6*^{9=FcJ{_&n_k(@C;f+^rAYm{) zPfog589llaUlxk&l&4<)3#xEg9)_Ln?&5;5HJXV2V{QJ2(3q%YZEda1v2D%{u`CVKf`ZlE-rnBjdP_n3O(r-%uLDuT-(}xii|KxE=dy*sLS#Za{fBxUhLW6ah~Vza!7Fq#5f~CB9Un zq~st&Jv}|6mh&ZyN1cZ@z0=E1tA!6DmXbXa8?=8fvAKb8t2B5w^#$eD!xOY%MjvUy zzNNHk-@^pptkyumdA3d98S!f0@VsPDmIcg}`3yTdu@31&y)VGH)$ z4$-dCe2E`d>Zdu}&y`VSUVNOe;^zoc8mpF;7HNw2@M&Ygn6={Phrd@Pp9&ylkn$o>u`VO$Zs=(m3~W0<-ED+d`$6R}GjHj#s~q7h--pDmp)ThL`HfQl-8No?4_v!+94PX>=t>beP;a!mFQ} z`RpC&{>EG~6dDP;m^7+t?M>EuSB3#bdHcU`Q5v44DV*bv<4x}zd2BD1h$zIIc!hsP z>tg2rSUi7yz9-GlG*^ny01@WJ8%D@|}9Ys?WDK?Z*hyx8`taj^aD-aX?33 zaxSJFE`A5w)g~5|73iEx+*C44Ho=;d;*3Niwo4 zNzE2WH6bS{ckUZ_zODGMu?MD%iq1VP{xH>4Y9%rJlrSW>Io#lUc1$bl{umm9gb~26 z^zXG=`By7kDdMtwq)WC(vmKMvkVI6y)gUvjl4U&#duaRc7-uuC`{Dp8gmPs3@()61U)bxk>g6;A$8`?uou~-fx}e$ygpva5`Y#n%8m?~b z$yG_=N~8q2xs8JGs+)rjcS;=@Ff_SMwpI;xyLTfRcp7mD_kDks0jTTsS09eV%M)4} zer`s5V1EbLci1)Yxe9lMV>4X4cIu=LuLOUN-AW^oE%nT*c39aWZ(og6d0pNqz6{-U zyn}A_)I?15w6^w|r5DGL>+0(h5D;{GKf;a;KIabv;Pt)m>bHq-;6B~i?;}ZE%-9s} zgr`*A5M^@Z)3ASEA!`>ftIs$+CXu(#s{tvUc6!x`B|5)n9v|7$*r!bvKCuPFfV0`04rk!7whKo$ z%!gHj>{%>b3G7(}9gAuSKs$zQ^<6i&4m{K88i#em=C6ODS<&x+4{V!NKHkk@qe{D; z?FXCTGlE;urDvmskNiDO$!9;i#J{;S6`{3Oac^?5JBQru@{c4@AY8nZpVi$nTpjGQ zRs(rVXzK0fRh8BeQd_aVIA&@lwjTfx!SHkQ=NqxAPft$>Zz}N-a+G?~thvL!2lnDw zCRohw%{+gajmPiL*AYYH3v5$zB3Zj_8TtG+f#oB7YK-mw3&MN0oS*gyZR%-Jptce zdwcy57<&;HZi{UBhHfP}Ip8gZZ@XJw@A}mI&fP&(1xPet_nGhls`pG|? z0pH!;Uai0ndwx39R}o!8Zr=2sKe_f4e;pW%OSgD-V${oRe_BYC z4UK;;sMi@xNS$*j3!W}IuXaO23%!~GEki`n5Yt`oQ~N?NHs9nasfCmr{rrBKz?((x zS*{sxa+mAnT`192vr8DBryejcGM0PQ7OCd;k>Z$`CM_fDD8DuB7GB~%rK(%6N9Zo~ z)=Zzb#Djq3T`xN8lnecB?B>AuA#ncmwA6o|uZ!&0)u#$vTi^+6nS{=g-5tB$@P;#Qk%Oue;{*65=zirTt71Y?Ox;#3um>g+IjDE5T2`g z*iY~9dV8*4l3m3niCAU@>uTXT)HB0ER;1qCxZ``9kg%WhazM*-)SuwSdE27|!CL!i zhDX|N={NXkg{U?{1A$n*8aGhf>h6;jhPw!`^~=A=1ad z76j|8X|p&H)H(k+7amp|fmLfc{wf)E>ygM>*w)Ke^F{VDcCjtG;=%&yYkiQ5KK;vi z8i{E2uz2@DRh4*3r{4!=d^&z{gEbd7_I}&3BmH8Kh#fxm(bn0?*4^6PUVzs(ll`-r zv@5f7<3k0-qI=o3D05SI_y~X8Ztg~hV`9s{)x|))r)#=!6{B>G-N)P2bCq2j73`d6dskj^39v zhZH@8&%nTd@axhc02kWiLF2I`fkuU1LlqIgip+E9i%&eqA(JgA%7kGS6OG-K72*^o z;l(Mspv8$FcTqfw#l{XI5o8eX@uGAEZ9(K6O+=jULgfby+C-o=V5&=_Gh=FobF?g+ zyho`qV<5O({%f8%%DaEKmuze1h(KL}Dpb4|(_Ut?rhGX!ks%$wh9I_1zi4!23TcI? zF@?H4g%pp7y`!OSZ9Aq^gs=?IeTr`PtCY0otZHu5-Ota@+gq9z-YE{DNuLI}H!njc z<+^`fyVO4l*gaGmD?<=i6LGEOOe`ac_TZPl-1WI4~o#u+Ii# zR%?9>nt0MEQ}7k5xHc1uRF*cKe_UtF#Nl-HQp=K`RQl0!aBa7r^tW zKQJ;dELkTAgV1BpK9q`K$>{8p&ry&XG44r7IB4R8{da$AhRn-#-of5}$%m3hcf zlR)hNo!+Y03Iy5rwZ>i}u2XQs_xSNq5-AlwfPU9OV0=b{`XZS6;r07wmp?CPRp<7t z#L$VDyIX&)wCa5a?t7r+F`@%)iQ!|!Qmiauo#vfXNJ}O9{5DEhuO3;1t0U7rJB~-5##s;KUFoon-%>r>P|o zgxXR|?RS8UIk05z`zBlSLS0wf0Dsa8VwIl+NI|RYBR3T>_xPg2fasN{q&J__KjOQ3^CWrUZAE&4UN!8 zcC`c<=(8gMK`FXJftcrKfsfx;9zFZxnI5GHdr81mw4rKsBRiZ5J##C%y0rsBl4Wt) zQSX22if)ZvE9k2u|2NQs*(-!ffAdxjjb($Doqt`%&flb!%LKJT0j`FQWHRPRYjj)d zVX1piyO7!x$n^)C(}?er&{!He(HUeN=?zqHovm~~X2o)YN(X}O?cry{vLb%aZv?8% z#QuC1cjD)EJ+%=N!eOac9iA@_teigE-P?a_XP)8JSGLqODrAHdfXoD1yoSqV2Ewev zX76LVeZ^t`lrrxmA~q^YdA8oe`I&Vhfkyej>AG)aKv@zed5Qsq^+Mq)TTSJOy)mx_ zr|+`Wn(zH{&o@3P8~oN$*ZujAy;*_|ycxL#-VZuCF{4KCYCk8Z+n*8SBj%`?X8C_r zvfzTmK^9vcfw6d_U%LYleIko(6kwQ=jo@F_-as^7HxW;62zTy@ssU&-w3HrAcjSe! z)M!61EQFmLH01*<=01!N0AxU$zt?=Bi23Vi&pJ>&*`r>bDnKbzeeF(vs<-*4f4~LQhZ;l5lmNgeNbkhkD^OPH9W?D z?YAfy)PaLQ5?1@g_ z6yI+g?h|*_tS_vY^9bb4sj`C^;J;j|!whudS{9aD585yEs^hE|=@Ebs*lV;PW-rXBA_ zGd=XIu>6ViMAS?3js#md48@GaBcn+%Ai9{3CpzMk0F2sIxA<8(I|j7^GG}BQzvDcY z#qlH9R}1W~GegYEFOHmQdU(esQ-;B;JXuB&mZlQF9|uYwrhyP6F9KXKiJZ)T;GK>Z zXz5lJk|NWRV`z+L6A8x54)ZV_y09O(kVmHrrO<={pC&p{=(MMDFWmLu-K!HBjB_37 zVo*>O!1RXM2gVure(&6M-qPn+Rdf!)370=m_a9!=vla z4qiT!og=TVQfjBc+diisvWs;>`?rORUWETVX0Sj`dflWM&ihs)y_dalqTG3 zqiMj4mBaqCUw>RlfqG!f(r#1M>ODvaLN{eL8;xWtEo;WuZPVI|Zc@uuIpcz6E~^1s zDqZiho%H!swtWQKoIvV-xa~OI@A~TMzkNwQ`G25=VDzRg*Z2IMtvh|s`a6c&M3C(S<9h+SLT_9Q+rVp}Uw zGwaK%mPz(WUCqyLFO{vAejtRVAd!9F?_b`pp5>##BUYta58rG$3x&Nh8Xee5HYlCw?5RuHr*__lVu) z84erY{`-A>Hd>NpuKw-yx&@)&$IPH@tp@@)OkdL zE=Jv#bU-)MM7C~WHu|mHvGMY1^%61=K+8iA%s(x^wJD*f`dPrU81n3VfiP3)%D;K$8Nc z_hy$?lcWjB_(Fu>~V75zx$>+1hZ!vl2!x)yTXh%RU1?3?tWyqx`}t9 zJtnv!bLyNf$#}rQN5}M1( z#a}spV-q;|Gu%=;tei^hIB|@<$h;q)jkBL+)VSUq+Ikm>_$(T|VEu7kts>jS39j~M zESN8jL-e7NE}@sBm02_=9&&%4^ApSV)_C3W|k6W?_PPMom&FeM};{P&ee zL#$?i`r;MGFE^Xs4Sh+tBJLeD+%aVvffcVuLL z#B$~AQ*Xl|ELO?p+A~Ry6wCdQARe+=tKr)4Ha?l}XOXHre}^6bcO~E|A9E6s7fIBO zkInffR7xUHYoN_?*+Riug)?sa?lRz8WS?!}&$Itw_7O3;_KHqP&tS_7kafWND*m&c67cbWwy)64H{N|)iM)X-oilG`Y6;$70>tz zpQ0~@%j|GQP4$N}?hV_GXkPmtexLArF#2tM@zFQ0AQ~}{8iU2dMTcb5eh$~QtDtJ` zjMhcCX%}-hWp;Q94o=~d=tL?gh2#O_88K&WiEdrj(R4cR;L$hxlh$y8S{cLAQ#%n+Zq zhtplc?-vR8oJl-Ku3^&&s%8{(i~~J$tW1R**BMjhxf^N9PUc+puIF<;Q!mgV&w*Hdr!*Zyi#4%$whRv}A(ajvZSC#Bf)0+qove}^0Wjz4LAsL}Oo<@(NSau%_a_XR2mk5m>7n%N z`;%=~$JagvH4qVF;cnS~u_*iH7!c3{SXy6EWSE4NorzZgp_!!D33@Nvl%F??>kQiW}o8qa`MPvF7g%zHEhsYGe>u0#vUV1$|JX%%V z#7*093kP0rQYaP33Jx)msW~!dWIU|6#lbH6>ZVg<65>|5xw(VH>urqmpMP`c*N)f| zh{%8!qcFpD7fia_mVAmt796el0L!G8 z29QA;Q{=IK{BZj@_*1(KV1~x{rGg_@RyZR*T3@R#V}In?PS7pfE}Mu4y}D7h)wV$C zY<*P-ht|&Q^@b`fF9?h9DdyS9SFE38J17Huu1CX|4>M-&rMWC2qJHr44hIns5~gTq z6>^5;&-@j{?N7n?{_j0{-VT_Vn@5J~E}0v@`P=4y+=|7OgJ;cq`f(81Yll?WZ#iQT zFcD(A1jV}nC4w%u$|A+QB1qL`!Ah-5;KL=6;n0I`fChRvC2`McJZPfS#HNJ1br;^a z-yjnrn}!7{oGRusOG$)*1HX3O8QLtqFfEtaKfSJR^`y>B0)d5==L?qsE^jk9P6?Ij z`B2$Xw~NnljPIM9x&$3wtayTB+*9~IJzwVz5dRKG;Qn8C&{++~k(V>(M1%~KN^&DYa(nzcNn-vkz2s#$dE2*RdO1vg z(^L(w`I8)Hx1e-5iFiXHegulW1?y|c^ZJlc=}@GG zENcw>UyJ#vI!@-*+XdXCe7Db+YdzRKFS5M4pU>+o1(q<~t*m=T@+)kxJy5w@QC=R5 zuYO^st7zoZ9m183yGxaH{xQ=;^$6#G;rZAn{EqAh3#k7-C(K3ObbH+E>jTyC{eOQN zuC&S2iHj|1#rLo5Lwst-@3A*He?u6ktSCHRs3S025)C#vR-;1e#EA}}@<@Zen2VTQ z__Iz;m;#o9i7}X0X;C9GZ!V4xE|f}4Oia3)%k>sVGVJs_pqX9EHwKd2{T^L^^fis3 z)V}vL0)yc~FMVa2b0Ba`YydgMi@iBbFr+fl&f+ir9vc{JrvAo_IijPGdIOQR*Jxh~ zM?V19IBM>|gue$Tx05C0P$ zg~=$<9HkNATPat$``4=8* z(fu_P-F?+8RM#_w0sXmZD3Z6+bQ=N!0)+36W5EdX$(EZa23-fO9hS=T3PJeKs{d>t52;*%;5zm9;u#x4>fGgf*KoB%~#IS zBxl$l7*{v)SFvdZKOh~{VJWX}G;@jR^@|vxbWy!Y;oatxJ+WJH%dieR9zv&3jg-a& zvYzqjoqcnq>?b!zXZOSO^z^#C?vKuE11bPN$lG}ys-zudPl(L|sed&ymA*KYY1{Mi zEURe7MaXc3oYDh-qqAU|_lU1i{G%0)xatnPlgx9e=ajt)}exs&8_}&(446x1NFQpe2#6qtf4r|102EP{A{P+>i_&btRkR?zYm< zJCQI(bqU-7m%pWrLFKgs2MyFK@B6)Jej-m3VX{+^>ilDj$qA(04PY?n3dMW+UZrUS z8B^p_UJi?Y>fv_c+T!Q(J9r=SA2Zi?)hSIZnG&WQ1|wiE?&EghpZNJFl`?}sVUDS$ zR;x}e8X`XV<42po4ySkhV&gjW))aELoZUrB6%wNFtX5#aPs4&VaYR!YF@Qxl`M&z( zF_Sjs-VI18^8A#fV5zn0`#zJ0jn#DV3bR3jaOjAC1!D^5cp66|-zFdeCFk#G`YB{M z*qhiP)Ny-LJ|W66-Sty#`(fDN>kjkFZig%iNz2ZtxNM+5D_1A~uUXCpwLc;vqJ@P8 zLP8;AP(iGjye>?~B^NpqDw*FB36&M;4fFs}6^Yb&8LB zdcBuU>fPhxJhCf)x!wQ1Uqk6q(<`&sx*uTVzISWDLRc zuP=h{WdP|J9)cADhYL%@!gHWw4gu85tPS0edIzp^xEPNc}th!X&dBdPaY1{Mg24d$ucBFud{*?KsR z`F;FT*LyW8Gdw&z{o3t9dM1dGY!V%Rk#q)mbF=EC(6!Ub_^AW_JF2mNynVZSRzvzR z&z_Nc=kwKw9+|%WJCkc}s1)#YOT-<>s^8;ZZD+GTLX%k|pKC^angn3=Le%SG&Q&*X z>_n&3M>LG1=Ees*ZHus{cj1(d5RgD6{i7#?O2E^+!P!^iVIq+)!To1{paPl+ z#qqxpRerT66@baBfK&=NMvQbRuJ*#3pY@$ z5DP!a@F!sn^(_7atd;`tdCI?k{uJz2r24gXXSWH><{wbJ@MViPMiy|^lZeABJGy+B z$G5F$XlP^;ZIP79!o>MTS9bJ&^c=HKt|8=#xr)q=gGLG9mMxb!AG%(1oiAO?P9GUa zc&Fjs-P{DmRQzQZ5-JP;v5-($0N7+r9>8(-Rf0`@m@lN6(XsMwF<^wPQ)vm*j_VL} z-{sxkrBlz;roR0TrP4YA>ZH`Rmzh*7I6TWW+t0r2?fL_e5YyZtGy6L#?22iTQ<8pgG$Gg)P zz24k7hN)M_ehx7h=h(p>@`J4TzurOO@}l@>3-nk9X6;RZQks`%x2kQo&`(!DTMT=d zklSJ(8qkBZl+dPcn)AzlVecKDU0hq$Hbps3sC5;z?g4-2P8&m*rmq2Ev{(eExN#Pj z9YJqfDmEeRPmZ0-y6A9@yt59~NY|g`57s>gErTB-&SnOh>@}&lTXF}6-icz_)2*!k z7LuVbzu^WYJcU0Wyu^0g5><^Am?nYh17|^#ZVuDPEtF@?f~Mzx^|cY^!GJNxEu#@T zSk_QTxOfbzrSn{Sxcad`Y;_NGDvCYamKNp+HPXt-BMgoR??wpb#Ic`>o&ot!;;Ges z&)x!FccH--ElYSEGi}^FD!#&$a&hg+gjhV4kNeEO#z(>Eqf}2VG8Hx5)NK?*gXNR7 zfyLAukd{LJng|tt3nys?8+a*Ws7qN4X~LgX)569wTDcUJnxHW%?44?+VHIvc+B7p_ zHsUClCm0Mg&x%tl-YS9ZjT7Fj#5)&@TFNSm`%HSXS#$qb!>q8~kj(PJ0~L-3$%{b3 z&)P#rNonq!$@xv2de$Y4pGLi@#4|}kLc-H=L+yh?`odp-yx7IZr*byvKXid#3Psb1oq9vw3%J>986yDw}Kin8~pLHZI4l=>i5a?^?uR9E6vjs)vMg!gPRL zd`QG^9N+t+xJV09t;6mIqYD`OfS_Mg)b>pcz={*gAP(rz^3vuNSMddgFdM6xN-Zu- z){-Nxk?e^|;L7X_2(qadWC>@8jjl>)ss-hL10vD}5ST^|c};MZ=Qo5O8y%wfQm;Cs zyr6{$d_1q4uWwHinp=XbxDLBBd4j|xHLQv664PD%Irkd5-STl;D_jhzn21eAPB*yE zlngY}g9vP|nWC>)ovKWJ#Lac*>a-`F#gnFW?}^80|2^MdvIahiveZ{tjc`kw{sSI= zIj3XNrLn})9kaEi#pAzwg}-%6F)dQj&x^CS&H5nVn!^zdlmZB_`>)wm=>mbB4sIBG zVp_|J#wr$CjD&Q*%-_SIw-lXLYMcQuw#4?{UmvgkMEcr{Y}H8L4KU=s*Zc=uuC5+# zJ}>V=6=)9$KpQu(XfUr))_^UNl9n=mwO7uhqy3DIKVHdpw^E5`82|ii&D5ds<*L9|07ODsn%|?sf3Rz+ECf#$?~Wy$M0L>7miRk_!wY57!6RE5_L=7ar7 zt`8XEi5#Z5&a;!i$S(YsbyM0n9CH*DItE=TVH4X&atmG;yZ_nSJUqA_khI;Lc)N!f z6!F-$3U@Wx`qD1vEziS-a4B4?EthRC4uT0pRxEMEMnptZR#pN4tU3pOiM|4)#=TeE z>KeWnSCrcmpM3wY;NMDlE{Du^)^kUiVcV`Xz1`e^%$YmIf7p+GK>Z+yi+x|hz`lPz zB6;lL8h6H^9;4skfFd!dc|<|d&?a-mn>YJRMZ8z%b&DyDtdz{TGkyd?T*e6zfAZRIUTk%^;j%8$H&Z?8&Jr;o8W9)N1S|=$R+nK z4rU6FxQh}4a5nPw@M}b8U}M4EtxO& z-zbY7YPv)HSoG_E&^wprIJSc))K!mmyJ!~9oZgID>XxX>72%7R7 zujHr2VqJTx(d#tZNUgu!(MJD5{)*5`Hmb+Fd}>lBC6(uY=k-a3fN%s|(eL|Q+R1j* z4BF=zZ4i};GTN@PtEO1i%1ff|l|=h_EeqWcDD5e@RE7Dkvx@ z0T~k9NMaj*4V5C>KmF&%_`CwZ#WlI>K)fqN?+C*!rZbj=%PS8nYy@HZ{+gLCjZ)!Km{wW+NM8aAnf;rBAC1GY_q`*+(f6PbHO1x6$FdkOQ zV)(g!WHFlR<=dIoaWL%wR!&w!OvX4@oT))-rdly-CK-p%J^ZCGM2|^N{Z^I=)BJ${Fu|f_ zm5+#jbAy6m{W1_|TY%cQ%^;?)vuqQ#m+tw7`XJOszU{Xd8T(&p2 z#gfaAT`p|`98KseGHBB(%ADj1lKOm5B_FIrp?BM7*OUeqKN^nG4lag7V|s+}y5$ z;AbN@Zg?$Yb=K5h$>sN1E_Uc%+E+7k@*60)(K<9ihasLV3ytBT_f&IL zi?$6&Mj;Y=uH3wo4Utw`28<|JUI|ctqZJ&+jiGnc;%9C#t-NpO^6=`yFk4oNd$qk{ zK4#I*(GLe~xATo;QyX*jD4jiEO%D}xVB}7dG;NqaPf11&_%$=T6yAL@qm-e-PtOxVV z9xPpWUvrFrHHsTuv%R05adlKy(n3|Ww*RZlmEZ0cYYO_hraIKJ$tal1E0utY!9>BD z+qnI(iwR~ipO>ER=Wl}h4y;u})m09Y!qOl~{rYC|UwDnL&6X>QEL1h&!;9PXD7O5P z+jao~+t!wV5L?TLs%mp-1;>kjfvjda*p1zg>g$IqHH+%QWc5@hklNZ>_G-D=teN2` z9Su$n1IEHB9=ibSkW23tdNN{{kY(SDO`G;*@3xd&DCq1nTc8#xrj|L^!tsM=`Ji2+ zPM^KL)g_!jUSs9q(GFz+H%p zrG6r+GDrw#_keG>b`La;Fx;_js9mbLvh(A2jj%A4UcZBDps_iBKY6$#AW5IMEgyu5 zw1vlNgjSa+at_IvhD3ny3c$qMzP!97niDPch!yLCSZB&5*i%DEXR|g)n{;w-H7_=? zRf%x1W2f(3J{3Uhh}3HAoLc2HiZl6A#-nn7c46BfS*nys7vkmLBtz~s zyOduD>uTo8Vo(UsOKxS`L=xubP`YMKG26bq+~N2Zy7P-L_3P0o7@US4Cw47p<+EFQ3f zFH0?N8EbB-ES5Z>%+39)x*&`+#F!>Ep+&g>C#+Gh(csKxKT9!`TD(PgFz6XzrtDg1diHET7x}GF#I5b%teOP{Xp$aV z8gdU#jP#LBsINX2GT!yXO6I=0`z5NKd6QYgVy{mYW7xdaMJ>B}B(nlJ$h+X_g1f*R ztkdr$@K(>@N@8dnv;ELn1N>t~gKoU9m;D4Xc6$eh?M|Ji~?ZdqE@1q>nlKsS;c2W^g;n&}T@UPD1gGqbvJ%}v6#QTK1x zK`Wi!;rn9Bssz?L+XUAwcvWQXBimz|v=%seEZg`ZECI;H5H0pDA|I7n&1?cOm6<<(xfA(?K$Y;LZQ>ufU$e-~o=Nhpc^k2Q&i(y0MwMTv zy|fgrZ+||7Id1Ai>3rOM3$p$s#UT zIILQtU92~mGNe?3IVZFSEed+SgC8oMO(d1uy_FQ2o-?8;1*@%!k@5}?Ml<2$Wh;qb z0m-eb*I9{vEbMAzUz&S=LfZ!?;NTt9$ftrQ|K$9009^uRnugac>qPuf+epLEHcbJQ z4DanFeXIPB=O`C_%u?B~$QFmFchvk8@c7xvU#;Mta2B5stLfw!R%M^COm=Z%LL}x4 z^z?RV>`{72T1?z*NF4#aA=~vgU>4S6kycEaXLihgM@B~6i#Tn6h+kytTL8r`Rc~5_ zHY+}q<^@yYdw7DrFODzAg5O%-8_h=X2F6GusE&yg6-9tu9egm&*jDPIUnU!^^4rLC z@f&~tWh~9fm);yDe15LmNmY;_4t)dBGXn#|iq=FU6#J$@w@02^8ktJ=m6QYf_WB%v z)J73!6`^@Q_n+#2;>&P?nNZM+v;6@60nNWR1yRp$DGYuD%StoQggBbjBB5C$+;4r_ zy5SgHJ6@5nq9_h^b=#-d(aF4Kz39JWL0dzIfAVoU*H&^O>8#GX(|2@{9k|7#FY~0z zf*x#*Os?lPGTrNm{C%HqLUmY>Z+S(cF=+;7ie#7 z6`CmAn^=fqzwA73mNo1=w9%0uPrl<|)i2ZY$_(1vMf8V@_%K7EVBi(xj9Cu#*r88#X2>A%e>D6T@a-)Ow!dU9$KG#HFKx?fICOQ;?Z}7OQ zVZ$Y<01xDUZRu)7VXlAVpA)En8Qv-f3_mDV!kXnh*O1tS6jebiO+N}baVl`X<&19h zDX@j=M>SIQxmC#9QYKDib4;C9^6*RIg~-0zf#AG8n$u5>qZePA^MuXbp2TY{N>EAN z;=o(CZ&0DuZg{~GadL9Tm)5GOM3b5IC#09cS8(Njup=z)S59bo!;B==@3yqGw6B{~ zxk3kX;f&Lxo6#8Ll@uIVOzJc<>JhvNtRmnNS{{~Klzs!-?4HmiOC<3Zyu(6`Yx=F4 zdY>b0nXtZpo-&9>rPyGj4~DpTxTPcg2`XM1!*do4gj25LRR^)n7NyOKL?5EP$<<5O z?Tfd6iK}qRbcEg|qf4C3T@Ws+0tASuMo`pr4w%IPM;cW^$qFvn`9klcZ%@X9hU7vC zR9MFu=<{jz?nW|xD*KqY#|{RW;eXBVt~V#cbSY87^5EC>&1zNIx0)Pzs6#wqm6I}kvJIe%wZ!zxMYm5MeO7Aa^ih^wR(h8?; zwHCE#kwzxLt=RWNmS~GcOeohmMQ-D}=2bnfB^7@#yOkvyVygCt70t27`tH3q_OAyE z{S5pJpFfK>*2s+Af=Ll8=J5Rbc>PbA9Q>>eZ5qC)g0PQ|)KNp{qPxLtKujq^@zj!k zZxSxuc29AS+YhR}tj%e!SYYnt>+E4+IClXErU zqLgd1aPv;Wk6DZ@{D{1qzMkyMva#Q^^rD_|;}u~BuQllLe}AHnW$3J!UkXa-0vdl$ z+SaHF8V|0pp;w|JiL*_GQ$4R)C)N;ufO>_1veDNLSk^NU8?PaU0+^onzQp;xGoX-j zOQTZ_`uYqmqZW$y{QEyBxxG_5X**)JBc~FLO@;2u&Hv=)vfmyYdLWooD`mRne;R{@ z!RxYvgd>xOlPWNl?&J;Qvkg@(m!UR!Iy*bNx{7)%_Vt1Oj5TXbeuflW4vHmz6!7Kx z7$E#2Dg}FQZQzZL2j2_26w5!slloX(nava0c`>&yqXe~W@>gGHpZl!Ba0AJN->x*a zF4+br0Oyh+b#ZeO6EebxGNDMNii(!DW=dTG|HUIQ10umbYcXY!=>(Aywmw5SC19JZ z6Dz)YM9M?b>V*+Md;}li6jz0R(W0F&vpLYH+)Ho(@edCMllr!PdHH&Hc>HVVPdIYm z<8JzJ;iYVsN3^GAs0(c7VLxw*?zudnU+Haw=VI_~%sIVSY582$&#`jjS&wLTCzYvM z+uDriA4O-Ivtw1K`RhB(K$c>!wFj7~gCf|)9jHMC&hA!!5Wv+6%N4J# zuc^H-i@I#wN(}H)rg!(moZn67lE2k^FaL8H(LAm$T)7-ZTcKHxE&T-p^1fm9s|g6c zt9?SWzL=M_t7@mk;@$9xehuzsg=HCmW6xU3^#*Il!x(ZoFaRzb@mX1drN|Z{D&|r3 zXTlQ8nTZn2wE6%U2OE%oE!OQS0JzjBDU&0OCQ2e$Z;kB@Wsld_x>Df2TthKjW|qe& z`E#P9M8K}T6&*5LlrQZ6+_6oZQ6iXVF2!5#l50S}E;^E>LyX;tK#(ZJ4UbEI7=J^P zr|Nkh{Rg+LCm&#qzI4ikHg#)n3)0`=;MKRd%TQhilpSk49^3MN(echbDdxe*oa+n% zn*}15Gy#IGv+IrCF{BBOJvGqBS48AfTK(baug)$W7KP0*lp;1i#Sz~(J+^_koNfl6 z)=U>(+3YRIJqw`~X3MLT*4P^mDxFnJcf$1uck`Avyj#jw(iRf?3fcjS!o8^2+^TtX zPj48|ROjn?e=+%glzFPP{Q)M*D1yI83sb88!CT@XY3|C|Q${8WDwEhx;bt)~RQs@4 z83Irm=fo$gM%k0}m9lD6OWHpwxnU`hzlcYk-yUt)P4;zjcuT*eju-V=zgni)Xh&?1 zJEhz$^}?)p9`u@46L$iA*kScWvld4*e!a;#NR|raIai;5YHp5ZUCwKXu(-j1b|cd! z!HJmjIFtaa$3G1$oirlW3M@$@6zOvodLYL&F+j z$f=H=r%?{U+0hR&%=H6DKU}<0Z{cWXRkoU34#6ZApRRYS(J1pq|B}|x+^_G@wgbDE z#k$}(nvK9VsF^Y#TZX2|v=Rd<8;mP@k(7l*r{$@CtlFbCH8Gxx8t_yD*pIHBlVue! z?>mbcU|(cD8us&!KflQs4iA@>KXD$GKK^wormwI6uihlxhPt`e3ENtmZhKweu8jj% zdGzV90=J%&@V+K`J|;$WxLYjTloP>yp4W1uGC~||MFQP^&Lx0_@pSbEF(9xo&s0Fi z@2{bMxOKQd@(7L6+s;hZhXub0NLC=aQkcZZH3X!7xuH#P>tRo27loSEcT;^!4Dc44{qM$4xUIj}!@DDp2Kjbx@;QJ=;^?b@C`K5|OF zJ34rww%BQ~`F{`d5>T~wl;1jE$0^53mEG-s?x@>m)^SN!CXYqn z;_?KQh5kZB=7` zp)3jkWIWMcldZK0uX`U`4(C`jJILidoe~4_(_X>7E`jjqK1gMcw)jMp8D^M zu$@?v@!L|Pa>@uWSo#OQe=T+_k4iR~ou+GwJ6*_%JFr7-P+|R*@e3+W^2--LKRG$M zySsZlUoN?1Zf@l;i)q;yTat>I^pqEW0)(f0K3PXJbtKMKSz^s4yj@IfBO)-es5lSM z#-*P*4y>cB08}iJti+(WI#|LUWN$@t7J|aCP5^TUik0Ru#gl&rH|KrSNl7#1#@1!~ zL4Fjc0^P1$d3V{w;C(3`so$sa#ttrW6s`Ui^4KU+{>+60L26?c(9!y&^D8TV2dyvc zM6kUM78wyJpFdoICpRdFv-$^y))q)UgWW`SzLQ&=Fvo8$I%R|Vh+BV`YYjRkj4@xx z9M(A{(qgyBP2+pk2aloivJRFN;!f?FtEhyX!8<`{`D7cscE`OO6_oW~Nh%;{*P%Ff7(?X!Bh5IQ?K35!(H?p>@L zcb~1dI3zL0>aOFC`QFlhqLTq6F1GdJQCPgePg%tPjeU-iCG`G6y-UM?!+M|Lg_uCb z;>IZ;02h=0+-hE?SL9`KXb5slg>xxg;rZ$6D*n5xwbijwq9;Fo*Rw@ln}>&I4ch!n zmZv6kZ{l0s^jzyk%1DAPTcfkHvk0(QZaVeCmFAOTlqtbZN@Obh1=2szuBu4)6vKl$ zwOa_}HL#8wvAvy6m@*Bm5`9=`M85? zGlKij`+C`=RQTgq<-7b38Z4HdoicKO*8B24ikoVkC@{NBYkzi175=(+`8qVLmxVH2 zSpwj?{9OEYrvNT)zO_6`z0rE2%5DE$K7D#he+{9<2a7T5h)+m=KxgX4{B^K}&?B$2 z$Dp;2pUh|f&e-$uYd3gXn{nEk>JL8jam#zg7tdaGgv~tE;~eDM!0nxh#%J%iKfs=s z<$Lt(?fk!~C*Q~4AB1>J&M8QSdvP+zR*QkTWY(6=vA&60h5lBn8#?JEOZ>dN1J%IS z2PJUW$S(TG5Qxiv8!}LG%V!>r=%Q@o^vrS|xM_jiA7atj`PY(4Jkyh3nqjAO;q%il zAt;Hf$O;%y!W;mev+$v%^AWcLjmO1N9Lb11x?eg6lYwZQ7QCh%j?&;A!z?9WX3Qnt zqcge2M5eE2XRtR2l_|~>c~FIN1id-!gmqimG_*F1L#>*BJ)EAJdmBS+bmh>h0-`tKyDJ@EKA;UC-{0wq(L$Sxsg-mVobL?-*zQhQEa zg#Mo*`089&C$`|I3jFnR_476Rh?>clLkbTUu(Ow@Aqsy5#-JG^JmGW+1^xN{o1Q5x z0cn&Q<=!!WwnBj?#!?OoU21HR7+Fy-kmQqyeX?5G;5Jd3>RYW;|-*FA^a}L`y7UWf|d~_JofDHRR zy`V)qUG`|q%pj&(UNo-1U9q~R$f9X&_J^2oB#nSyyg(;griNV%UuClpDTqtS-X#kU z652r71klz#pGh6`*^yEI$&a7F^|jKscP3hPM{5hl`qfwPwO6IqStf{+J*vczgDss`) zGW)(?sPM|~euM<(F#Ht}46TnAuOM{F-Rrl1Vhs(A*!A=2^=oVBi?uh4+KtOg`tbkm zO`DF)u~+lCv(N(Mhg}I%2D>t|boJGaxKXS}tD7?VT3WWw=8jgu4tJ2LOLL74ewm)3 z1GRGSOOFsZVdT=atH3Ks)dJky%pj|)(UyFHqaErk4c_XIEppM@%2?wnMft{9W%7i7 z>T(wdQJs4L*xn+wQ37*v7fbY!qFP;`*@&q8O~ikPbjAHQ*_v0i(j}~C5B~1!DC&pK znia7IbiR%>@~=XpQhl{&{VuvY={o87>CVY|W&inNJx|+^;nu)5Cb zB?TeJ5WV-fTaqYlI(?iA3n{Eey|J`^2o)u3H6-Z&VTsW;8Fu)CZO8_t(c9ECzz?)- z6{=}#M({hfB>|_ayW9Ws?eV|q^ztLZKSpX(HXfT}Lzx38qimq0i&qysUSaKCpE$hs zvmAz+5!;_JQa5VOAggjSnzcAmRJht`uk-lz2UV)%Q_ZjSwAjSwdf{6teL~}Z=TKd( zj2rlji&Kvqr}LO}dUw_6rK=`mrus-{UZgA4u{E3(;R{A(VfU@NJ#Y7JO8@#hZy+sA z7IeQ6kRc=VAhCbw+zvL8DW_$ex#oUuCPjMjp5_&NSOv^M zw^CB)a~Sou9>9K(GsQ_NUN|vqdOd%CKeyCh66g+2VR_@Aa;f*EvaiiN)nhNeRj221 zaR;NQ;_@jzHLq2;6hWe#u}>{cn^a#KMk6y@FQun*&H>CuP?ceK-|be8S) z2?&r<5{_nN?TTOtS0Tywy&G7kb)8tFZTc*w%}KYmt{3GaX1KPK5KDIy*Zz=`*^{r&Zvl9J+gzwJhv zt66FP{`Pnt@VOkIr>l!5x7Ow-m~Z{@=_lBo<(%yrh~gyu57vFivX+G zXoE_(VSYD%p1T4Bd`08VOg(SBgy-u00&L=evNEMryRN$^V0msq9kT}b3U^L8)fA7r zY-JWe_+Hm-Ix}6|2Ug{oSdH1&*x&HL%Ld@UU7BMZucQOsUyi~&4FZw-RhFnYPtRg) z+ns5}ZCS%#BK$Fcf!-VcFt3=R>mv<+y;u|4V!=j-ypwq1A54nHQOAYy zf_GB0vnH>$>4SB^j=z5=Kh;dB=>W_?GrwtNH8Bu{3X2C*e4DowtQ$d}I-7|{@V>Q_ zz>y__7%_MY!t?R*EenjGf8G%fz#LxymhEc1ypHZ)hW7ske0k}bneLy0r4Yn+^1qV8 z{jHAIIV3hNe# z)Kg({##XblEcH*G1qLo!WPgD>S_^Su)35EpincO_q2WHa+Qnc~ba(HT%Vu_i2ytK33`JXMx5b%Zd}jCS|jKae-NkKoss} z)ht7Yf4aCB%g?oj`~3t#_t5`##_kSaPS8!AS5{G~Vd89{Q@1Iq9VIRi=we{&D5yzi|G*e}%7e zBBPj^%2sWDpBYxQ=TO;fcIS}cPo)^QKeNr~e`*givP*}`!WV&=U#hzcHc1j2j!MH- zyYI^qH1se=>u@iOHjZmB)wC;Yy8Zp#-O&NCsnt3&0)+oTVq9QP`%`zIxJCy!RHZ*TIbcG3%&W=GQT(k}<}~r#lP-F}iXRhJ3Hsn*OU8_fvv;Lj ze<_=%GeKzZoiuj9L%k4H1D=NQPCI)j!a9xS)k5NcFN^fywY(d6NKf6B!IzrBEsT{){3hj{5vv&-2XW?CbpH7ja) zvjZ;oPbJViu?K#e7K{ttF}8^HRO^rm7-Scc4>MG25CqR|Rt~69hc4gO`I*Kjw@^NF zJDj(lj3EKe?W*bX>hbiV?Pq6a(R~P=zn0^_ZItix7fJ@SnHwoiueN&_e}9;> zfi%c;6+|oG^~Y2Sm`E{t7Ow@#T_Y;~E($aUp~X0z#QWYS{O*0F1IxDQJA#+{ie9(< z9iI8G*Kk-5Xr^N<9iMy3aA~|MRIz+z#foj^ETui_EmuUa`PX!<^xsuV{vc-+ZR$rC zO@cBdVg;c>QYZOQZIAdnmVt1kTO%QRIQV%`8As<@;l-Ld>L% zln=^I!Yj_RQ;_g536(A9wJ>J#Y}64^^1zVZvrut*zdj$rz?-FR9th~DWzYc;okTkK zN!Fs8jH*%ZXiCM(iAFt{+VgpjQSvMiKVj@sYZ61_!)3D9)=E72ybA{Se?8KwodX9R zQHO>1W1PAaEquab)esR8t+H7~6QR6sxH7Gh#gwDNyf?z^Lf&_6_imfc<%md>`u`Rn54|H@N@FZq2Z_I`ef_J!q1 zaQ}usv#39vnVD%?X2&zZLEnA~11cob56~|2WV~vlc&U3Wg?3%h$go<&o%5OKF3sIO zUdgfsmi&--mBo5X%qPHxGHfZ<2>umPv0d`UDbu?}IyIwFrPSa~e-F_T8f@iKJz}lQ zc_6;1#H6yt+#JYo;eJ!wDB}O3MfQH!K09)dV7&!77(edcGNrvkQTZdJ#svx39n6a-YVp<>vSdB#w*CtL8J6XPj00ww!GJ4=ITfSp-g7$*|U1L zYwrQsE1<2Yi9LoFn-zGsT2}A|Ho2qv4vMmV!007Q?8bFc{uCC0Xaz zMclCdfxl{LO9)OZ=M=FaxsKgzuk1sZ1gTUX)>z9|8*ZX5MlCH{S z(U2yu1%~u7oh3X*#c0~qs;8Ybj_n+av;7l`Obj$YGe%U_-22BXpk*~n-06wx2MXqY zpT`r)7;mmNI|O{En$fP9<{4=BWP5%G*;z#^l0^nkHr&`~%szec9 zg%lPx@@Ead7>xaqoxm_uv;1ATjhFZ*{?&XJS({v4n~X)`<5xeKq1l!&V0--f0P7F5x=^wraXPwzl{1N}z^(A5&4nI& zZWp>|9e7u5z@S?$SaCyLN-XTIadgCD`P#@@4q0__!5X zSOgQ5D|grEF4$bVP5ApJ#nqsV8=yrwzxZ{T>57UNtG4c|u2kDs+MqHz7Br4uaab#S z18-b0&bD#LO(BDAWyMCFb!3`tIu#*d<2why{(Grl*mI(gOvQB`@g$!;dnPEE^e{03 ze@`~#!3t9lXePUS(sGYLNT4)ZX*xF9U8%A|=jvS{C$e`yVLoLyUPtHhn|H_UZOePX z4YD{oy2ckB9R;0=NLnrF=m_l<_eM0#KwiVAfSbyIRH^ash1e8WXP+?3L@dnG;N4R! zFG2#hMVbfbaZL0|U#T`FB}>>Z3_Pnif7kX&;vl|DMBgMp^>r$_&ddm}8@;PIEHbQ- z^uSa(I`aT`cX!B(`uwWH6wiexVv&L5!yx7t2v%Kpo#jCzqn-s@QPl|!6dz#Uk_`~N z#;;dGxQM(GG*?!tl}mN>=SlRINAa9FT!0d7S_ z6??)%4i67U^{2FRE$H|GAYH3!hVO$UCpiVTOCu4Y28Eyp>-PA$Dj^MWlEHGPK!8GL ziWe|TvhGwdTRbq?z}6+(ZZZ@Ye{C=K@Ko!;EUK~y=Ch|( zfS5Xc!-({62EUz(Y2~gQz)syCmIMcrk($qvL9v_OOYxkg(8sHpMF# zx^=WoW~GkKJHw&`9Gh?re_mW%P`n2a&q-Ej>+bIE$&)AQl7n@?><;=veL7r7*`SJ4 z#88$&6yUKiUCfj8YP&|~S(SQ(A^S|YD`Z2KZ-brh=!_NA@^G=(&sDFnBBs62tW(fX z35DMs9YKSumcdEm_jt*<$xr2}c_mlj3f8EvE%>f)y7E5Ab zK}Fmax;t{}jwI~S!QMY3FW3Z=(7xu<%sa>$ZbZ6C=wlt4(jhmM{Z{1BB|;L~$2(Yd zZ5H2Zbg>sLLaz{0NmI>zt~^RgZ}^v{McPi>#Oinm=9QNz7Zuiune6DW;LwZr$EYX{8pVBx75a?Rtfef`d^xMd1(ET49Se9upbxkg78% zxKPlk<)BrPV~}>W%U#J5%M0TnA3l5-fYLpqUL6 zHt^)+M23t#dsPlzW}l(?tc@T1(4ywJ^X;p!2V1EqI|+Cb zb!Zi*flf%yVx8)`dj|O>0=Lbgxi$;fJWb@}SVHbnkr0F%rSUfJFs>KA%Vo>xm~Fmd zBw~!L52dV@f37IS&GxcY1AXv|jffQwU+Aneyvq}*2UkDK6xiL}9kXPfMT#rSz8^k( zAUy&MIJ3g$rL^8NIw{*-0^8a! z7wsHs49Ff<0l-UZ(C3$34#vG&q(3~YO~`yH3cY!h=fr+X_A+j>vP70ekkO7i-;8oe zJm^qu>H)G!jI`oZT!x%#S!?>jvYvazfel%QR$IPy3)#M-_t6UJ?d|O-%8uKNp&27E zI=W04f1pf0LLY~$mXqVXy`lkRfb6|mjN+c#tc)nb2N9Mz_%lh4lA;133Dk?xiIS1U z@cHxS%oY9%5soQ8|>*$IZ-sNW%Q_AE!dyN3h!9hsCgjlB=YuC;* zx7p}9lMPj5Or7qch3!u3UTtNw$BLxVE&$Lve`&Q2jLzj|Pz|Tpz}jpF?#wcCD$AD=IySnK){ytFfZaH<{rSqhA; z53hwh6^!WKy?X+JR17YK$SMmawbSOp5A8Dl3BHtmYm+o?u(hm$S1XuflV)cV*0hIg ze`FV(-U>Py1@&F>Zo4S)x-LYE9!R&-t5>h^vO5E~?f-A1TTul=pllBTOSx_~=S_S@ zQ8?v;T-OeMm34G>5pODJt#oO71nUO!!y?9>eIl7^&)vYy3`UBwDm{DlYy~j&5V`aP zk#O!LK3o|GSC*d5Rnur3A0L0M4%C{Kf6;O5q(Ptfm%3wxK6Y}oS<(_=M|SnutRjHx z!1e=thIpdLoxwk~iz3Qg<4Ok9(~hwd)CYn=7O?v2l>*#DqI9rBLa`Cey4~ew=sp{( z<4v%FV#I1~!o&upR3T2|z7h5F?Afz*J5{D|&q>?Vj;xInM^<()2HwS8S=)vde_;uj z9zJ}i;G<`6wON}RMj#&drK4kVdS8xFZ*uLfBxswwsRJoCAji&tJ5$C)kcRs$-O3cY ziDff3yt%ny?B%3Ye9)t@Us~~C5p(?NVO?KeuOXqpll4X#Yrl!>+vP7XxxLNcfx;?R zJCmSS0;&D?{3dVjdSmyQ)gs+>e~14!|E!9Vq_@hYxo*S(-rHlg2EW=EU7xdgZET`9 zOT|01VEYa==$lfSb(A)b-!L&Ngj_Ee{}10wTt|3 zm%B3rU!7s2lcQ?Yu8g!@3671yr=fKPIo3Xy<_)F5{xmN@v9A;;X8qP4>GH`8;*KVj$Zn#b zl`6Irmn5W0n8Oie z6;uGEve{i>GrR`|Bq}|F;u|*=YQ=mG8B}*B)GqGB)=&AT`}gm=5b&vTCD?}mL`X^* zE0}r;B2HSRwdmFoz9vjWm2kXbv&Se_ZXX9OSZP$TJ7k**e=PKW${$9j-lb*V(eVOI zS6DAY^T{fYkW&Y<$=b=$G>+0P{o2yQe*XMfcrBZMJC3r0u*CF?u z&~v-XHu+CAf9srE3pX%8^w<|wyGKoHpy4ZvB)psdWpom3s^(H&vsDXrFcu8zUMAT# z0N#Xbm)RmAn!0J_ez53H^NI^JRGwLzu;&JXV3~^z`)Jy?eK}xBSZB*mP$C zA{m$r>ZgiGd+<>6^*&~ANb)6!-@t@q<-m)BYquGtf8^8x8bqt}Sf-`DBBhoa@Nv1b zrKVch*1T^@`l`fdIk|X45QyzXV=`HEF5uB@Bo72QXLIcWO$StBlcU)l1J{&==7*H9 zRfAbFjN=zCUVu54&{`lk9~$J=J{^EbNiB$wnKEF6d>tcVMD1Bp9v0pVt(8cSGBSgc zs4Q^#f8FIr=HzfV0lRZxBzP?tR}Oet=do)|@(n^!8<>V!?=1(BNc(SCOQuEY`T~@V zWJ^LXyPGV%I6I{9p|}9FW%ADRkGBYmp(oRJMLR{<$|BV5`QmNyi*4y>>56yb@(?R0 zwvOY+9^mXrZOCs)J><;Sg(1)=Bu%C|gI_50e`+Fosyl(bSNL5Pj_r4Gae=jJd;Q#>HB30I1xTuT z5B5-oPnn~1>g}dLxMyFyLDb{!ssV4 z%t|(5;MORq-6#544!r#?j7~*Q8Ck{9`eFLoxPoM-g!G5`(c981b|Y4N!IqAiFe)UV zOq~@6IU6Js@14-Ay>pu+_g7wsMp|uw>xyreegp*3XwZ| zeT6AjK#2FOu=A=cjkC?G5`d^tf8M-?hh!7Ptd+5w*Cppd8&H1R2KD4Md}kz z&eS|X;6>D_=kJ=thrc|))+OYySJckdHWfDQc<42jZi9L#W1y~-4K4(f35SGCBiLK zeeJF{L&vE$V&!bE^T6$HFEMj&Sjx9Jt%`VC<|e&3+6kN=2_4mYH*lurFtSt?&29rj zCda*Vo8PZEsTO``F84Ie?jbJub<_xy+YOFy}P@kRysV9(RkQqeIW}{%|acE?R)s}q3TR) zIZUNIeYZ7p$=s1r>7%rd`bTz6Iy%^OR=uxPqT>Gj`-b|wIZK6I;7VxZQnrB7aoBKg zsg7-DY>4Fr9fQx})-hjJpf>-6(~6#(ceT~4aWgUG)n-|rf6*Y~VKLzlDx994o}HZ` zMS*#(vVhD@I)hc*GN+Ciwa>JMdkuVGR;kf%S&f}3H;X${J_amH`<%_exgllCxx2eN zJ3GT!!)YyjPzBI%E=E1U*%(c-7-e_tYLOkCpte!|s?Cxyg$3fnJfEND$h>>^PQv9f zp=-1B70g2of59<}OC<|x$6}o!Lnt=P&}tjp;&vGy9UXl&SnPf~6?xpFM~`5e(qXgv z(EtRuygS3fdF#78fnRBD&V?Bkjg7^uot~az{&J6gt9Qn!?hPy$ zq#8DiZdCW$rt5KKbTGFaA0Nvkr$HyzXx2b@9soUdONqUP z=g2sYT!y8Yx{55W_0y^xnbs*kx0a4ia*^PeHxM3G^I|M|S8E5&!JD{HbW=&uVY5a~ zWDuSd=s+Cm{m=Q?%!swxsP?DIm^!UiwOWbN6&iwcoGWsfpFVxMzP`o^ z*a5#;C~bw?toCZNcrqo7W|U>}GtY{RZY;^@e+qhF9>;BFh1(=3$slckR--n{$aiQg zHxF&3Y}VZL7ETjC^zq|IWE$Aeg5d1s)Mk}!v69+#gxd-;>i4~GuCK50G9*ppCh-0o ztb{AwrQxu_%a<=-TojJ9lz}%lH|3>l#n$_v<)fnicz=Ji%2$9|c14%MK{(Y?nDy)l ze>W?>Y4wo>F_5>#%6D@bF^rtU3eH+Jj4{OM6T34_av2o6c9JhQ`;3iiQpFsi%pBTW z4XeRTp?O?FLr85%+t}7_K^%TyC@9!(M|d#(jF)=ba8RPr6CA@6Z^XY9mL$1 zrph4g7CR6)!Y7chm{FCHBoRTjzi7g#7{9U=t4H|aopz6Df36rj zQ!DQn4y?Yp%b`Szc)J96IL#g{K zNni^SPp*u@XoFgN`j{OO!|eeaf8Fz=aij_bYbSPf;aS3~tE<2L?QeL0qtA2n(~X`i zt+rkGDo9s`V{H^4LKvW;);`-+<6}>s`P%rtHcpOd*+mYqt{n!hZJyWH*Jo#E`a9mw zV2kK+T}SPvAKU<&E$-vPn-+hwX?8z1!`k=93hrVh*(A^4+t7M+-@vB5j%VL_@QtQB6n@ z*c20nW<`pQwG+n#1V^AlQxm$M?s-5hMJD5VkPx`Lf4d{>pvmU#+qc9) zW+5tN;OHvlJ*2;%Jb41#jI}ei=n4{CyE@IRlLvHXVu_kAa7sO2Z{NNJ%xMiuE?iR< z95mLBa;jP+n`@_NV?#wsJpy0MY_6sDDyr~giqXeE{`jMO>O&`8)_qC7TV8crkf&6V z!0IL=v()}kHe}0oz&Qa@zW`EnBf^lRS+LE%WLW~U20L5Sqm=R2Ebv-wmlax6y zlSM9UTx({Fo7Nd>8l|JNK2od$c_?K*%TGVxTJ_a0E-nCzQlGBPTIJx)AE`?;K;az} z;7PB66_@DWGhQGsCW);1o}HahIbFM3x^|+AJ37v-TgVJff6wz;H(ayV5M5flr})rS zcG5W2PVy)ybFX;+DTYc8SFqBk^li%MIuAIo-ZvCa_))GF+}PKzUzhCL>V)Yz^(#GD zs>1^NWN38@up^HjKdyVRuHEa`uiM7BdG6G&)fhQl>`XBbEe*9W(qbLQ^V6qK$KQYd zebr@Jvuoo>f1f3Kv;9ZdJFu;GatNg(CYRoyW9GSqAO)~u-=WJa5`-HAt;Y(M)Y`gN zO7W~ws}_smR3@Za^;`G->Y*??=SmsdzA!ErJ%9|*nkhG-^|%&2DGAv;z|B)^kzl;u z)s)y(5-4e-<0#C8(ACBSCYwbw^hwbqg8_ zVbs1bb-XhUotfSCPWNbOs>G(t$7K# zVq8mRCi2~x9TZ>TZ>)5C?i`)v3tsQ`_7>~oo`=R7Stc)0RnV>Z;(eQ19iS!qz}hw3 zJghrYf8fCo&{J^8!579Vssc;HZ-TyQJC%| zY{5fU-Vuxshh)@)YBAeQ$-d_da|~8olHX!z>^ij|TZV2W+M(eifByWLK2T-2L~oQ$ z-yN<^G)d1J7Rdo-Sp7lQrQ@y3ukrPgW{M1Gx-)C&t0~EQ7Q19w(A@$`{Nu-uSY({C ze|PWR)n<9_Y)irsv0l&G`SN4!T$j<>Z2&ja0%ZgkIVfR$oQvZhfBdnxx38iPTx6z~ z#;~k7ETdLBn(RCPs8p3YT|GYcM=wva>2|F+r?|(Uh=GP1$VuqbG!h@_ zp6<+=V^-W`zlOMNJ#24xhz-3=lu1|~NIt&O3~UKTho$T2>SFNn1~eEJ*j+E`fdQ!iuQ1VK4p%ZMc`EF2bHLn_x3{-WW#_sL9QGoqNr5w{AqP}~ zyJ3o9q<%RGQ2Mt0YV^=Gekqwuf4g(aRAbpuA(?01{ zW}e#s%1Pkn2k6^WcmHowcye`U8jA8a0HNJ)MJiSLh=CI;aT|ja=P!|>5+zt$)9azf zz>B(hqOvIrNu*wZqjLjW!y;C^)6A@`X+rshTnaaT^5lswjP|QHO0&!2f6;j*q6CxH zuAL@TO0tG5g&z*1EQIyx)2El0mnEkgu=`D$MHFeM$Um`ygg)Fu`5sSJ+?+pRj>@rxHP@K=XNTJUkbIH=3?PD`=m@HmP>v0E%y&6b;EWIEks z>{Ps}B4S6DT0WqQiwox6e}KZ=VeiScP-Qot@30BKT9v39UJZkVMf2$5MM8~Y_q;)? z)`}IWOfKjFvV?e}bv-JgTiS`TZZRlQZ1}3fy;?gHFz7tQCObicjV>!hu6<`X7QBQq zaIeC_(mX{kLZ*(wb`SZeCUfoc0vg8(3u|OY#n8SGA(}d*#l)(Ee|vd(X~|n+JOWiV zr1~yQtV-A7GsrFrf*+s<;mw0GL`7@*4N7R^w0Q2A8E!jnW!o6!3z3%w6EF-D!Q&{+ z)A->Ws^nUASYEzl&Ggca>k#NNH-YSo-XbOt3I>)@j;hGQ04>43^0y%oQ%s^8ZNe|3SB;#Bq5TsRw*jrAnP zyS%)F(5hK#JP}Gm>e{u7n91}uZ7vdOHWrBM(6i|ju>`HG_1rap8hP0Ey35|za-`9p zu<(J5F*=sQcd%Ae+;b4jx^^W5cJkTMC-#9ZzSQTd3Q@eLqy- zxqL{`849(Vf6-ubh5tFx+Iusm#*Cvvum3zSKBHH&cWmiEz0KI-jt+OMVcLG1HClx> z>6LXiHm@w1$aJZO7pb&2_C?zPf&uV%iG=rie&%SFpe}9J?qP-)(j%GDU0Eq#*aC}}@ zQILVy2({+*(e%@q4R&UUMw@d2u@bX1a$I{w`&*6+;gE;`GeO z7EsEGl1!$xCo?G{Dp9JSb;H5d;N3pxQ#`uX%XeAiM!q(z4e~i42rpm0q+z0QP{D3R z&9K{A5R_N~J#ASS2L%vQ#Ch(=T0CKMf8*Yhihlq8{n^=>%=F%|hlhtxo;;zEO`n~8 zZ@E)sLxBhqPEk(jX9(81Glzshdm&wYCbm1%lBnpjL4Zf`x8AP(#!6(51!XI;Z7f*J zdEF3?`Ua!p7IEj71)u4~@2rUV$;EOElaW)&tT*Mdi;e>BbJ zKnrJgbevowFynORq(LPKuTP&o9e?-TckR?SkE@ljzuZiiu}P7cYyv0FNfA!co1xoi zP5P`y7YD}#0h4lfcgIBI$0<*;^7uG?vSqdBp#A8hHeueku9NZ&E7xUfbG31$MI9C8 z;eprBDivhaB1%3ddja8C`4pvEf7Z`xyH>edflYIxs9-d5)ey9Egv7xE5E(Y>m!QT`QA zG7AomGr_WVz{tt8w$^he)?w|tYL?uCuts2Z*EGNsw|skhd;HT+KaHoGOLKCqDC^TI z%VEdRVBug=*v*4CPA7l3Ew%Tfo$BoDtW?$}edt>(4ql*^KR1%%-5IUUtOznfNP9kY zZi_J)r@FPdYIccfBuBn0e`_#`67 zI*KQxv~4zmq)?m10I@;1pWMcy35o5*z9)CaT__qr=3mp&EjF!TcuPaV4w}9(i?8#m zp#f%Jw!T;;GN1EW0#kzr7<^BXUPR+XFhxOOl`EG^izn2e{T+~%z`*)*h|Q? zfIFFMz+wnrFZo(g{&X4)J)uXB9+^G-^y!l|tFbc+5^ie&Ei2d8*Tt!rav9AD8eg^G zwAALaXtDl-FZcWJzi(Rr7ccANT{n(pC4)9K<17ykRS%|yAZ{p7+V?k$~sZ)B3L#>Xak^h?4+VKTe?*4 zd+Is5He?lj2mQw~Otlq>^6SbdE3M_G&C)L@wrd5}6vxONe=Kzjb6bp|FJ?koBry3e z+IMbmZ#%lOH3%OWsCV&hr6(SpF6KSV30NO*R%@I)St4|qX?kNGs^>6vW;??%^yXw- zP-z~j)if%5R>_+sFHTrnLHY9V@bLJTUw%=$g+x97P~@8vw6Yg$(&=%+sh+a$o2eb1 zq(@>XTrt1Tf1W+V2{)4pS*X5rxeaYf;K0~v#KWIGduCH;TXy}wZAR1H3!twqKu>l3 zZSN2}Y}#^+$7|gOm)Ou%vS|rOn|v{{HVou1`RV7+pA#VK50=QG(CSe-7*|epeXDw~ zX|pW4H)RIK#ReCF`xSR$2&JF)OqwPe>S4SCMJ2{)e@NA7x9~S4JckBwkIiPmhtlCD zV9*u>cXa{%^r0sQYx?ptg>z1~J+Lnx_2#6&y zB_yT^23PIds|)CG>5}m$(ldbt3RamfB*jd@sB_LXym*y3X)S86+K$6 zcG245f6>|T&ln1~ZM#`dwfA#FHtbG0`Af8-3)YEfwMA}n%ZT1TW~t0QbL3hqCkZ_c zIR;Bhw*qrl#+X5qAp2$0ZFnL?@^t`*)5O>Hz)>4l%d5SUlFWHvtorqeUegV%mvNcz z!0Zt~Rjr_zeqyT?PF-;)5&8TUIR~+0vbK*7f4FhvhMontF)`hygy+yevwESn%I%z zMui7PXBo#G+sL;v*F&!eKEKi1-!$cFM)Wr|b6-!;-~ayi_S2A4$I7m``u6v(zSYp1 zf41w=*sy*UBOEK#{pT$)DsiS@C0eoSC)7~;Tj8AEKUCRdr#1a-I75j*{)y4RMRt?W z0~^tF`>qO6hfqbSY7?+F1)cY{9Nilr{jjR+EncSipe73SjtACZj1Gw^iY=`$v`?aI zSF)`^sK08F6=7#Lm471$t_{_8z=;jEf1|DYgxsqXMne&=0~~r;?o4eKDYF)-!3wEO zHz?1sSzL82_mJl0&7HJX)=cpX3bWd*w{PFts7qa?_l@kE5~#KbQC8@ZN9$NvpQ#of zzX-|9P(M}sRykO#r%sSDgdI+UP{b?By)AHmO{NbV{KtXoHAS;*77qdGn@h zyp((R-4eWt_uc%%@XycBrC5~xR!Uq^Y-4mb1GBwkhJF0_v1-GluKHW+lOH~Oczu0+ zdwcu-{d?wwy~Wea%XaNp=)oO4f7r446`jQK+A?3SYv->Foaz`|Nr9Q_r%#`L{P@w_ zP*>BxEJv`|4wH=jE7JmZ>;C2IW*9rug~Kqtdi9ETkfG%2>dKwz=-8QT38%f((r@0p zxw^Vy(kReVa$ZIIH+&r5D>53la#B?iRd z{rmR>`Gb5K`dtw*DD#ExjWKA5Wn~@ItL@(6$**3$DmU>;@LE>cCK3HG z$&~Z+^Y!`s%^02EDkt^Ie{Q^srMI|*L08R$l$CfeGD~E<(*6#1?7@<}>*SBo?cqD# zq&Du$uY%rF`FfIfv1WV3oRCf2xqQcbu{(1Y&GgDKy-7#De=<#v*_K0m4{h|W zp&kG7%P-w?1{BKn4Q@#t;2}vi9xY`@e_p@ZIAuj$wR4qx7WIp^F;{3_R9C~sAy&A; zK^2?Xj7g2vD{3SahNtx6;^O-H+HGOZzWJ;%y5>`xH6T8fjmy( zNSawHi+X527Wm@V2a(Q7oNahG2t|lbDP`DyBaspNr?5|yoL500i>FN|N$Nk;f(Nj! zB})VIGS!S!47D)?;;YqGi8hOQDSi|vJVpKe`-@z!fuEGd+tV9J*40( zyvmf8k>U8e@4oZVX7zEvQ~-2T6ti8hb>cc}qoab94Zk%yJU}FryN(c-;zH4brJ59g zR~gqqFCi#FoJ(_oASc`z+AM9QZ6#zS2gCu6z~6rRjeOQhe7b3~EM503DFj*mUrTl5 z)cnh;laIuFfAJRLhD`*JoWdh$14l7UmzS56N7Y#xZR)MDf<$p;*{`*Fik?XoFV3@s zV(juZ;;hKHq5*i}^;8QG?PloC9K_iz!ju@&ycMGp4PetUuO!4#sR0Y_re9aRYp2Bw zxbb*`AT>%iq0g2&!^5hA|SNsIO0?NTMuG1yMOsm^mWB!CN zv?15bv~$o}#m62I46c#KT2?E89eHs}llIaYe{6br>;0+m-mbD14NK869CJ5GVG4yM zs|{T8l|g22(y*98!Ri)^{s5*_NR`GV%0q@H>IvE+(5B*&rRs7!p#`d~4BRD7pgezb zb0a)jIC8u8hwsK?LBX~t<{yu=KHAETw8v&?Bi!W{)JwG1_Lt(ev}l`rJ2L0$P6JI; ze{9uA&}fUl1ZQOPz1zJqx7K~yy@6%jY7Sgf6|5s5`o#4U_+&7XLAeK=oPgql38EXY!sj2 z=a{r1yCoLisK2csqUwZL36}bk!76!}myerXacX%T+BxCpYyQ1s+a9TY!HNiH`s5Po zEg^#_kFDwqfFNIcq)yG6nNKNqu=~Cq_!@yXyM(D?XONP&18zt+_f#}n#{nx!e^#5- zK+jkSt1XfPl0 zqkm>MP~~L0wT~0`S=AZR0R&X3FgPfBO2#lP5a=wV{ko zo5lXa8CD2ZuaMNNw^=#!h5SmEAo#lkL-@M%Y`TwILosFncFQUNaqQ^aI^|37c#L|h zh77(0&aL=Nd@cvrvB+>Ve1wrda+jAk%Cyw=_4T*ke#_eFLva~Y|E{qxJKnB|!NN+k zG609GxCRaj%cl+ke>O!2ftCIE@#C{+&vZr0%q!_2ICX42k-HIq{sJ#RHW0@|y+3mE zBX6i*Y`0+V8~>iMi^b*Mq96ky+Tg$KZHn_^Nm`bD0>jhO(>HJ4@I%y0?7`A$8sJYa z8^s*`Kr=-wfhh|$6NcLHP~`jOn{OOlb#1;@jbFTYG2j*af5sr~Ro#SD@iJ$-lQ$V2 zS^K<))B-0>DDWWLlt-1_d3$?H*%em~hrCmu9`a~C^Z1ef;^uUIsX>SU{z_i)yJCe; zW?kEeqwg>z;q2gZM{3R*!0PM1d-u*+ZRG1&;`P*_qKVSROb0S(vppUr7w+A=cYS@$ z*zFaC$nnvme@8brHx%zXIfkgxnQ?k68DP)Npj0efpG{PD|4RGED9T4{6|#zl6SDDm%k@lJg^~{7!IB^m8LlzogFY7MYGgWxU@T=0j6|)gOZ`m zTnz`te=S-kr7{QH?Vi0V9QkU_zmr9i@7aLnv$xMoBEZ zSA0D)mGI}ec0`U%i#R%FThqq z&A~x0!+&s37>jX4dEnTwW^gzTVzRuVDk52qe@Q`PRi!f`A$sLDWpo;GFYl4xFgG-A zQ?ZA57?MP>VTuvszbU?tu0W4f37XfoM}Jht8{W!ur!EPv!JAZYL=qR%!5=?pU)4STaGbcxiv88L>2LeoanYCG? ze=of3RLxTJt+AWE+=Q);Srjw@_b&eUD>?6ddqAA`}_GhX~IiEHDm;j zkB_get_}|m)k-o|Z%8YqRNfxaF;kxmNw^q!h+!f5lha zJUtLq&5^kR$F+BO{U$m&K7RZt$!~WCKgzGmEnU=%Hp`{7EPa1oB_7toZxM>h*l*9 z{V$7LY-!+uE0OeSv+BLJy2Xo?A4VFoUYWMw^@e7Lvw1EqE^I|;AHIWK&)v!~=@nj` zV2M~PjILf}do#_lTOHB~tySSJA+6S;)}u#{j=%r@dyylXv7xu?%I;Rof26g1Z-(BG z8vdbiU*<#i{Yd)_mUpGk3tT3xD`k@ZM4XRJ!Ia3^B-g^)(QemtVR*y4#_oU{93_td zSz6`M%2?pOCsCye5z}JCjfyW+(E~JWPDE-ARpGQsyE2{poQBd%Yg}{yeA)srBH!99 zS>G6)NO6)rMoeXPq%hAAe^hT>Y2611$nG3UfoAka?LtK8kWexM@ZrM;w%pOt5xo-_ zEVw#km}~IPtKyprtReFyUEh~4U!FgIUZ&I9tk_YSwn!IFh|@ZiDq z^)=h0g|8++1*tSRu+>512oBb1^xYgC_YFI+`DJ(JqeqWeO3R3ze+BL&(#k_Wfy7yx z*yJf~0@_wkTo%%%WSoxw@sEEDRoD?5S|KvNFlsgR)54iu7cJOpr%I*J2+N|I#QTB| zT5?tuidIP>;AAMRTUT69CMNGFvq+v>XTXk=PoF-y%o1)4tgxwvlEW47HQ1&&5Atf- zL{eUD`8L`28X68cf0^S(Z5~ePr+G0fm#l2wB1URDyzSRp6(8DnEhraLB0u6PdRU8W zmWt6ei|3ukY&X@iZuCu?Wpx-^>4s!ltjtuAMf0KmtM-fxYch)q%EOW}I-5l>Qu+vk z`;ggNaVlDBc4H~b*v5|@JtBW!npsd?B-9+8V_aoz8^zOv$xY_OiIa_K@?_g~likU- zZM#mkZQC`Olbd??^M38qKK;(w_jRxJU+bD+tu!}l4jHtS0-Y*8e%0{z-X)5(lZ0er z;W(;q9O2(LUBYZ+6wR_4Hf;e2Dl)D3?`x~e*sq#n1^-#Wv+DgWXjx|Kl?dsQzN6@U zR*Q6agKM+E0<^?#@oX5zW+;$|AX!OEB|SGzg@5<~AT=bI(Bu|Qq+jewo@zPMIr>cG zY4ZM|t!)J1MG%jGXlHM99&kmv#*Bv;u$7z7!vluMlhUv^SZd7$m&4Y5aypCkW;HU)LK73j2=tZlXcjl zdJ<^WtLaP@SW=D8HeR?7hB`Z)W&ixGF9H#yVGu`Pjjq+gs`aCe@Ae+${XYPw^lG3U zfol)L+-*Zd&^=e>A1$wrQBVEF#?}_T8m}JJ)21M7YAR4U%Lm2(>-!gtcsT2}bv3){ zRzZ+0ZgZ%+xrnb(-M#H?>2pWr9C!moJUa>$P!pUfpyC3( zbN%!>0wy$@WJ7{`@WiK6i)NWZ-GedW_R&2}udG|v!%tuA$@OH~=R7`ee$zvFGDTN+ z^0HeJWz`ARX}Z;zkPs)aJ6`9)X-ZhI3r0@MTO0}u>V+WUz>|kD}MVj zcN>{C`rIJi_DTCz1fqEDRdgT473AY;P2*5$g23Uv@UE$qUAmksij?_Ak~pyiNf_4 zvIX}FD+VSt8^;xhk}v{_1TQ!(#~fw9AyNk#HQVs%rN1Q)hFU}XoBSR(=Q6KG?MKwF zhk+X2(^TVM*s~+GvVnK;c~20<*uqr|RoaSNI^u3yqDpy<;-{d_Z*3LQ1LNBo45`|y zXM*pMnh7tGDstxd5;CmfB_KItQyqe36l4Y2N;@MG#^9tPwGr97d3N>2sz4!%DlB6H zd%U!5OL-hp36Fs$frpFx`^J2@3#>zY4q?40#W-z-+$7CmwrB$x@YM!SL0FMDrdSu9 zfYk;kJ4!WC!8}6MSf(F(6_GW8@pLzB0s+R0lXR}58cR1iL2{KSHOSY~f5cW=yFE6N zaX{{e+jUR6Z4yZOWYze9hL+0hix1`3-{AZ=U}`m+&OZ5tK8CDIvDp@9MXvihf4p%8 z8x8UI3l%w&vFrqrKjN@W6S3L!+BJ9skKvT_>gy&e=UsMr=^3?l?g%V7yCeTmn98?e zlV+>o-7@O1Q}wqRco2f~I^y>P@md1u{gF4%#l>HYat3zjwm((#?pBNU7EK%BFV_^f zfGrSzn?r-}q~dZ?vC2*V_9CJ1$*iEcD+xjV66ySQcAxVDB*4r2#kwfOJd@ha8*j#% z7DjqWb%);m&0k`*5d`paF$QW8UNiMnmc>ai!dc2iNJ zYAU%jwNaYHP9|cLtfN#fk!c**d+lfR$mU zWx#uC_z5EU5`emge|)@wYsIXwotdQ<0lP|l!2k^Vb-o^RmHPFESUph6D$EjE5noO# z=lJ}L-3-&+cNHJDOl1BsQ(DPAyRW=HX4F-z`9~C*n#01`NWz<~x$~i=ve4=&l6F}N z#++{u5tPDVMwDeCPRP8P-+DPUH3g)=7#SI#$E!DI6m6TL$$NkHiG#H(^yH5+Gcq!O zBRwl8C&9$-NzZDqt4|+`&PX(KND!l6xUo4n2}~i}VB>3TWfr_zyqpiO+f-zyjxddZ zpl$@2e|UV&8(Cg1z`JDoy9k?{BmWx#cZJ0m=$OK_Ief2DS4Sr+E6Z=k(M_S zCUAWHNWm?uV7|t9aJfgmiDX(Q<1Qor#1%OPmk5J4U;s)hk~m+7PT!>aH1Ol?ZW=qI zNXTW93${^XO6Npohd9@_a|t=*o8pcbZ|f#M3`=r#oP=);N`-ZQmQSE_^}Vtc`;#Fn zC=15$D}mHcC9#3H5;Oz8)VJR}#@VJep9AnQ;}{s-p3-bsR4=r&?^udg@Zj}>06^AX z^k!-;TDR}@{<!m7UgKvpXm(JsQ2%spsddibn8u-10K!%_c zxboDG5mYyQ!U%OYRfE@*Bg`Zi|IX}oD_SeF2 z2o%Ktuf#Lidbz!9Y6ph8g7=WikaK-2K5gx z4P0~hi!w)Q_-#A8!e|s?VJFNy@{!{eRo7 ztLc$s_tm-6+I`MGo;RYh!10WlK}NGNLrOz~5zr0}4*4iV;IM&}nHa~@5QjK2M2|dc z^ZWK8MC!IfhZkXCuUOPtTrV+qUf1%zP>IsJ_tQutUBHr&sJDjC2bH<2`TfWa{*KL9 zVEdUyMPNt{dQJrt<$f0-8*Q9jxjh3(L9S#WWag&izm5vb*wNN(Co1^0G#4>d0pp!z znl0|B6%^D1k&^*(fl7QF(1#;=GAFjh3=KE%pi!gNl_y6ZA6YghN5_6)`HL#)Jl3Nb z7Y$vEuN-^}xU1cVpw^unZTa1O%2Z=8vJT-R?F5s+Fy)NY6QGp*4%KG-;t$*pgVsuaW^Y{%Og(J!&v=Vz8e{-6x#J|vgEdJgkrn#1`8CNIK z8wEt%Fekz1JH^U--`(3)DyCvOJs&T-_sL^yTE}&&5`4V8-p*>ePyK8!dt_|71je2< zA|h2LD!+mHeyTr?RyS&yFuQUKv|w7w#3RHR%aB;6gmj6!IW1o=n=F#+{;PyFXk*FX z-L?w&UK9`zP=FuAj4n)-GV%b#!6lbbCXH+2WQ?weK9%bRhrh>0&jAy6*C-ISc{rLR zI16ihX@85*`B1JIK*<39*woh@S%hm#MA_YL1!9;KQ?-z~DZtb@)rvjf|TD)2g zfq)_P~i<3kiWLn#}?F?0R zu5GNUFLta<7lbm{>u-~zjI==~n{!E+BNaNiP{`21lcmZkTJ#A)OOG@|;pLP^#hs8s zZKdt&n;gcxmANXPFg_#{qx<}MSDJz$V)W7>G|_^o@3|c4sC-pBf*z4YawjQ~y;Rde2actBhqe<@TvI{T5hkBeaH`LP zG`${zzi zn8^|Q;4>e<#Rgt6T_94s&1~np%Qs+W#I4+sp$u$H16$q8NaRAdO(-14!ES#DcGY$_ zsGCYeddVZ?wP(`eye42|u~QFxbriW0N_aB)vYEkYCjfxhN0S-sAC?Ylj(ZU|P~Sgq z-!D0PKZ_b^l|71k&8}Y_9Ua~552FHa-p9*Lpx*$PH0*~!tBvG3OapYoGecoSujMyF zoLVQT%Sb#pRT^F{&db#_5$r2}+9PdcCen7AtNS|GXJ8iW(gr zo1_+}M$bE$v{ZqwvpiWx@5gF37o5ZfOeXR++zhCxgPK0)#oO5;WNk3i<&5TOw^zLM!c@NLfGIfo=NfxLnMDtu#Ev3utVs(iKfwZ$!3ly@h=Fe*VnQSV3PA#~4PD z{B}XhWsDD&a_;#O*ikQ^4K z?AicY)w-JCWNIf?;Sej3{P@c}2y;o}V9rHfIUu_zHP!< z7opvVm3dey-e|R>zqGgWw5-tN=*s|u>IT~MS(wZA7S*2EoPc-)#p!vyJuwRiRkU^V z^bn&Ur4-OTgf9~p+_7%xo)b2W=`Gc3r1ZghzPyM+M>k$h!&QdWyc)|aUg_}$_b*^+ zE|`WD*zi19 z?_2}kgj4+D1?Xmg^*(ruqIA~3D(F4hMe2u@JRVwngSb_5w4-s&Vh$jhRPG;b2yr5+|W{;&MGbCWp}SnBLF-VnRw9nEvu_c7yb8e%{lIb6Woc zja!;Xf`2Wdn61`FA)f1fiyPJCcu?l(#5W&X`9-Rjtjnzir?9M_U7IKdug^U#DIdUS z)c<+h4&oK0N>LaxEarcSJwaO;mdMhpvZH9i8t)6Uf2(>6R}&)SQ%0UBPyCi> zQ~|OEyo?ucrZ6;usv0GQsVTm5>xn|I zwaHO+MK8?G&fWm1lq*sORBMmA_?cbOcG;9<#sw7>LOo3j)4;wa^(U!Ww9bEr$)&~_ zXYaABh^1zSDh(`wkIAKNNOW{tUk6I3c1-C4Doh{;krH97Ssv^sYI%>sN~t}OHMefH z;&s<(Y^DKzlVKV}wH0k^k{z2Z8swyc&xv4@miBY1H(ilu0ON)_va8asD<+c6c-6e~ z4N!yui!L#no-t`I{M^%#Q;%TGCk3Tq;kO1SUQJNd&*O=vlc|O4QLH>tL3rYiia9P8 zMubPz3r<9EUwdBt{ZV%#S>W4 z@|NXlu!-A>F;>_7*Y6YY4!;{|b(_=OCa}$ee_$j!H$PPVH4qrB>gBnBFU{GGr^w16@Gx#;QKs>7 zLIw#;kMnSucnqUBz;cEMgJN>O=9yhCTILGFv)Je1q*q^z8OBZF!n&s(E)Xj_MJ5AYAeFkq4WCdl zK&W{0CUzn>0)?Y8ao4IDow=7)YBjo~3Cou`leUFRo9kAa*^cePL(QrSS|zq@k7$}K zJg+~ZV`4VvDathlXpd91h!$bzhaT1w#)$Se7jYK~DroSoc4W^gqG!1YJ_+7p=}q$p zzq*NkD)7rI0CZ4}hjkU!+q3*}|4h#8WL%K5I6qm-5*=`NQox=sf91LLdV->nZ6_SsrOEx zd@KCD(NdOAi(R#s+JW2Nc{kbN#}|iq2Sd0yRZ?Y}$s>5{=Rp9Ze6))&UEd9{_@++)s>S8 zxszu|bQ9`XbJlMB?5NuoNS^(2yMR?ktkzxboLLcULFzP6l^b{%$EvFfdjM_FhdioU zphxBC(v4O8Q8cMda@+?_p&5zW2t}+h46q@&>c9}y$Eb&>U7xwymD@u1a)h^c|E#5~ zspZDULuL&jxly@yl(Wo7eS}+<*xAdw?X%6&mYv6*dP?KEmrcdiCq{J*ZI`Oe)A5zm zO@S`Ry*kVm0gbobqpg)jevoR2Hw5Ox?}dfwHNs6EEF-NYGNLN&TCL}p&S3qqF=ySHx4ps zD0AGAtqD?;I5A&`NBRa~_-P1@5j{oX?k$0Tk+_w;v}bIVScw&Uc!Qjs4-rvCoE_t= zOa~J4d+_=RJA^Q#8<f@$Q#KAB(OJ%w6!P}C#=D<)CZSYKtn@jdw?QFfNcnqUX~*yjUN@c! zGMd+iDJv5V>cQtA5+BcmGtUv|JAs;LM01(39ZS}Ga%#y__8DAwC5dd)@lD%R=EIPPx&tsq&wB|+&cS94|x2)#ce zZ+MMP_uFjDGaYh0PaB3c%4gFvR6u3Ws#p-i`@}{K{tJj4#3UpElH5;OyDpCKTx-y~ z2E$#8VUtgWU`9i?biT=@4H*c(XU5C{vD`O3FbM5+Ra-5^MyLJ0+gVDS(~T6pNj;{K zK;Y1djgeeo^@kPfYkk)pM!hPxHOO z1fD=6XmrIusx$Ij`o7F&1ospRYC`$4Z@mzs#8A@;4Qq{j3{9lM-*?3GkRZf#V0U*H z6priSqC%q)!6nc53n?&N@YPgvvM~Ac*X;Uzv~K0})bel@1Bky2lj?35 z_&k9Na91kpRUvGASHFzM)NxUwDuJsA2OHn`4HP&ji7SdlHBtq*U$JJ&W4Z1+6qh5G z`5qqzgxUe0Oa}8Z)@7m!B95$2GamzVm&cYVYU2`};~Jl(XiXyOqWD=D-`hH=IxA|d zgRkfsPz%<|lGX#Mls^%-qZPOgn!ZpQ`xbg&k zv18v}``#(7mV@?lt|!wTe%>x>?LGnNkd%HwTkr#nb-oc?`wUttdwXH@(Hcn1*IOkh z?j|QQQ}E;IU^F2kgP>StfT{b;|L2xiXL6LT_KzCB#V?IDs!`<}?bfPE?CdpI_g1KZ zF^9-ia!T;SLD(3RVsKWMABPf=n$C~ZsNG#%NAhL-oC5o?qsMmDSyjZh%=)!G8{>{W zvz8&gInDjL3te+m^zzMU+a@4$hysmvOBSt88W~C!^GnZ%NG+l4;Cl{sJ>5{yeHsl8 zwT5Z2-b9E4FA{R7hQ(Jn28Qh&;p8zq-7P{!4&JgimwYsNpo7W0;%4Ms)ZMvRxWEyHJ*ElyBOGW(M}&vaAxo4`kH? z9dODvb`_LLHF>3$XRGiGl`yQDx>l9;$;ai&5g}wW-CHRlTS$ z_9RwHV~i$hI*L+0U$-sFu>4y3Iv{Ln@OHI7)ERufIJl5yf&^`5ai7-2!DT#LPf{(S8ZZl7f{9@vl)H$VdV?0EL`YTsceyy7HliXE98$j8joVcqgGu;bIFF6Z=e{L6TE7U7>puI` zvUu4PIsCvfz4=6e`3Cs11^(cNc$){*C;x~sGXfjrbeD{}O~Su%Ioa9o%b%hep8>shTix3Ig~|AZwKG@S-9LaTA{e*T+CBb7UECz|Z@C0`)bh(+ z;6zUs#zfhz`Mr%XM9U3>qme8c2L4ioU$NI9sxhYFa`b)|Cn{~}OI(n_BtrOX0c_D| zB){9WZ>&x39kN5+NTX!d=PD4xZ7k>Vi6f5ly{FNyVKN;u(C9Hl7n9)pSfaqlk8~Y| zZPV~I(sM-X1h~LRm*JRSV<=F9F)@Uh)BvZEm}Emefm}g zP80RUux}!pkdK|N=yc53zWi*Zl{h`ud9#DV;YE(m)3y_|Z%$#m^`!nbp5D7P%Y444!UG8#mqhm|N zLars znSN{Z$A6GfJw2j2AWr1f_Mok-)t5Gt`#H)&q>Z%N$fovARg-lX6{nXQl{}$7TsPA~ zv&|FJejz0f{`@oG;D@EYg4n=V;JHxvq<>C>P_M+fW7HOF%K&7f-1@&P= zwBBq71OtzFe?R>?+tUuMGe2pPR=?Em7mjWi{hGxt*C-%l(duEonXc@o7A`*jtMC(3 zO>jt|X3O(ma5@9oxif)$P%WIvJ=lrj5c7}Z(L1$KA}Cy3nw;YdxbXm)ZE7V<{H4g$ z{zsv51Xkw4nwcK|FS1a6jR8?h(U;Ymz!&#iYS;)vw3p*ygB_t=Q6W1sbBAmH*Fw;r z;2|6WiqQUP!>>oiT&_e}+;|Bd{P&$Q1cU&oPVud$1;1ox#b^`D{8qWyy&k@J%QT*_ zo_3!KMB-&Z?on6J*#WfpwE#-t_ zJ9G{s7hO3Jzekt7X3IhG_lqHIiKI*;RTuR8fd;4ZmlOmwdhsanH#gF5k(mgn$|Gwh z)Gb&f9@!X$GY=7(xm!{2OEh!RSHHq-cLYYllYe2uNbK>2<;)}q@G}RezS&=5dd**# zVZeTdiyV}AV&O^qfuG35!@{rmI|V8^9nv0=ogmRu^^ zLDLvg7K5&+)Cy8{#UbvMA7dI9T$}FIOAv}xVUe_s@OE`*tF2all`|;Qenk-JdzmC* za$8`9$<2*buqs9?rGak3Lh}x+D>=#u1+tl=+PP?01P+auO{C0g;uM)@S{FB3$R^6Q zlqALgtL02R-I*+4lY;Y}3^gcmw+XT+*p#M~R#E#gPONd!^xTkoD{_3FXM+bsJtlBiN2s z5$?@3f2$aEJJfjxQ&H?V#Mt}3+f~_mpjSjeNvlL>%Boo2l!mlk*pzj`fy}ixC92%D zcYhOlhO_r?wJTYH3)NDnGLa=;t53wLHB>Y^Yw!~dZagt*}jBZ3-w77_(#J z*r}r)(ID?U^lK_Y) z=xbnEng*{L{UvBIgFSG@WIjz|6)fqiM{-SVEeoR!nfnlU?0FVu0yN?F44BQqr6sVJ}OzVPPGMt2N)=$ke%5! z9`(6e!adgxxm<3fXHe!q9@O01mVtw1NI-85bBy$24R!$N&v5Dqpzvm^$Jc3AIBi-!ZX;HGZNWy{*S*RfZsl3|U=5d87Q8TY>eb+{O~=Y1rR2AMmlfWAJS3R|HriZ5ZBe4i2g{8y4@P9vf z0phe*1o?0-h)Ur>L>j4Bxjk}@PBJm7fhvC)AC;m8M;bvjlGS~|sa|FC?oYsV7l@Rl zraKN4?XdY9 zN8pLJDjAGJg`~30va3;JCb!_DaTw`1^UCdG12F08lc5qzVU%)#>L3+UvnCpJ$nMe6 zP_XWq3al}b)vFmGYk*T`Z^;z0jrH&QUwKtr4=_hYG)2f4MkKJ-wLO^0BPE~O zWPyohDf&?r_8j|2D;S!L$#eTSuzmw*`!JZ~|Pdk;Q zhwVIz_&!hpQ8>1e)~1Z1iK*ueygdJ_i*hev&D&v=ZlWgJ_wb9t#mhjmVW|?=rm2KX zcmq7u|0Cv;D{JmrFacSAISQ(?*SU&5`#ThhlcE;3Gs8nVRuH%e7CXrJqtM@j$_b7K z8`mo1=n47%I!*jdTeP{H=URatlr$82{Jfz3r4*Y`By(O=WQ1mGdB;Abu;7gWqcmm9 zM^rh9Jkx`3hy4wuW>S^4{mVIBEsGBk`@l;WR&^&#pig6qnB;Mw$ewFm_4OtE*;oCu0=U4*ru}f6-gE^pj_vU{; zt}d^x53V{@zAoNP2D1NMjkP~=AZVPWM`{Uj{3+qkBF-gd2)hsR_01UF&y!{Znsq0 zHvwKBRQ9wrVu5{#iC#lK_<50-YuwM4kg*Dv^J6e9@|A%`*<`mGVkybf6Iwv!CqRsa z#m3_z#@Dz2zr03wD5#IGD*w?eVEiA)>G-0$I_+(D{fPPbls zr;t{lmqNk`lESY4zH^-}_@t(d6&htnpvBwEZwX-U;UQw4DV4O1<3(H4ag+)}tC|!X=)eEYz+0k1^e-(M z!JxJDjD9p_$;-F5OuCRWzpA1|+w6g^5rbaP@@y1eeHi|U`rn1feQWJ`$L23fzP^p~ zM5Z6qS;JQ2>x1RqHeAoUAtdw{+tE>k^Z?b zD|nuESm8(=XHQRnq%q3H4l_vSu#nbM-6#TuwRSe;H@u3)GLXA_3kqe&;gw*wEl*i2Xnq3iX(8XWvo>^=~DRF$4>7t+d=g#CpR zyh{}n={0JaJ{(({5Tk*`AP23-_kNh7m#)uJ&K6MmTtk(=S~R)ZT)HqM8_t_uH2cxJ zrp0;Q^@n?KbHNl#!h|H?I|jpRBbUSeNPW*-vPfAK>7MM*n+9oCo&-RR%HjnX&3*sz zU@KATvNM?%OF%X{_=<{||7px%R?`LVh8$)dh>iHywwV0<@>|z?V9h@=d>Ye}o1NA+7~JOaVMuhwM}KQUQ?!46u%BfdV8M}H+Bo^Dy*dhy5SA*Nw-24HGM`i4-XFu zR_7jA|DO7@_#Uh5y(Z@Z52pf1Vr%R>+rN3821?vq4{1WNVAZiN#cSw|4~^eAHqH_3 zo!oM<3nsHt-~%(Q`7>xGpxpw8>c#6#NdAU*H63{YLX4qqdIbq?g&~f(NtB~XhDtqc z7LIqm%$09rcSnb{71S3eXJ=7G$1fSW9H~=OK7Q%SEGb{492w5YCCX$$D|Uuk-@Q<$ zH#f5y;Ztin|EAw=AFwjR+4V4fC{HG^b>X5{cC$5V?=w7r+X8W|%;J4<1ZcoPF!L~< z4$+H|hO4YfFMnQm2Q=F)b`&_mx9Rtjkq{Fb@)tROhp6>b6l;#>oeNV?6N;FCoF_z^ z*(G8nu=Lm9B$UTs?IMQ**$wHl=CIS(`|{dXvH!N2NS?01+WL9mYsHtYOFBXQQADAq zD_fA)xk*2?ChE3eYQG-lN>K2nOdjK#z>>dp5~P=nmm(dI+pNz#3nL3nqPQUT*h|I&?Qh7iq5~U#MNCjg5<3WOp&)b+@UQu zw#j(R$x{#_*PNh{esvMAi& z=ETo^O@}CN7tPzzz&!u4`Ij5Vg2p5~gxHctGgfDETJ;dbv{*miu6OhIorPln550P^ zU2~x*aNH#sC^3$QAZAIwWuV6p(z3J}^6q(AU$Z$4DWQp*S*nHHH=ZQiEKT8U1GK(O z9D`<&f+MgbOY;y;!9C8m6z>jGY-_VBcZPh;b6hOueUCH>iO{wyun+_Rw6m;LN=To&N zf?|ni9gYYFvnJyWGXf7cmMrGp$Ncl0T6Nz7DXrt=L~uNTn943d_~h`Ykg z%EFlBLQiWf8AdgFjkeCn71O$hG(mZ~>b;90=>>I1Z-{?jNW`%ms+#%yyI%&Dc&PEn zAdA4zNMpELmzPddNr8G|HI5D!>FBu!8nY7mnr7PXMG3*!9nBY>ZtP zt?xb|l@9Z7nLM`2d*$T5<}<(p@pSUR{eW*SVsXd%DbHNkuW*>TEZ7R#ym{$QJz@N1h@A=~cp<W%ML~5L3>J8p z66v@W|B3e0WX6%me2oA&JY%OsLr_JW9}g$Oq`-z_iKNRTs$>=x>qQ^4QIgXQF+R%z zVcP!3zwVFbG@T;t2s`}Djm9j9XgDgVzAwcmfMx@X-4Er=-{oua>PS<<<^m}SM?tG9 zMk^-SLLWi7otOM}p}gh73M_`R>H%saskZzQi<@Na%H6>R4n+{@B)v5@Ao~M(#6h$j zGuzZXdd?@cC=#Exu@ z=u?V%WMk&tt1vBlK^S9vkjVPohRZQ5H7!%h3l#2{saHQNSS>8KF^Iboqd?Gfkl*5! z)EBx3ZlS=uo^)}&G?Wwofi-rn!o27rhV`GT96mL-DyEdX4lNhF?8p2t6shfkJ%uJO z5VgKQSo9?&k_aEOZg8_77i(Ip`C-7WR!l)iIr+J(lYakFirU?ch7n^jNLIZ?(<7iqrncq-vJxqmkeE9lCJ!0>lCDBsp8RFtxI=P~a21yg{}OhppaISjVqIwv zcRBbA7`wV4N(xX4Z;dI*@ zy95rdKp*Yq=$l1;qfTb(t*kSt5DG0 ziL3go5(_vD(_ol?uA(u%5J720*8esqHATZlm36@1mT%75DkgI?adHW{epsc%G3eR4 z+~IR8wv(xtUUz{v1}(y9=w=tPU1Gf?yqO8+#vf7QHDZyUg7}vXV#!J!^y{KhQB;$= zPwP46?hSlQpz@~?2bJDLNLh+6+HxQj5l(J~g}dhMk4oc*0=~H?*pKF?VV|Sk0631i zW$H)lGOT{bZzOA(n&?;ok3(dY)`m9o_86ZDVsUK~abV|id6nqo==CrQ4+m@5!$I$N zIhq4hd2pARDPIV`whX~sA5#-z&0|4bzA_7GAiFw;gVy$XB5T~o;>;JO$@b?ByPHM8 z3x7Lq9ix-I1BgWbBs%dBJJ5EmA>-BvM)vZ zHH+Dnu$h?lcP^SnIVzTtM)vfz9Qf#~Lc+ZmzdO{bQU}Z-=gJ%u7kV}P!l7&sl?Vxo z=J2n?2Ccr@NocN+nUyyKxA-dYj46-(+u#d@ikhBv6lBuLk+|7p11~8UURO`%bL%~Lv8JJK71H}clQJELAM?q{# zR|MWFXU8Tt0t!Cq5;yRhJb| z9##8VW!|WzpzmV;Ao*j>R!(nV%^I1edvZql%3rLO3CRufD>#GA<4zp0<-plkE@;;CqVVS|io-1{3ykd|t}Ry?8v2z~v%6 zi^>88V-FZ0i(q%1Rh_dW<+pgHNd#?Bzk}>J1bGKyCB zhHR`QaBgZluvFs3T?@ZDjZqvpFjhI(WEb4hj8eB^6r~vu&iYmY`_9ze;S0F(J{c#W zMu!?lAz6Y8D^%p0+K{n2%(V}X0&_}Slq{w1H@Y0!YBFa`1bQ}NeaKyH|1yWqxcI1i z6w{Wd@`(K%2&e5|XOBg5r=|jF1mIGClVd-OIjw9(=UzPEGMPF!i;Rx2#rZ|r9CFCO znZUZf70m&GdZV>I@PzHmrc=vbpw!>!)8ZA#F_89D@i`6Is-ouGcCf0&0wumN-6gWN?z%lVb5TRHl-5zleiVQ^J^4pkj%%z=#wCY&;vtXnegDXXerJD5Xn@Gh%r}A4>7x%v=2NGn*b9dDp@x0YusPZb{O7sfQ zk3q962hM5|>MTA^jT+EB>U~hvD{J(8lb_AWCN?5+ibz@JQ{N40Ek)R>Sr#NP`bt$# z562#wl7=_XzIAAZdBlTyqR&$`_PctqY%*E6{5{JVgll(cvHd6GD>W%?#fK5{wi`R$ zs5WOw*fz~y;iZ4J}52KK?e5>umm*;KQCGWECdy3KzM`QUPIE~_N!EhCI_F)IFW@JBK=Yfc4@8SBX0?T2&riv7$bAAi1V0H)d!3=~8}S8B zbqyIJE6C7??l3+jNb0p)4ow}Hy9;|(BuxyF5PrH5r~y`hoOIf6MYOn7`N7;Y6R z7p~j%Pk*9!8M+1uz}7lL)K9!>vXRyx5um^maUm>1&8#<%ckl{Z9pcjB1(f7VwLb$kuqbg@|0^Nxqo;~ST`Gq8CwvPgG;Vv&y9MHr85}S&~zz{ zH0DvacxVtmE>B%Gczq~(J)Xq#`K@hqGc9V*L=n^Z7?C<&VlGPay*xms8QNPG__YFd zTxL43v_&~Ik$?2aKqRQIg>$Jg;a@6-rU7I6^J(S+p;n}AuYvK*$gn|J;#9J(Mid79 z>+>@=wJHb$9~)FQXKsM<^94x=i%|>8Escp;@Dvd#^8PcFFJXEhVvYqb)HSz~l_Gt; z%(G`Vb#5!_jYn&1>n=YKrD*YK$+6Iz8Xf(WbJRU{p#syiR4%M8ZYHx<39}x-=uyJm z#+;etJfCvj#TO4F$Po{?^hB!kHNWpM?y~94q`81a_IA zpr8Ob_hFpL6Bdi;sk}N?o0(PCs3?dw7w8cdu}1*M)dT%Yq9WBZT4v)BOUdOeZxD@+ zE+coGwzOn!kK-8rWU)YH(kizeH2X6==;V;ewmM6g?n37R`pY4zz2XqWzf>y)@}8Ap zC(ylGYSa&evUJu5s)0TOk;zYc-D#sWZ>QAO%^w;6W9= zIv4Jo`O{t}a>Yt`OCyJdV{xW|7xfG7U3^G2 zTX&Bv#;zUb-1wRs3@wEb#+O%bHH3t79NXGWl5S(QTghx0)Kaj!OGbr6WV|VHP1CO7 zqi)aV%zYV3CU`s%4$m33W?!Ej4@YIf1e@hedn~6vDHaXvZi0inwGKq0UF797G=5e6 zNHIP&LKt?Vh&;wWX)~a0tJypWbg(pEVHhAp5SG=Jv!xl=plZ87vQS~cvqxH-TiLds zKR-VQ^=H3IAP@5Lk_*0N+kf37!ld~YJ|Jg1XJ)LtES(f_w{kMy_6<6@nVQClO;X2u zat4Eu__sSiEjBxCkNG_X1SjhaXJpbf^*$$t&Oy`o0Rs!lF(SXfH&|91%mLICLo`Q; zW_Z@9{-1p|Tg{D+rB_Z)Q5C{TTszaZAh38XWQlFKyp2AlrHoz=n#?FNwcvc_XoVIH zul@!t?Ut_5LiWeV=QD{Vc=Uwc=Umbk?1M>T$06XYZ-82|1|J*OyU+S)XfVeOZZ{P~ zP!UlXI#L@C)P9J(Lr)CketnNCc3%p($wUnw&WC3*qYO#}VJJJSOPvpwlC$l;;^*h{ z>~HT{>7ZMN)wOj|)&)v6~xBID(GR>)L4J#wiv3) zpaJ;nB5@TJE3csl3GIKRJ$vbQT?Y5@#&@_#ao8 zS#M|1=l|t>zT^dyOC_X$6QjQu!^ZN60b~z{<7xVc4bI394zZ3Nj=xJ*8me~^y-2=5 zLP8f3s-;kK*NX*D50rp;a4_JCwlS^3c77?mzd;IALN8j=6ewBJ9$)$TtjQzf`-(i4 zb;?k0<*-z?Ez`)+WN7cq!^_(M@`s%2E*|!WS!in0`Lf4+_@aM!In2k-X)Ylg0AS~- z%;BPAsrrmvHLNj6!Mb;xk{udfIwwxbHW+6gvQ};p7HF@R6dr!@rp=VnCI&f2nC!O^5fN3#;9vUczZDGz zBmME@FJCmeF{Fbbsxy+g9`9io364Jz6-&XPtfW)_LV{%!r~CXTpPe_RC`wnL#HEf= zO%qZvTB)+&NQ&RLSqIrTLdvJ2GRG<_H?2q)J~7JisN$k!yNUqiw=!0oCNM5)Pczsl zx^cy1R9={*TD{tJMyARv+6|;j?w}!!ILMbVtrfZ7WY2Dr>RX%v8r{GSW#; z@Qzx3_$1Or&DbvqVM79^*6eIedb9{N_Y~Aubcw3cBBd1LR!Rf^gdj=@y2YiWq(E%g zguw_c+aq!6Em^0ghXSYuZ;4SkH;>xeMxstkXBne-aO{v?1ZAq4A73i;#!pIDTV zX>c5}c5Y;t69h>UmpuMsIH_?yc4gogD9pm!4O^9owXSzxFr|MB)fAQcMk)Ybq6Mpv ziN`ch@Qa7v9)z&_ahuQ%*H4jIFEIRorj>PQ5F=4SS0O0+t@{t)a61Kgt$VD`ke<0; zX<()kwQw&$lr!m1E~Lo4@ebuiz@Vw zg%|0)b$ncoh3y&TXI1A32;*i=WnzZhr?NkdWkmNP|H~T0Tlh)k#AYmX?B&3YrvYKc z?zo?_S$w>7l(@za^nI(bf3-lR^AmbG9V$7_J8iO|(((k*$;|RfkDU^p>sV7isngL0 zRUQ>7Pz$=7RD?>aBC&S@;XgECwoM=@_CK4$N2M*Z)zop@~UNpi`TEW_&Ljr7Sd-X<7SC$u~#Mn80-`yhlLr zr&L4=qTKOpDGLb-)T#zK`#`{18S6vVpl#yo1tdEf=tQm!@;RGCPgxQXG|)ZDY#WUs zNgBf3QJl`Z*KHetU6C4)~SksMU49E$PNTP(>~ql`iR{s+Myy)ql5xXa*y%C+>=p~(wb=$ zNteQ6#Ze@KM#6-D+|die^{i6mKOy@5=fCMsd+*{lhnLRHbXlF`#&UlEdrhQi-wGRh zdOeE+7dBwAt~`5{cqw@|VXsN(``rNmioOTSEDh(&dW^QG@w3RU@4UyMtA+D*Mdgeq z>~SDGpd863$XV*uv#>SLc)Yaf%Aph254Y%B6?+C^BdSPQ=-hzA&_YdvE(b90l>=e+o#t;g# zSehykVR!Dn#TclH8lq4o=}dvg&Iy*^exVf8;eM=F5~^XAYwM@ ze_mNgp}g)<4E7YN5#67-zB%`kOV$sBtU+7Ell!XLq$3N_aT&e^*Wi5YcR0}V{f|3B zWGg1<9yHJ92~eGhZ;R0$^`jJd#pBeBrDB#=^Z1fKB2Fx;Az20rg#lWo+lvc%&JdG^ z7}5<7{m3cEe4eLV1!Es}+;Y0L?_%S8Aae0f{5q%gOYzZ*H61_FA5<9++I+YcFW0i> zx@aU{?UcV}^tL2(4iZNBCqSao>{-+8g`J2|W~)9zcZd~8R)g6ul?Yl^x>3j8j7}g$ zQ-9VFrCH$QAR1PrivcJ?V8Hj&b@+PQkUL$-2cb1hN_bN�Ya^&ZlT<_%|d;`p{m8 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�*K5^ax>*r@X*KNt)k()G zL!f0VBi9Kcl5OWkWLTDmGlDhYBP)EyC1PI?+&S<}92njhC}?1KnSQS|X2Y2+ z)1mrwNFNbd%JeJt>4(@NX;$cMfh4L^zrNNd6Jk?iyory)#0YmE>EPxF z<~d!7(15QR%?rLQdlw(i;HM*E{F_d9I6)H*{q@;KeN+ofg&g8!fTx823>MTM%%qWW z+bTpE!M57D=woW)5x?gxF?NIRW1BOPP;yDo>9#+XF+I~VSwkRj7BTzr?l!@?Ih}HL zs)fEZSVCo+^ucW*5BF7}FW#6qDaF-OCy_#VQvm*!Uysf#tzcPF5c;fJ6=wr3En;y~ znJyXfq=kRb_zn6*X%AmcEh~M@%j%r*pc$BsGhUZ~oX*(d!Ib(0^LxF0TGkbw-XM-h zr-i_}`8774bPH#>+GpIm#>f=fhK+8+2z&oBfHq`|ejZ~jmti9hIwI;k@wYWM3(>Dj zA_9oSkPK+2F7mpE6#!O0cv!*3RvH=%lzE=Osb#kf_-iZtJ#VHwvxfJQ6(PE2;i(>6 zf5b^7<+7>@^2||7MrY=A{XqD9o1h?V;G;3z3StwZyPjj=*}^=pvp#f;o%*s;phv-d z=WMOLCi0&|K@?=Na|pNYugsR8)5T8NK0v64(Osb%8t5)d=rjgdQdza# zmXYJoK1hLL#n`-EWae(GNJBYu($oBW=?um6F+M+(>2|y6g%zqBg$)WuIJ;h9RSx0 zLcxp<3WHo?@1?WnGd~JxY6waKH8ED*7lqD+jpNdgXE@y!2=DI;WV?Di9}ssBWrUqm zy)jZJSr!Uyc57!Z0yy3?8u|MznKM3ll(f;_I13A>%U@o#gC7h0Czy%+U`6Scyzokp z^Ms102_}E`67lA(e%d2r3h3|;assq82_qlz7+|677OHaEnt>Y1MnYN4kh2w;vhDO+ zBMrBh7D+$amjB>>yuU_of;Z2$KlP2Mjhe1V3Sr~M1qZ@K4I9~DK%VMC*<)w~r2G!x z{Ta%lbJ}79*{&flB>a7&9F7m%VaYkaYuPgP#oE&IIJCSM;2BN!EA26IJ^?Z%ZQ>&> zysqdcP&n&FD)q7+c@)6PH`{kwF9(0i*DXUz(SFIx8iw`1`LkLt_YG8yiKEWgJzj{* z&+#gFDGdD;y;q(6v;y?nJwD@q>B({~1$px$xno|Iiri<3_)b$Y0Lxwf9ect%B!y@} zxbkd_YK3}EvqzshV)tK^rZ+I%_n`C+kDsQy{mbVG%n`R|XRbKv2Ugpt`-O{L+tI2y zXFNmM_Maxq(rwA7f#91P)ZyXo>$D?kru<&3-Sz!h`~tG=m9F_AMMfrwTg0`=zPfd8 z+np&GN4~75Pm;x3$X<-H=KI1|IiV1rWHE?}AY946sKlgvb3BHAJP`n@quM-`nJHs1 z5*@)S!M*5YZ;|Q1;n#MB-q>_Y^*!Nl z&oJJQAT**N-@>JfoX*YNGwJ-ZTl9&J#Qa*sDO;XIjd$+wk4gHfYA;5s_v9R;ecwhD zo8s4(>EKptMo_FXODgzxVYjW8(|e@ctd)H>Zj(@Xkx=uD z>_MUxN43CzvBAGwBq=*F38X>E)mbsQddZ9!+buQKj9+Yg*8_{kPi&B&f1j)^-dZ74 zs<7BA6yjHWI`zatXhpaS@pgojzx92Cub^8i=kEmkN;N@wxc*)MELoUj|-+!lB2 z|DiZvQ(fRh;j479kIL9`5z=RlZJ88)iYXH`fU|=@2N41MjPAAQGqlm2fGn8zBx=+< zFA5*CIAuRjY&~`-p9@An)!NH};y8VK{%PlaMxvIIg(=4O^cEH_lc|p#77RnJ ze3CO=3*8i0(Odn&8-KL^gLj&6se`^#%kLiZOh0)qc_92@!g1SKoHH&9%xPcV0jX8B z(uPRSD2E5MHl?-ki`ITtp{!{XZ)NJ2Yp z;*8W^%$Hgb>r1BQc{SKv@x}>V-6cQD&l)xQVAj0$Zv}XS{YMNK-mT4we@ijN>5T4z zxDgR2lg zP3*2f;>mVf*h!$J3areX#oouJ8Aj=yb`&=+aUiW!wuGJW#CR za)$mQB4(F;HUd=Txq&Xzyob^p-;P76eLpzezm7B)k|M$`Z4-oMwuWHm1$9W@f~VcT z@*P!T=Z(E32c=QG$rmCZ<@I%Hs^&{bxJ%OmW=!akCS0avTN>@h;Igu5@ZgggSTr(| zpAZm41OD!|qUi$9A~e>hNrR;8I&12Qh{UeQ6igyZ?L*ELHWqy(xM`Er*7h-GX#*Y9 zrnJXz4(K7~&@4o%OUN;|#^AERtR=S!P5ZAU1L*Q-KG`A#9B&+x%2$>641Cmz=9yt& zJdk=wJh#^&vi`h*8=>^iBkp56*Y$6S;@idvN-l3zd=G{%FO& zi)3jJL1H4Ci`#JR!!uVUB7?E8%s@69cE~17_Nq&C4RJe=m1b=)ardKt0i})=CIcmF zC=<@rYoUvVlI^o@n463Z**c|2;#Y@&9Md6!ntmrVr-mc?0yiqO@JJumO_G*TgzPFZ3PZ(V4k zK_Yrje#(I@RBa1nUW3hck459LT&qicE2F|f^KP`xvydzcw4XP8J7r>PCr>MUqK&&n z%C}z=COj^^QuXd|wv1_Q`SSh1KzoIPRh&Ao?0 ztgPEBTZhfdg*~ft1c>=NK9(K>@^G(@3gtBYWAl%Q=k8>zkRoPP=04zn1d|*JL9LaE zie-g<@bEI9Xd@nyIHfVnKrss87kid&PFRY8FmffpBd|t_+zik=B91*P3_Lk zZ>Z=g{i%H@>DQEbgg%uxY^6E~CgHtG7@0h{sEhNgLo6TM3X=Q@Xnf(EOpqQ~ZA6wA zNK!p?Zg{=Xk0^Wj`t3NW>Tvho{ZK|=V_DY=7kIULavxjK&ex@ShUi!vMEwJ+?6hy+ z%QaSbB80PDZ#ocW8fs~OA~L$}w`BP-KbS_+e0M-Tgzq+5ay>qtWj@6!Z!4TAl!h#s zv`E|058FR6ZQJ_|P((e}hAqbuMmuq<9*2?EB6VAWqb3ny-Y3#u%Y^4V@3}_A=s zi>0|i#$h>(uA}350p>B~NM$F!t6}Cb-N=nHF_*e70r=W{a$s-bIF`q*d$6;cOMVQ=%zmx3sS!h}@Vu+2li1GgZ{z z51Bi5HTM|-)3fTwm~0Lkr;J*4%J))}0#5h?xbftA(+P7P=qSh`H-mq8z1iCXp9bED zpcmW>G?GCFRdJlRN6JWIPvvU=-rv+Pt67-k$=jsVFznP&C^J3mWHli?gw}~_UV#ZI zkKYbRMQC~KQD%>d`=UoYkI_?7<=|{c&vn%jAR)|vB!(+u&!2Z&;zjBX6>|Ych@JBQ z!!BB>sy&B_^Y(Xkgr{DHnEoc%q)O|=uO+bRhfo|(MSN#^H$rUZT3~e6ELFo)Eo*oP85{=g zZ13m*jRz=azMMv5Zamg$FC>#RKIJyd%dCZibic(LH zes@0eh3br2WFnp^3RndW2XYads`ErUzArc5$2*PI~-)G(Fr&Z?I zsZ@_mlOZ0^?8AB%yRk1crvfYq+}W`cAtuKGge>dd2$>|?>l1GSeXll28T`GHOWz_s zH@{^ayZR~MaP3CmotIr%ef(9uUi3izM)W2Mtc7KNpxP@G-J>}uwTpLi0{8*6zgjE@ zsa5|D{^AJ!iT@*1U-ffoTJjA-IU==-MRl&}Dc~pjI$FnR)B8U>l?7rt@lWLO!cAj1 zAo1Nz_$7v2|e&FvCNe%&5S(TfmqNGTnRZQGi zh6;8~YU^W)v>vI^T)xqCoTcvrx(=mWci5zlH^%zpiheT?W?U+`ydB-Ys;dJ&T+}5a zd-be?jARx9Y3_WF_I@fH=crGSthO{^Dw>wIRJtbUpMS0F3I;I+KFiQ=!yfHEA6Y*W zM&SWVF^U#R!vy@yzLtnvI5XBx2bLn-EO)0K>>xTh1b5P8Y3j%+@$p};j#6UZBC}@~ znG?Kc*Zo2r2$OP|MD`i9c|jH?%4!$BF=Sn<~y0{h@p3L${n5j5$u;NLvaJ=7BNZ zJlH(V3;on)fec^`p(xU-r9lUjVZ{fLATdC^;3>D|dyv(_rr^e5^nL zXi7tVe>U{zr$RGc%3`mbp%(td`Mh0MCTd1_!laMi}!l)JWns438O)}~|;7*$yj#x4p_S@*&Ybvy-Pm*iCAcSuFCjoN(jUXmY zrI@ORGlBFKF(FGnvMi_JsfjX_@OMiY53aE`0`-`G51XI@amxXNRM8l^Xm8q&WlhMW^HU{tmSf>jaP{6L!VSkWcolw0S~zOg`vbA zN%^}db|416FMup72jSu$UpdMrzlRuyCf4#t+s1cy?>|aJwoZju95uifZVGkU85-Mt zGt}7<&Hia7TgYjX4&W({vgTMps67CqQImmR*=LD!>6$W zMI>y?p!wT8|9Uh)@Z&}p?s#&RD-cpy-J(eaaN*z@IIy6S)f8`Z$VKl>yhi2HGpXaT z**I|lx5;FIW(Ln`xUi{~_R|%y@XHY-W1E%nZ_!09J|}m)1N`F+6Y*X#OVCG|1u9v4 zCDgI!WTB$k;3eWcUuq&B6g(VPx{% zuAJD;9xWJ;DX-QquZ7*Zq1QV`Ov|XI#g~$sSwmhIL{agKf$ec244Vr;wz>g2AUA>CRE*8xV zvDzKIwvLPJMVo@g$w||2iZ2HUhrAYUFHvbwwa0N9KuIY$I5^g6V|{XG&@4QAP;z|R zuTw~}te(F=+4L=dmyO95_vS7EZ>W&?)#_asGO!qfep1>DCwn|}hgthU{lZ|}z~ZCS zA*L_evZKR(yC>Z5s8GnLu8=nd`D^jrbrZAD%aa7A{?L{p zonV$`lQW#(q3%9Ysq148u$yFMHLgY5k{Hfc0H`tpIJm5R5{-aM4fCWfx2s35qBveb zWHwIrcWQPDM17<5boC1-D$1y?BfdYa1KQQ$qey~&KXiDqWIaYCt+1Kh8K;lLD)zLO z$K%~@8l{Ua&7n;|M2)VM`gqG7DrF{{2PdW$7@&<&uM~s1Ho6dUYy6V}@S(itiwOrr zz%)6xU@+&`8j@?wpMp|-D#$-PTN&4IyJ7Pc(j_$~lLR5;I6UrBME?IHuLyH(B3*90_^y zMV$1y5Uw7|h>-CbWPA*(8b*4;1f^wc1G#v8a-oqY5td$WihJtia(MVQ&5cnA@DB+| z*k#k}7n$yxpZOVdiQmIL-3p&qvYIedOdlnd2GfKfN_7v|q9o;8#FkIZw7U9>B}Npj zqGxQ*B06(=n$K3mm0?(l2xtXvLgKri5Z25HX9%MpZ(H~854Uj*TmPnXDEK{US(yD^ z9n=U0?ESj*K0Z@e-_zn1?E8ucbe9tR>XQ=wlm1&s`fTgfU>(Az7ynkNYvgZ*_Sy%Z z*GlODqzG7p_N^(cC>y7^fTrfp3ug&^L;FE3k= z_NQfIG;>dzq))&Yj1ch{cLQ>R^sC_i->JcHr*tzTfk5MQAP~|2?9^-w09y-t7i$A& z3p?BYRbw%sY2magf&N~p$DAWLT!{{*Q)ryBmuNJGZ?|7MthJ$PImQlx?*B;=+=D1R zL;LyoiysD7F+X1}{%kbFm%G*L#eJQB@2ZSbu-)hLHae-CY0eR7=gikD-gO09Dn%l((_A_kOGERmx<#fZa8@Z}|6B{WGiTrE1=J@VBhYj8REx zWO4Q7`o5Gg#>}$DbqUTrmNLCrDM!V?_mmXF_^=>Z@y$*GCJkwFkL5*L#(^VqgdEwU z`b1W8wfWoz6VfaoO=MncA-=ZNw1GyFKLtI;&ZpIz_hjE&xC-q90pT}W0S;q+lz_#8 zS=G-*aElb8>ii$y87vd+8CZh9IO&c~r3V@o$Xe=FD zid4sal|D)-W#O@`w0yX@Nk4v$lpR#Pz>ZLs&5^O;lohAqes%d~NqhG~K=K|ju3;hM z-|^H$?80HxDlf_JNcjtGNaoah)NZysT$%m%2zQofy0|xbhWOCwqdDEzP$=LxVM@qc z`FhSy-Vr7y@V@%ZQ}3OuRQBMrFz@VK`JxDr9vyzczh$_{@n+6%xMW2JFp5%MH%9tdona2UOMQGJktM zoRtw_7sSFY3;(-D3r5 zMw_hJ1A?+U&DTuhr*QkB|Gva_UstdCtVUjUOrg6`as8~NozG}8&}A(8mmENcL?ozz z3ogWi|0o=n8B10Pz1Y*i`(=9?GM#^i(pcl80e|MeT0PP;jE4U)yT^B6Qv_o8lyf6klB)?j; zCAj*j2}?X@c~;^|Mh`$M8&ABCLS_Vm+4k7aBF!nJH+nVCB~ z16k0Q%!iDX=~$ zb_nI4T0MLasam#7btAGAD-dkz1qZb_!_fzj1aBN$VgD?gNkFe?qKn!sNpY68VBX1FemsyBw7?`{I!?Bn&J`wW< zJCa&6fobl0aJo+qvR-p>~a!~#%k?=5}t|y{S<;+WfYw%^aC!&Y>L!a`;en5}!Ao>~bu{M#37Jc}O@N4y7%3`RbGo77hv9SjR(Fep z1KWpgGNtsQnTqbna{C=6c;Q;=@{^iOMWkt=5R2&4PbWS{%mx`9E1tNtV#QF2v)|~p zl*Muk6%Y>^wDCh2tH}FO$asuLuckSr4Dy45OY&c4f)BeN`HN{dZM_(BffcOSmhnOO zPE>ogL|Ck-lpIlL-ojV~GVu;sLes&A)wahB$jn76$O9KHgp%TI#KG=1JnG;(1JpHG zNZj{6J_2{)2o>l%>Zi?uQ64f4J$rE zDt0o+wE#_>e~m8kaHG{P=O-(tsdjL$#+}o2PsXSYlt1SlV=h|(^(-q|+4pb(*+*PBOSNP4c47 zr(qKVDKtT7X{zf-2b!D7(>q^fK-gU#w<5&(LGTzE)jzM4O=EQKOrk%2Ew7dlyoqT- zdI{WXO@pD7P!^@%^G^JA!KlS>5##7jV}LZq5?aVqp*@TeNJiV8f2XQ<^*9PEhrp|K zh!V^swvm2TF!SRU*4!AW@9?rpLVQ$|lC}V{Sbx-n@bz50FufaCbly97iTb zm#(e@3wV&bdS4;GRy9`UJR86pMOPpP*Zk6DEb!P2*buSrn3a%)a|5fRn<9T8+MYCR zNDW&lPevTvH|gKlw=Oss=VqS%CC+JUV?>n;NfZb7o?`yF0-WLs!)eJpQ7Pg+ka|-A zQ5Vyb5}=LQ?!E@mbX(e@iVPD{d%UDWM5);zI7kV0iNzr+8WNom@AEOt;qgs9Yb{{$ znlG5I|Ed4syj=$0&GYEmCwNAYNRenwDluLnX*M6~yMe9k^(-?;6{nTahA+T+;`g@2 zOoHqA~N-iEQmS9zdaY5e56h zN6x2F_g+esZ$)cIvyk}6^r)rB&GG%P-MsBp%@J#mOTSlS5UWa)7LZ_I{{gz>ju%pe z(#xgN*wpWW8FC{)SBixvkgXYIf#V(SB5-W=DAgQ1X-WV47*pqpq=C;!spkMPdEpAlw~tQMKsM zADR`3Ab3u7`D^6#lm$gh=25WQ6&loHH{J)ADty$uAa3w#QL2(O%xN%MRjFVM?lyEHYw=5yG37oea0%Rf= zuE=1Qr!4PAClY2@zc;;zyWPW#&~92_+R#cDie>y%zg(J$gnF)|BDR}m3Bf`HLRI@3 zJa_ck>FYS`bU#f7#fx%IH#YUlZ*ID@&ODgCZY_c(X^fZf_Yb}T< zCe~875XZVj{($dqEu*{!8e+cA0Wx*`8-Lx9SykL10L_1rdp0e0RX>%Zq*GtPtQCXe z=m6#>?7~f!tuMSj$)~xR^Tb-z#z070Y?f`bo5zm zOZS}((1#652U88hGz=!6LY0!O3WeL^O*I`5&hMM7NCP`|&-Uw)iZ{7(arGI<*1w9s z!>qBDk!B+3i13q_Zux5TS_B&<%W2V%`n$Q#*s&b9iGVXw)yvzhMjn~uM?BhR-u)~) zA3h^$Otf@>;CzA4IPpAN0kvDm{SKE_nGs*=sQ9{v`g)fLMZJ=k{ILW@QSw{770m36 zpd4z#Hhy(!ciU0%FeD5%eh%;Y2}ku=uCTSjDk3mPzY8IIzTYV5EvEvl;EG6Yac zS69d3w)*^W_(Cu12FwG#OnQYZ%D*-5lkwKllw6N)m^dE(3K(uYp|Hqb5&OPQJJ-N> zAjup&b9C^}w?3-t^h`9HUA^ms>7*uk-Y~==XuWb%I_At_%e%7Gx{TouzSW%dya!b= zH!oe{-LbEer=v-PeF;{^h4^+DAFqt*?fd}$_l^emPdR-OD^6hx83+hh8VCsce=cc` zmcL!BO#c6R`jzg5%O-ov&vh?|ngC}zsS@I5L(W=H(($}$sU5SNySE2-4xDHpigBVL zuwui)=8x}ee-HpM!fPpEGsl}FhXMr}FZ<;UA8Bb>gK>xd=XTbEaa^`^e0m=JTLdLj zu9k=HVoP@#E5<$+>a$%sql7G5sXV>s8jbr}&-J|3T>FIY*{1(wHRtE->r3mVUDBoE zjm!uiB~rE#?zsE+@96?+o2e{@nMl|_#$^laNP>sfg` z#iiGpFqJV)GViLcDVsJus8zm&a7(n5r@IW9ObrjOC`m2A=k2@$b&<;tewR@|(IuxY zi%X-QQq1cRJ0evuGfa;;!8kvi47Ea2)KF9i^*e(^g=`O1>WI1ReDh5rbxot2;7uH= zx~YhZi5!6a`}>>k?CD&0nk=f8M`#W)E?W!%5nYKK)QuEfDDJ z&u>{2c(So0#_I|;93|$i>paGC%C8XNq%bkN8AL8-eR4`ye`f-wxtyCCshRh`>%>)WL@NdY;s z7Kx?n_OAxUzf!q-8x$ZlB>a>{!YLisrmpRj(?(h_cfym*D%RlbI!Jv-pWsY;vzxkB(YH)RHJR6>y%nDO0sf8 zy%5j^fnXm?wJBnB=jE19ovj89xPiZucVfToUzW-5582Lh9ZLdCTo!-C4KNhXK~j#X-CseOmz)`_w3(&0gpPS*Hmj773WDp0&$1ED@XGeQh1 zy#`tEW_uV^#(04+%oCE*N8gWsh~!scNBpIP|Anm8(U7NEEr@7+8X}!M2o-=|1uN$7 zy29p}!BdoJZE%zGSp_2WkeZeE=$FgVE?WL>@`cu~Urg~7NG-@0peJVRE>;inYS2pn zY0_}yX#1c;AQ7nHUx$B?xRpqNS@_5m7yrcftB}08mQ0sM#4Cp0nUqFIiDX9hIjab+ z?&6>fu8o67F^1lO!=JsnGPeVQdleKI3xr(x!^0>++q~VKxr>s%U-v)JzHzhvWX~z_ zM(+JhLdHcLo%i&VAHBok|MTb1K{M(rM$G=*+w1)&+Hp>d1d|_Y4_@4^02XxN{+(y^ zDh1Qe<BPoWc(%ii_)ttr?~+}#Z_4`HA7iQ*vYSadBQxGO{)Xb$5o z^**iBJ5#}#QnN5a4Likr)%p&)~X^`z9|x)$v3|eFFi`q zW+xfCORn7Xm8{^b6*mFk(#|N7D4p_FA4Zpn2KDmU8PUvwlEXm`5J{VxOzQ`vJfP13 zukL$C30D#QpEh4SldNEm2jO-B51ZJM(MmV05A_|<+MLK1aZkpb)is8)G4 z-WM!gTS?KcBpdZ%qaO5)Lrd?p0EgEN)2|TfVLDo^{DJiC~sJU!+ARzWs{F1zAuqm;w z(L0)|j0mRkU+&hnOG`3IGtq7!aJ@@ucPZ_Q6>@_wk9+q$0k!njcENWPz{AFy&hNg% ztQ~jg^LH7b?8OF{11+1$b~6ycejmHCrudInYg>X0!%MqCw0alz8_v0z@V-doM#QoI^Hktl{^WQaL6YI&4%%qTK;<_ z2h|_Xx0u&6&(Rj8@(b~N4(%-Y!XD+sIEyuC52J-~Lku6F4rX(oeN7x|`a6M2rO`Sg4Im{&5t zFv?3;;E&T)74U;0f?@KfB=70 zljnLRC%p{^99DwEeU=3B&S|s@Pc79UXbNasYD?Cg2U`soh`kVZ;Ty8Nmrb*TYoZEA z_%IdVF`ed&wDU8 zxTX{50-I8Eyc9{LACK2h5{VeZIprt?)rBh9-oh;oBFi6-b3WX_2j)?^cV8t2s}B#T zx$7^o420uBuF$1dXE;39MXKda-sX-EBr(2eud*2xD3jJ6JV*2#*>%;URwrj4HUxF6 zawRT2a+0GcEcfpU)rD>!1`7$Kz(%Qz%TjhjB<&vL(OJ0DUodEq`Jsc;s_6$O^Z(bR z;Ql%Luh_u!^&j?9zMuCtkk>YFxSS3^Kd=CMj9`_Z8M*X4lsMf^r7EMNzefo|KE~^g zmfoWmZ+0oKAwnS8>IUcc*HCA69iZ4MFs%vkBvn95oJbN>^Ca+{@q3yChn-l`!HCJ9 zQ^*o4l4Nm)9f3LtJnS=s2ay$8X}-?O3Qmd?p~R6)3u9jeP&`*coMyD33qJ`s6%`CW zNJ(kN;BcJuy_=yWlZI1c z2AQhr<24)%H)=XG{4<_dWk2PI0&f3WNu&_Gojr_5V&Y4~1}XE!0klNi#6o!@BEUJe z=f{Mls~#xSty5m+d0>RD59uFj{L%>snW@lW^v1J3;j2428!pY|N z1X+UOXs}}9&4O#va|isp_6-9}*V(cdD14M1S&rF3t%9H>{WDLX8RN3sy7@DWc}e#a zO|d;uAF`5v2O4G7>uEU_wmL|KR=Ttpt@8<9YO&z2z|s}@Ay~~&zD}%BFR}nP>=<=4 zRTmF`NRjMgmD(@!afbjFu{c5{lGA|f^%PQ}T+0{@XU^sn!$8LMI%!)_NeG7&b$}l9 z!wuJr%Y%Xr8-gZ-Da?}dCqGUvDLf?Z-&Vt5z z!L@Ekf6h8oJ_&^uA?L3#Y<&?GzX*B16g@ktTy+9mxvY5t8NvW|n|xJTA3b^RB88&3 z^up(AViU>ULpA}J;!uLs>4mGw2YWUk<=TPW@GCO;-xnrk{WYMt;|*1h6PZ4e1i;ML zU=}}W0CuC>0%_n%rZ=oXJHyZzoFI3QK({A*=w|EH+MW^LkJaXL^_^OWp3Ha=z_Auw zPh{Z7$qqUXA}Qd|h#f-WhaETQMRkz)-&4o-OJg8|QF$EG0j}jT^}F2gICtU4!o-pM z1h0Xnh5u?tn^?!fwl=j|g?;T|vVt50_TP3PVzQV|6KQW^p}Ypc+5bh|+P<(L(J667{PK?7q5QfbyYziX6XUOSxE(}}l^Vk7GK=RnwsM(gTyX=cQ(wPr?}Fybxm-gym^ zKW|gIUEQ8?rKP7B#rmp|>vW=VV}&+1in-L_f-*dlQXEbw7HuAw!!uJ&&`tId2nGv` zUde=(6R?6fh%=kn05VCW!#M~KaSQ*0C*(FB*uJu&wOq1wFO--@n3PmG!G@`%eVAoD zC22qTO>otbwA-C(bEhJu&l9D(3WV@lO4TP9K$^OXeOgRKh723W19C4<6*T)Q5w@<9H39}s+#eyL z0aV)1nPoSPxzt(zHU(&;SZkc7o-a*lU;CV4oEoeid#&YfuEp;@^w~sPP;@GatMl%(b+H#itUz#ByatM7G~nZ_BpMg${9J<;Q2ztXrD*5O zcK@B}tGnXe8R0IG`>I|pH1A-*=Lj1}0RYWB4>Pdvrb84SuF{TCz_Nl!S zdwAg&hrv{BJENuP4IGa1VW{5E(N_eO~_FW{s_hQx@#0dpcX0kXwtsx@btU$oxe*1n>UOR`!6 zeE_2@Y!(C;E#QW3>CyhY&uc26+ed#RRP3t~;UjO}SMhblq|WXuSqOU0#PWE8w519L zne#ee?|^I$w0Mu6jf=8UrT&PtSdC5?2s8g+ zg1{MATaZi(wDuNyb@)Z@bF!0OAWr2gZ*2aF@Y}>MZbZ>HZ4L<+|H?g|1d)^Eg#h~5a2WLw@a(#lSz7V?Oeh~JCxMhK_3Bf=!YAnXyA55HSr}R zIQ7p{Kfe8)S=Jw-x?$l2SZ3;yEUW`t&ePx8d{}EDGV5Wf)6GBN|E($gr=%1rNsfUA z2L!Z1{C{z1+8X_KaC7~SgFoQ^NmZEEwsY9zMETA&=wJ48bgnDnl+R|ZhcA-ryeima z$b5W85L22%F=LtEj7-*hIqLn(QbaZxo8ykDx2rppTDIrN$v8Wui2v>S^gccf001V; zxg$osMc$2mDU^~*6wP>Y0#JGJ5Y-gNbmLwMnc6>2EMB4LnpOa(aMDM^+0>u53(%&N~L1uUG zdwO>XG$vWGo*auK4OzP-yRtEfd{aUOlFCs+{OAg*kUpC7Yau^iGeXx3aLoe}N;d1c zPhEL>dNt{~%GYZrFW|j}QeP`Ob-*X6Z}4af%v*WTUwJM0yy&I=O20^?zoSR

ONPn|1&iNXG|_2_hm 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

i(` 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 LnhL*KA9eda)Bu`^FuIC}(O_~DQ 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ℜpGZ?Qzy|bHN6(-?rf}Rd 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