From 1409b772067793f1633e67215e97c80a9154b24c Mon Sep 17 00:00:00 2001 From: Alex de Mulder Date: Fri, 9 Jan 2015 12:43:48 +0100 Subject: [PATCH] updated dist, examples --- dist/vis.css | 3 +- dist/vis.js | 4358 +++++++++++----------- dist/vis.map | 2 +- dist/vis.min.css | 2 +- dist/vis.min.js | 26 +- docs/network.html | 4 +- docs/timeline.html | 61 + examples/network/34_circular_images.html | 103 + examples/network/img/indonesia/1.png | Bin 0 -> 31035 bytes examples/network/img/indonesia/10.png | Bin 0 -> 29214 bytes examples/network/img/indonesia/11.png | Bin 0 -> 28546 bytes examples/network/img/indonesia/12.png | Bin 0 -> 30019 bytes examples/network/img/indonesia/13.png | Bin 0 -> 30734 bytes examples/network/img/indonesia/14.png | Bin 0 -> 30190 bytes examples/network/img/indonesia/2.png | Bin 0 -> 31437 bytes examples/network/img/indonesia/3.png | Bin 0 -> 31941 bytes examples/network/img/indonesia/4.png | Bin 0 -> 31358 bytes examples/network/img/indonesia/5.png | Bin 0 -> 31461 bytes examples/network/img/indonesia/6.png | Bin 0 -> 31014 bytes examples/network/img/indonesia/7.png | Bin 0 -> 30069 bytes examples/network/img/indonesia/8.png | Bin 0 -> 31864 bytes examples/network/img/indonesia/9.png | Bin 0 -> 30693 bytes examples/network/index.html | 1 + examples/timeline/32_grid_styling.html | 53 + examples/timeline/index.html | 1 + network_examples.html | 2 +- timeline_examples.html | 7 + 27 files changed, 2525 insertions(+), 2098 deletions(-) create mode 100644 examples/network/34_circular_images.html create mode 100644 examples/network/img/indonesia/1.png create mode 100644 examples/network/img/indonesia/10.png create mode 100644 examples/network/img/indonesia/11.png create mode 100644 examples/network/img/indonesia/12.png create mode 100644 examples/network/img/indonesia/13.png create mode 100644 examples/network/img/indonesia/14.png create mode 100644 examples/network/img/indonesia/2.png create mode 100644 examples/network/img/indonesia/3.png create mode 100644 examples/network/img/indonesia/4.png create mode 100644 examples/network/img/indonesia/5.png create mode 100644 examples/network/img/indonesia/6.png create mode 100644 examples/network/img/indonesia/7.png create mode 100644 examples/network/img/indonesia/8.png create mode 100644 examples/network/img/indonesia/9.png create mode 100644 examples/timeline/32_grid_styling.html diff --git a/dist/vis.css b/dist/vis.css index 529a17fb..81c94194 100644 --- a/dist/vis.css +++ b/dist/vis.css @@ -320,8 +320,7 @@ .vis.timeline .timeaxis .grid.vertical { position: absolute; - width: 0; - border-right: 1px solid; + border-left: 1px solid; } .vis.timeline .timeaxis .grid.minor { diff --git a/dist/vis.js b/dist/vis.js index 35bc492d..f8b4d425 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.7.2-SNAPSHOT - * @date 2015-01-07 + * @date 2015-01-09 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -137,13 +137,13 @@ return /******/ (function(modules) { // webpackBootstrap // Network exports.Network = __webpack_require__(51); exports.network = { - Edge: __webpack_require__(52), + Edge: __webpack_require__(57), Groups: __webpack_require__(54), Images: __webpack_require__(55), - Node: __webpack_require__(53), - Popup: __webpack_require__(56), - dotparser: __webpack_require__(57), - gephiParser: __webpack_require__(58) + Node: __webpack_require__(56), + Popup: __webpack_require__(58), + dotparser: __webpack_require__(52), + gephiParser: __webpack_require__(53) }; // Deprecated since v3.0.0 @@ -18049,14 +18049,12 @@ return /******/ (function(modules) { // webpackBootstrap function TimeAxis (body, options) { this.dom = { foreground: null, - majorLines: [], + lines: [], majorTexts: [], - minorLines: [], minorTexts: [], redundant: { - majorLines: [], + lines: [], majorTexts: [], - minorLines: [], minorTexts: [] } }; @@ -18232,29 +18230,40 @@ return /******/ (function(modules) { // webpackBootstrap // can be picked for re-use, and clear the lists with lines and texts. // At the end of the function _repaintLabels, left over elements will be cleaned up var dom = this.dom; - dom.redundant.majorLines = dom.majorLines; + dom.redundant.lines = dom.lines; dom.redundant.majorTexts = dom.majorTexts; - dom.redundant.minorLines = dom.minorLines; dom.redundant.minorTexts = dom.minorTexts; - dom.majorLines = []; + dom.lines = []; dom.majorTexts = []; - dom.minorLines = []; dom.minorTexts = []; - step.first(); + var cur; + var x = 0; + var isMajor; + var xPrev = 0; + var width = 0; + var prevLine; var xFirstMajorLabel = undefined; var max = 0; + var className; + + step.first(); while (step.hasNext() && max < 1000) { max++; - var cur = step.getCurrent(); - var x = this.body.util.toScreen(cur); - var isMajor = step.isMajor(); + cur = step.getCurrent(); + isMajor = step.isMajor(); + className = step.getClassName(); - // TODO: lines must have a width, such that we can create css backgrounds + xPrev = x; + x = this.body.util.toScreen(cur); + width = x - xPrev; + if (prevLine) { + prevLine.style.width = width + 'px'; + } if (this.options.showMinorLabels) { - this._repaintMinorText(x, step.getLabelMinor(), orientation); + this._repaintMinorText(x, step.getLabelMinor(), orientation, className); } if (isMajor && this.options.showMajorLabels) { @@ -18262,12 +18271,12 @@ return /******/ (function(modules) { // webpackBootstrap if (xFirstMajorLabel == undefined) { xFirstMajorLabel = x; } - this._repaintMajorText(x, step.getLabelMajor(), orientation); + this._repaintMajorText(x, step.getLabelMajor(), orientation, className); } - this._repaintMajorLine(x, orientation); + prevLine = this._repaintMajorLine(x, orientation, className); } else { - this._repaintMinorLine(x, orientation); + prevLine = this._repaintMinorLine(x, orientation, className); } step.next(); @@ -18280,7 +18289,7 @@ return /******/ (function(modules) { // webpackBootstrap widthText = leftText.length * (this.props.majorCharWidth || 10) + 10; // upper bound estimation if (xFirstMajorLabel == undefined || widthText < xFirstMajorLabel) { - this._repaintMajorText(0, leftText, orientation); + this._repaintMajorText(0, leftText, orientation, className); } } @@ -18300,9 +18309,10 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} x * @param {String} text * @param {String} orientation "top" or "bottom" (default) + * @param {String} className * @private */ - TimeAxis.prototype._repaintMinorText = function (x, text, orientation) { + TimeAxis.prototype._repaintMinorText = function (x, text, orientation, className) { // reuse redundant label var label = this.dom.redundant.minorTexts.shift(); @@ -18311,7 +18321,6 @@ return /******/ (function(modules) { // webpackBootstrap var content = document.createTextNode(''); label = document.createElement('div'); label.appendChild(content); - label.className = 'text minor'; this.dom.foreground.appendChild(label); } this.dom.minorTexts.push(label); @@ -18320,6 +18329,7 @@ return /******/ (function(modules) { // webpackBootstrap label.style.top = (orientation == 'top') ? (this.props.majorLabelHeight + 'px') : '0'; label.style.left = x + 'px'; + label.className = 'text minor ' + className; //label.title = title; // TODO: this is a heavy operation }; @@ -18328,9 +18338,10 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} x * @param {String} text * @param {String} orientation "top" or "bottom" (default) + * @param {String} className * @private */ - TimeAxis.prototype._repaintMajorText = function (x, text, orientation) { + TimeAxis.prototype._repaintMajorText = function (x, text, orientation, className) { // reuse redundant label var label = this.dom.redundant.majorTexts.shift(); @@ -18338,13 +18349,13 @@ return /******/ (function(modules) { // webpackBootstrap // create label var content = document.createTextNode(text); label = document.createElement('div'); - label.className = 'text major'; label.appendChild(content); this.dom.foreground.appendChild(label); } this.dom.majorTexts.push(label); label.childNodes[0].nodeValue = text; + label.className = 'text major ' + className; //label.title = title; // TODO: this is a heavy operation label.style.top = (orientation == 'top') ? '0' : (this.props.minorLabelHeight + 'px'); @@ -18355,19 +18366,19 @@ return /******/ (function(modules) { // webpackBootstrap * Create a minor line for the axis at position x * @param {Number} x * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the created line * @private */ - TimeAxis.prototype._repaintMinorLine = function (x, orientation) { + TimeAxis.prototype._repaintMinorLine = function (x, orientation, className) { // reuse redundant line - var line = this.dom.redundant.minorLines.shift(); - + var line = this.dom.redundant.lines.shift(); if (!line) { // create vertical line line = document.createElement('div'); - line.className = 'grid vertical minor'; this.dom.background.appendChild(line); } - this.dom.minorLines.push(line); + this.dom.lines.push(line); var props = this.props; if (orientation == 'top') { @@ -18378,25 +18389,29 @@ return /******/ (function(modules) { // webpackBootstrap } line.style.height = props.minorLineHeight + 'px'; line.style.left = (x - props.minorLineWidth / 2) + 'px'; + + line.className = 'grid vertical minor ' + className; + + return line; }; /** * Create a Major line for the axis at position x * @param {Number} x * @param {String} orientation "top" or "bottom" (default) + * @param {String} className + * @return {Element} Returns the created line * @private */ - TimeAxis.prototype._repaintMajorLine = function (x, orientation) { + TimeAxis.prototype._repaintMajorLine = function (x, orientation, className) { // reuse redundant line - var line = this.dom.redundant.majorLines.shift(); - + var line = this.dom.redundant.lines.shift(); if (!line) { // create vertical line - line = document.createElement('DIV'); - line.className = 'grid vertical major'; + line = document.createElement('div'); this.dom.background.appendChild(line); } - this.dom.majorLines.push(line); + this.dom.lines.push(line); var props = this.props; if (orientation == 'top') { @@ -18407,6 +18422,10 @@ return /******/ (function(modules) { // webpackBootstrap } line.style.left = (x - props.majorLineWidth / 2) + 'px'; line.style.height = props.majorLineHeight + 'px'; + + line.className = 'grid vertical major ' + className; + + return line; }; /** @@ -18988,6 +19007,78 @@ return /******/ (function(modules) { // webpackBootstrap return (format && format.length > 0) ? moment(date).format(format) : ''; }; + TimeStep.prototype.getClassName = function() { + var date = moment(this.current).locale('en'); + var step = this.step; + + function even(value) { + return (value / step % 2 == 0) ? ' even' : ' odd'; + } + + function today(date) { + if (date.isSame(new Date(), 'day')) { + return ' today'; + } + if (date.isSame(moment().add(1, 'day'), 'day')) { + return ' tomorrow'; + } + if (date.isSame(moment().add(-1, 'day'), 'day')) { + return ' yesterday'; + } + return ''; + } + + function currentWeek(date) { + return date.isSame(new Date(), 'week') ? ' current-week' : ''; + } + + function currentMonth(date) { + return date.isSame(new Date(), 'month') ? ' current-month' : ''; + } + + function currentYear(date) { + return date.isSame(new Date(), 'year') ? ' current-year' : ''; + } + + switch (this.scale) { + case 'millisecond': + return even(date.milliseconds()).trim(); + + case 'second': + return even(date.seconds()).trim(); + + case 'minute': + return even(date.minutes()).trim(); + + case 'hour': + var hours = date.hours(); + if (this.step == 4) { + hours = hours + '-' + (hours + 4); + } + return hours + 'h' + today(date) + even(date.hours()); + + case 'weekday': + return date.format('dddd').toLowerCase() + + today(date) + currentWeek(date) + even(date.date()); + + case 'day': + var day = date.date(); + var month = date.format('MMMM').toLowerCase(); + return 'day' + day + ' ' + month + currentMonth(date) + even(day - 1); + + case 'month': + return date.format('MMMM').toLowerCase() + + currentMonth(date) + even(date.month()); + + case 'year': + var year = date.year(); + return 'year' + year + currentYear(date)+ even(year); + + default: + return ''; + } + }; + module.exports = TimeStep; @@ -22490,13 +22581,13 @@ return /******/ (function(modules) { // webpackBootstrap var hammerUtil = __webpack_require__(22); var DataSet = __webpack_require__(7); var DataView = __webpack_require__(9); - var dotparser = __webpack_require__(57); - var gephiParser = __webpack_require__(58); + var dotparser = __webpack_require__(52); + var gephiParser = __webpack_require__(53); var Groups = __webpack_require__(54); var Images = __webpack_require__(55); - var Node = __webpack_require__(53); - var Edge = __webpack_require__(52); - var Popup = __webpack_require__(56); + var Node = __webpack_require__(56); + var Edge = __webpack_require__(57); + var Popup = __webpack_require__(58); var MixinLoader = __webpack_require__(59); var Activator = __webpack_require__(35); var locales = __webpack_require__(70); @@ -22531,6 +22622,7 @@ return /******/ (function(modules) { // webpackBootstrap this.renderTimestep = 1000 / this.renderRefreshRate; // ms -- saves calculation later on this.renderTime = 0; // measured time it takes to render a frame this.physicsTime = 0; // measured time it takes to render a frame + this.runDoubleSpeed = false; this.physicsDiscreteStepsize = 0.50; // discrete stepsize of the simulation this.initializing = true; @@ -24634,6 +24726,23 @@ return /******/ (function(modules) { // webpackBootstrap return false; }; + + Network.prototype._revertPhysicsState = function() { + var nodes = this.nodes; + for (var nodeId in nodes) { + if (nodes.hasOwnProperty(nodeId)) { + nodes[nodeId].revertPosition(); + } + } + } + + Network.prototype._revertPhysicsTick = function() { + this._doInAllActiveSectors("_revertPhysicsState"); + if (this.constants.smoothCurves.enabled == true && this.constants.smoothCurves.dynamic == true) { + this._doInSupportSector("_revertPhysicsState"); + } + } + /** * A single simulation step (or "tick") in the physics simulation * @@ -24657,6 +24766,17 @@ return /******/ (function(modules) { // webpackBootstrap // determine if the network has stabilzied this.moving = mainMovingStatus || supportMovingStatus; + if (this.moving == false) { + this._revertPhysicsTick(); + } + else { + // this is here to ensure that there is no start event when the network is already stable. + if (this.startedStabilization == false) { + this.emit("startStabilization"); + this.startedStabilization = true; + } + } + this.stabilizationIterations++; } } @@ -24678,13 +24798,17 @@ return /******/ (function(modules) { // webpackBootstrap var startTime = Date.now(); this._physicsTick(); + var physicsTime = Date.now() - startTime; // run double speed if it is a little graph - if (this.renderTimestep - this.renderTime > 2*this.physicsTime) { + if ((this.renderTimestep - this.renderTime > 2 * physicsTime || this.runDoubleSpeed == true) && this.moving == true) { this._physicsTick(); - } - this.physicsTime = Date.now() - startTime; + // this makes sure there is no jitter. The decision is taken once to run it at double speed. + if (this.renderTime != 0) { + this.runDoubleSpeed = true + } + } var renderStartTime = Date.now(); this._redraw(); @@ -24704,11 +24828,6 @@ return /******/ (function(modules) { // webpackBootstrap */ Network.prototype.start = function() { if (this.moving == true || this.xIncrement != 0 || this.yIncrement != 0 || this.zoomIncrement != 0) { - if (this.startedStabilization == false) { - this.emit("startStabilization"); - this.startedStabilization = true; - } - if (!this.timer) { if (this.requiresTimeout == true) { this.timer = window.setTimeout(this._animationStep.bind(this), this.renderTimestep); // wait this.renderTimeStep milliseconds and perform the animation step function @@ -24720,7 +24839,8 @@ return /******/ (function(modules) { // webpackBootstrap } else { this._redraw(); - if (this.stabilizationIterations > 0) { + // this check is to ensure that the network does not emit these events if it was already stabilized and setOptions is called (setting moving to true and calling start()) + if (this.stabilizationIterations > 1) { // trigger the "stabilized" event. // The event is triggered on the next tick, to prevent the case that // it is fired while initializing the Network, in which case you would not @@ -24729,12 +24849,15 @@ return /******/ (function(modules) { // webpackBootstrap var params = { iterations: me.stabilizationIterations }; - me.stabilizationIterations = 0; - me.startedStabilization = false; + this.stabilizationIterations = 0; + this.startedStabilization = false; setTimeout(function () { me.emit("stabilized", params); }, 0); } + else { + this.stabilizationIterations = 0; + } } }; @@ -25147,1219 +25270,1058 @@ return /******/ (function(modules) { // webpackBootstrap /* 52 */ /***/ function(module, exports, __webpack_require__) { - var util = __webpack_require__(1); - var Node = __webpack_require__(53); - /** - * @class Edge + * Parse a text source containing data in DOT language into a JSON object. + * The object contains two lists: one with nodes and one with edges. * - * A edge connects two nodes - * @param {Object} properties Object with properties. Must contain - * At least properties from and to. - * Available properties: from (number), - * to (number), label (string, color (string), - * width (number), style (string), - * length (number), title (string) - * @param {Network} network A Network object, used to find and edge to - * nodes. - * @param {Object} constants An object with default values for - * example for the color + * DOT language reference: http://www.graphviz.org/doc/info/lang.html + * + * @param {String} data Text containing a graph in DOT-notation + * @return {Object} graph An object containing two parameters: + * {Object[]} nodes + * {Object[]} edges */ - function Edge (properties, network, networkConstants) { - if (!network) { - throw "No network provided"; - } - var fields = ['edges','physics']; - var constants = util.selectiveBridgeObject(fields,networkConstants); - this.options = constants.edges; - this.physics = constants.physics; - this.options['smoothCurves'] = networkConstants['smoothCurves']; - - - this.network = network; + function parseDOT (data) { + dot = data; + return parseGraph(); + } - // initialize variables - this.id = undefined; - this.fromId = undefined; - this.toId = undefined; - this.title = undefined; - this.widthSelected = this.options.width * this.options.widthSelectionMultiplier; - this.value = undefined; - this.selected = false; - this.hover = false; - this.labelDimensions = {top:0,left:0,width:0,height:0,yLine:0}; // could be cached - this.dirtyLabel = true; + // token types enumeration + var TOKENTYPE = { + NULL : 0, + DELIMITER : 1, + IDENTIFIER: 2, + UNKNOWN : 3 + }; - this.from = null; // a node - this.to = null; // a node - this.via = null; // a temp node + // map with all delimiters + var DELIMITERS = { + '{': true, + '}': true, + '[': true, + ']': true, + ';': true, + '=': true, + ',': true, - this.fromBackup = null; // used to clean up after reconnect - this.toBackup = null;; // used to clean up after reconnect + '->': true, + '--': true + }; - // we use this to be able to reconnect the edge to a cluster if its node is put into a cluster - // by storing the original information we can revert to the original connection when the cluser is opened. - this.originalFromId = []; - this.originalToId = []; + var dot = ''; // current dot file + var index = 0; // current index in dot file + var c = ''; // current token character in expr + var token = ''; // current token + var tokenType = TOKENTYPE.NULL; // type of the token - this.connected = false; + /** + * Get the first character from the dot file. + * The character is stored into the char c. If the end of the dot file is + * reached, the function puts an empty string in c. + */ + function first() { + index = 0; + c = dot.charAt(0); + } - this.widthFixed = false; - this.lengthFixed = false; + /** + * Get the next character from the dot file. + * The character is stored into the char c. If the end of the dot file is + * reached, the function puts an empty string in c. + */ + function next() { + index++; + c = dot.charAt(index); + } - this.setProperties(properties); + /** + * Preview the next character from the dot file. + * @return {String} cNext + */ + function nextPreview() { + return dot.charAt(index + 1); + } - this.controlNodesEnabled = false; - this.controlNodes = {from:null, to:null, positions:{}}; - this.connectedNode = null; + /** + * Test whether given character is alphabetic or numeric + * @param {String} c + * @return {Boolean} isAlphaNumeric + */ + var regexAlphaNumeric = /[a-zA-Z_0-9.:#]/; + function isAlphaNumeric(c) { + return regexAlphaNumeric.test(c); } /** - * Set or overwrite properties for the edge - * @param {Object} properties an object with properties - * @param {Object} constants and object with default, global properties + * Merge all properties of object b into object b + * @param {Object} a + * @param {Object} b + * @return {Object} a */ - Edge.prototype.setProperties = function(properties) { - if (!properties) { - return; + function merge (a, b) { + if (!a) { + a = {}; } - var fields = ['style','fontSize','fontFace','fontColor','fontFill','width', - 'widthSelectionMultiplier','hoverWidth','arrowScaleFactor','dash','inheritColor' - ]; - util.selectiveDeepExtend(fields, this.options, properties); - - if (properties.from !== undefined) {this.fromId = properties.from;} - if (properties.to !== undefined) {this.toId = properties.to;} - - if (properties.id !== undefined) {this.id = properties.id;} - if (properties.label !== undefined) {this.label = properties.label; this.dirtyLabel = true;} - - if (properties.title !== undefined) {this.title = properties.title;} - if (properties.value !== undefined) {this.value = properties.value;} - if (properties.length !== undefined) {this.physics.springLength = properties.length;} - - if (properties.color !== undefined) { - this.options.inheritColor = false; - if (util.isString(properties.color)) { - this.options.color.color = properties.color; - this.options.color.highlight = properties.color; - } - else { - if (properties.color.color !== undefined) {this.options.color.color = properties.color.color;} - if (properties.color.highlight !== undefined) {this.options.color.highlight = properties.color.highlight;} - if (properties.color.hover !== undefined) {this.options.color.hover = properties.color.hover;} + if (b) { + for (var name in b) { + if (b.hasOwnProperty(name)) { + a[name] = b[name]; + } } } - - // A node is connected when it has a from and to node. - this.connect(); - - this.widthFixed = this.widthFixed || (properties.width !== undefined); - this.lengthFixed = this.lengthFixed || (properties.length !== undefined); - - this.widthSelected = this.options.width* this.options.widthSelectionMultiplier; - - // set draw method based on style - switch (this.options.style) { - case 'line': this.draw = this._drawLine; break; - case 'arrow': this.draw = this._drawArrow; break; - case 'arrow-center': this.draw = this._drawArrowCenter; break; - case 'dash-line': this.draw = this._drawDashLine; break; - default: this.draw = this._drawLine; break; - } - }; + return a; + } /** - * Connect an edge to its nodes + * Set a value in an object, where the provided parameter name can be a + * path with nested parameters. For example: + * + * var obj = {a: 2}; + * setValue(obj, 'b.c', 3); // obj = {a: 2, b: {c: 3}} + * + * @param {Object} obj + * @param {String} path A parameter name or dot-separated parameter path, + * like "color.highlight.border". + * @param {*} value */ - Edge.prototype.connect = function () { - this.disconnect(); - - this.from = this.network.nodes[this.fromId] || null; - this.to = this.network.nodes[this.toId] || null; - this.connected = (this.from && this.to); - - if (this.connected) { - this.from.attachEdge(this); - this.to.attachEdge(this); - } - else { - if (this.from) { - this.from.detachEdge(this); + function setValue(obj, path, value) { + var keys = path.split('.'); + var o = obj; + while (keys.length) { + var key = keys.shift(); + if (keys.length) { + // this isn't the end point + if (!o[key]) { + o[key] = {}; + } + o = o[key]; } - if (this.to) { - this.to.detachEdge(this); + else { + // this is the end point + o[key] = value; } } - }; + } /** - * Disconnect an edge from its nodes + * Add a node to a graph object. If there is already a node with + * the same id, their attributes will be merged. + * @param {Object} graph + * @param {Object} node */ - Edge.prototype.disconnect = function () { - if (this.from) { - this.from.detachEdge(this); - this.from = null; - } - if (this.to) { - this.to.detachEdge(this); - this.to = null; + function addNode(graph, node) { + var i, len; + var current = null; + + // find root graph (in case of subgraph) + var graphs = [graph]; // list with all graphs from current graph to root graph + var root = graph; + while (root.parent) { + graphs.push(root.parent); + root = root.parent; } - this.connected = false; - }; + // find existing node (at root level) by its id + if (root.nodes) { + for (i = 0, len = root.nodes.length; i < len; i++) { + if (node.id === root.nodes[i].id) { + current = root.nodes[i]; + break; + } + } + } - /** - * get the title of this edge. - * @return {string} title The title of the edge, or undefined when no title - * has been set. - */ - Edge.prototype.getTitle = function() { - return typeof this.title === "function" ? this.title() : this.title; - }; + if (!current) { + // this is a new node + current = { + id: node.id + }; + if (graph.node) { + // clone default attributes + current.attr = merge(current.attr, graph.node); + } + } + // add node to this (sub)graph and all its parent graphs + for (i = graphs.length - 1; i >= 0; i--) { + var g = graphs[i]; - /** - * Retrieve the value of the edge. Can be undefined - * @return {Number} value - */ - Edge.prototype.getValue = function() { - return this.value; - }; + if (!g.nodes) { + g.nodes = []; + } + if (g.nodes.indexOf(current) == -1) { + g.nodes.push(current); + } + } - /** - * Adjust the value range of the edge. The edge will adjust it's width - * based on its value. - * @param {Number} min - * @param {Number} max - */ - Edge.prototype.setValueRange = function(min, max) { - if (!this.widthFixed && this.value !== undefined) { - var scale = (this.options.widthMax - this.options.widthMin) / (max - min); - this.options.width= (this.value - min) * scale + this.options.widthMin; - this.widthSelected = this.options.width* this.options.widthSelectionMultiplier; + // merge attributes + if (node.attr) { + current.attr = merge(current.attr, node.attr); } - }; + } /** - * Redraw a edge - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx + * Add an edge to a graph object + * @param {Object} graph + * @param {Object} edge */ - Edge.prototype.draw = function(ctx) { - throw "Method draw not initialized in edge"; - }; + function addEdge(graph, edge) { + if (!graph.edges) { + graph.edges = []; + } + graph.edges.push(edge); + if (graph.edge) { + var attr = merge({}, graph.edge); // clone default attributes + edge.attr = merge(attr, edge.attr); // merge attributes + } + } /** - * Check if this object is overlapping with the provided object - * @param {Object} obj an object with parameters left, top - * @return {boolean} True if location is located on the edge + * Create an edge to a graph object + * @param {Object} graph + * @param {String | Number | Object} from + * @param {String | Number | Object} to + * @param {String} type + * @param {Object | null} attr + * @return {Object} edge */ - Edge.prototype.isOverlappingWith = function(obj) { - if (this.connected) { - var distMax = 10; - var xFrom = this.from.x; - var yFrom = this.from.y; - var xTo = this.to.x; - var yTo = this.to.y; - var xObj = obj.left; - var yObj = obj.top; - - var dist = this._getDistanceToEdge(xFrom, yFrom, xTo, yTo, xObj, yObj); - - return (dist < distMax); - } - else { - return false - } - }; + function createEdge(graph, from, to, type, attr) { + var edge = { + from: from, + to: to, + type: type + }; - Edge.prototype._getColor = function() { - var colorObj = this.options.color; - if (this.options.inheritColor == "to") { - colorObj = { - highlight: this.to.options.color.highlight.border, - hover: this.to.options.color.hover.border, - color: this.to.options.color.border - }; - } - else if (this.options.inheritColor == "from" || this.options.inheritColor == true) { - colorObj = { - highlight: this.from.options.color.highlight.border, - hover: this.from.options.color.hover.border, - color: this.from.options.color.border - }; + if (graph.edge) { + edge.attr = merge({}, graph.edge); // clone default attributes } + edge.attr = merge(edge.attr || {}, attr); // merge attributes - if (this.selected == true) {return colorObj.highlight;} - else if (this.hover == true) {return colorObj.hover;} - else {return colorObj.color;} - }; - + return edge; + } /** - * Redraw a edge as a line - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private + * Get next token in the current dot file. + * The token and token type are available as token and tokenType */ - Edge.prototype._drawLine = function(ctx) { - // set style - ctx.strokeStyle = this._getColor(); - ctx.lineWidth = this._getLineWidth(); + function getToken() { + tokenType = TOKENTYPE.NULL; + token = ''; - if (this.from != this.to) { - // draw line - var via = this._line(ctx); + // skip over whitespaces + while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { // space, tab, enter + next(); + } - // draw label - var point; - if (this.label) { - if (this.options.smoothCurves.enabled == true && via != null) { - var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); - var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); - point = {x:midpointX, y:midpointY}; + do { + var isComment = false; + + // skip comment + if (c == '#') { + // find the previous non-space character + var i = index - 1; + while (dot.charAt(i) == ' ' || dot.charAt(i) == '\t') { + i--; } - else { - point = this._pointOnLine(0.5); + if (dot.charAt(i) == '\n' || dot.charAt(i) == '') { + // the # is at the start of a line, this is indeed a line comment + while (c != '' && c != '\n') { + next(); + } + isComment = true; } - this._label(ctx, this.label, point.x, point.y); - } - } - else { - var x, y; - var radius = this.physics.springLength / 4; - var node = this.from; - if (!node.width) { - node.resize(ctx); - } - if (node.width > node.height) { - x = node.x + node.width / 2; - y = node.y - radius; - } - else { - x = node.x + radius; - y = node.y - node.height / 2; } - this._circle(ctx, x, y, radius); - point = this._pointOnCircle(x, y, radius, 0.5); - this._label(ctx, this.label, point.x, point.y); - } - }; - - /** - * Get the line width of the edge. Depends on width and whether one of the - * connected nodes is selected. - * @return {Number} width - * @private - */ - Edge.prototype._getLineWidth = function() { - if (this.selected == true) { - return Math.max(Math.min(this.widthSelected, this.options.widthMax), 0.3*this.networkScaleInv); - } - else { - if (this.hover == true) { - return Math.max(Math.min(this.options.hoverWidth, this.options.widthMax), 0.3*this.networkScaleInv); - } - else { - return Math.max(this.options.width, 0.3*this.networkScaleInv); - } - } - }; - - Edge.prototype._getViaCoordinates = function () { - var xVia = null; - var yVia = null; - var factor = this.options.smoothCurves.roundness; - var type = this.options.smoothCurves.type; - - var dx = Math.abs(this.from.x - this.to.x); - var dy = Math.abs(this.from.y - this.to.y); - if (type == 'discrete' || type == 'diagonalCross') { - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y - factor * dy; - } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y - factor * dy; - } - } - else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dy; - yVia = this.from.y + factor * dy; - } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dy; - yVia = this.from.y + factor * dy; - } - } - if (type == "discrete") { - xVia = dx < factor * dy ? this.from.x : xVia; + if (c == '/' && nextPreview() == '/') { + // skip line comment + while (c != '' && c != '\n') { + next(); } + isComment = true; } - else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y - factor * dx; - } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; - } - } - else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - xVia = this.from.x + factor * dx; - yVia = this.from.y + factor * dx; + if (c == '/' && nextPreview() == '*') { + // skip block comment + while (c != '') { + if (c == '*' && nextPreview() == '/') { + // end of block comment found. skip these last two characters + next(); + next(); + break; } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; + else { + next(); } } - if (type == "discrete") { - yVia = dy < factor * dx ? this.from.y : yVia; - } - } - } - else if (type == "straightCross") { - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { // up - down - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1-factor) * dy; - } - else { - yVia = this.to.y + (1-factor) * dy; - } + isComment = true; } - else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { // left - right - if (this.from.x < this.to.x) { - xVia = this.to.x - (1-factor) * dx; - } - else { - xVia = this.to.x + (1-factor) * dx; - } - yVia = this.from.y; + + // skip over whitespaces + while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { // space, tab, enter + next(); } } - else if (type == 'horizontal') { - if (this.from.x < this.to.x) { - xVia = this.to.x - (1-factor) * dx; - } - else { - xVia = this.to.x + (1-factor) * dx; - } - yVia = this.from.y; + while (isComment); + + // check for end of dot file + if (c == '') { + // token is still empty + tokenType = TOKENTYPE.DELIMITER; + return; } - else if (type == 'vertical') { - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1-factor) * dy; + + // check for delimiters consisting of 2 characters + var c2 = c + nextPreview(); + if (DELIMITERS[c2]) { + tokenType = TOKENTYPE.DELIMITER; + token = c2; + next(); + next(); + return; + } + + // check for delimiters consisting of 1 character + if (DELIMITERS[c]) { + tokenType = TOKENTYPE.DELIMITER; + token = c; + next(); + return; + } + + // check for an identifier (number or string) + // TODO: more precise parsing of numbers/strings (and the port separator ':') + if (isAlphaNumeric(c) || c == '-') { + token += c; + next(); + + while (isAlphaNumeric(c)) { + token += c; + next(); } - else { - yVia = this.to.y + (1-factor) * dy; + if (token == 'false') { + token = false; // convert to boolean } - } - else { // continuous - if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - // console.log(1) - xVia = this.from.x + factor * dy; - yVia = this.from.y - factor * dy; - xVia = this.to.x < xVia ? this.to.x : xVia; - } - else if (this.from.x > this.to.x) { - // console.log(2) - xVia = this.from.x - factor * dy; - yVia = this.from.y - factor * dy; - xVia = this.to.x > xVia ? this.to.x :xVia; - } - } - else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - // console.log(3) - xVia = this.from.x + factor * dy; - yVia = this.from.y + factor * dy; - xVia = this.to.x < xVia ? this.to.x : xVia; - } - else if (this.from.x > this.to.x) { - // console.log(4, this.from.x, this.to.x) - xVia = this.from.x - factor * dy; - yVia = this.from.y + factor * dy; - xVia = this.to.x > xVia ? this.to.x : xVia; - } - } + else if (token == 'true') { + token = true; // convert to boolean } - else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { - if (this.from.y > this.to.y) { - if (this.from.x < this.to.x) { - // console.log(5) - xVia = this.from.x + factor * dx; - yVia = this.from.y - factor * dx; - yVia = this.to.y > yVia ? this.to.y : yVia; - } - else if (this.from.x > this.to.x) { - // console.log(6) - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; - yVia = this.to.y > yVia ? this.to.y : yVia; - } - } - else if (this.from.y < this.to.y) { - if (this.from.x < this.to.x) { - // console.log(7) - xVia = this.from.x + factor * dx; - yVia = this.from.y + factor * dx; - yVia = this.to.y < yVia ? this.to.y : yVia; - } - else if (this.from.x > this.to.x) { - // console.log(8) - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; - yVia = this.to.y < yVia ? this.to.y : yVia; - } - } + else if (!isNaN(Number(token))) { + token = Number(token); // convert to number } + tokenType = TOKENTYPE.IDENTIFIER; + return; } - - return {x:xVia, y:yVia}; - }; - - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private - */ - Edge.prototype._line = function (ctx) { - // draw a straight line - ctx.beginPath(); - ctx.moveTo(this.from.x, this.from.y); - if (this.options.smoothCurves.enabled == true) { - if (this.options.smoothCurves.dynamic == false) { - var via = this._getViaCoordinates(); - if (via.x == null) { - ctx.lineTo(this.to.x, this.to.y); - ctx.stroke(); - return null; - } - else { - // this.via.x = via.x; - // this.via.y = via.y; - ctx.quadraticCurveTo(via.x,via.y,this.to.x, this.to.y); - ctx.stroke(); - return via; + // check for a string enclosed by double quotes + if (c == '"') { + next(); + while (c != '' && (c != '"' || (c == '"' && nextPreview() == '"'))) { + token += c; + if (c == '"') { // skip the escape character + next(); } + next(); } - else { - ctx.quadraticCurveTo(this.via.x,this.via.y,this.to.x, this.to.y); - ctx.stroke(); - return this.via; + if (c != '"') { + throw newSyntaxError('End of string " expected'); } + next(); + tokenType = TOKENTYPE.IDENTIFIER; + return; } - else { - ctx.lineTo(this.to.x, this.to.y); - ctx.stroke(); - return null; + + // something unknown is found, wrong characters, a syntax error + tokenType = TOKENTYPE.UNKNOWN; + while (c != '') { + token += c; + next(); } - }; + throw new SyntaxError('Syntax error in part "' + chop(token, 30) + '"'); + } /** - * Draw a line from a node to itself, a circle - * @param {CanvasRenderingContext2D} ctx - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @private + * Parse a graph. + * @returns {Object} graph */ - Edge.prototype._circle = function (ctx, x, y, radius) { - // draw a circle - ctx.beginPath(); - ctx.arc(x, y, radius, 0, 2 * Math.PI, false); - ctx.stroke(); - }; + function parseGraph() { + var graph = {}; - /** - * Draw label with white background and with the middle at (x, y) - * @param {CanvasRenderingContext2D} ctx - * @param {String} text - * @param {Number} x - * @param {Number} y - * @private - */ - Edge.prototype._label = function (ctx, text, x, y) { - if (text) { - ctx.font = ((this.from.selected || this.to.selected) ? "bold " : "") + - this.options.fontSize + "px " + this.options.fontFace; - var yLine; + first(); + getToken(); - if (this.dirtyLabel == true) { - var lines = String(text).split('\n'); - var lineCount = lines.length; - var fontSize = (Number(this.options.fontSize) + 4); - yLine = y + (1 - lineCount) / 2 * fontSize; + // optional strict keyword + if (token == 'strict') { + graph.strict = true; + getToken(); + } - var width = ctx.measureText(lines[0]).width; - for (var i = 1; i < lineCount; i++) { - var lineWidth = ctx.measureText(lines[i]).width; - width = lineWidth > width ? lineWidth : width; - } - var height = this.options.fontSize * lineCount; - var left = x - width / 2; - var top = y - height / 2; + // graph or digraph keyword + if (token == 'graph' || token == 'digraph') { + graph.type = token; + getToken(); + } - // cache - this.labelDimensions = {top:top,left:left,width:width,height:height,yLine:yLine}; - } + // optional graph id + if (tokenType == TOKENTYPE.IDENTIFIER) { + graph.id = token; + getToken(); + } + // open angle bracket + if (token != '{') { + throw newSyntaxError('Angle bracket { expected'); + } + getToken(); - if (this.options.fontFill !== undefined && this.options.fontFill !== null && this.options.fontFill !== "none") { - ctx.fillStyle = this.options.fontFill; - ctx.fillRect(this.labelDimensions.left, - this.labelDimensions.top, - this.labelDimensions.width, - this.labelDimensions.height); - } + // statements + parseStatements(graph); - // draw text - ctx.fillStyle = this.options.fontColor || "black"; - ctx.textAlign = "center"; - ctx.textBaseline = "middle"; - yLine = this.labelDimensions.yLine; - for (var i = 0; i < lineCount; i++) { - ctx.fillText(lines[i], x, yLine); - yLine += fontSize; + // close angle bracket + if (token != '}') { + throw newSyntaxError('Angle bracket } expected'); + } + getToken(); + + // end of file + if (token !== '') { + throw newSyntaxError('End of file expected'); + } + getToken(); + + // remove temporary default properties + delete graph.node; + delete graph.edge; + delete graph.graph; + + return graph; + } + + /** + * Parse a list with statements. + * @param {Object} graph + */ + function parseStatements (graph) { + while (token !== '' && token != '}') { + parseStatement(graph); + if (token == ';') { + getToken(); } } - }; + } /** - * Redraw a edge as a dashed line - * Draw this edge in the given canvas - * @author David Jordan - * @date 2012-08-08 - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private + * Parse a single statement. Can be a an attribute statement, node + * statement, a series of node statements and edge statements, or a + * parameter. + * @param {Object} graph */ - Edge.prototype._drawDashLine = function(ctx) { - // set style - ctx.strokeStyle = this._getColor(); - ctx.lineWidth = this._getLineWidth(); + function parseStatement(graph) { + // parse subgraph + var subgraph = parseSubgraph(graph); + if (subgraph) { + // edge statements + parseEdge(graph, subgraph); - var via = null; - // only firefox and chrome support this method, else we use the legacy one. - if (ctx.mozDash !== undefined || ctx.setLineDash !== undefined) { - // configure the dash pattern - var pattern = [0]; - if (this.options.dash.length !== undefined && this.options.dash.gap !== undefined) { - pattern = [this.options.dash.length,this.options.dash.gap]; - } - else { - pattern = [5,5]; - } + return; + } - // set dash settings for chrome or firefox - if (typeof ctx.setLineDash !== 'undefined') { //Chrome - ctx.setLineDash(pattern); - ctx.lineDashOffset = 0; + // parse an attribute statement + var attr = parseAttributeStatement(graph); + if (attr) { + return; + } - } else { //Firefox - ctx.mozDash = pattern; - ctx.mozDashOffset = 0; + // parse node + if (tokenType != TOKENTYPE.IDENTIFIER) { + throw newSyntaxError('Identifier expected'); + } + var id = token; // id can be a string or a number + getToken(); + + if (token == '=') { + // id statement + getToken(); + if (tokenType != TOKENTYPE.IDENTIFIER) { + throw newSyntaxError('Identifier expected'); } + graph[id] = token; + getToken(); + // TODO: implement comma separated list with "a_list: ID=ID [','] [a_list] " + } + else { + parseNodeStatement(graph, id); + } + } - // draw the line - via = this._line(ctx); + /** + * Parse a subgraph + * @param {Object} graph parent graph object + * @return {Object | null} subgraph + */ + function parseSubgraph (graph) { + var subgraph = null; - // restore the dash settings. - if (typeof ctx.setLineDash !== 'undefined') { //Chrome - ctx.setLineDash([0]); - ctx.lineDashOffset = 0; + // optional subgraph keyword + if (token == 'subgraph') { + subgraph = {}; + subgraph.type = 'subgraph'; + getToken(); - } else { //Firefox - ctx.mozDash = [0]; - ctx.mozDashOffset = 0; + // optional graph id + if (tokenType == TOKENTYPE.IDENTIFIER) { + subgraph.id = token; + getToken(); } } - else { // unsupporting smooth lines - // draw dashed line - ctx.beginPath(); - ctx.lineCap = 'round'; - if (this.options.dash.altLength !== undefined) //If an alt dash value has been set add to the array this value - { - ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y, - [this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]); - } - else if (this.options.dash.length !== undefined && this.options.dash.gap !== undefined) //If a dash and gap value has been set add to the array this value - { - ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y, - [this.options.dash.length,this.options.dash.gap]); - } - else //If all else fails draw a line - { - ctx.moveTo(this.from.x, this.from.y); - ctx.lineTo(this.to.x, this.to.y); + + // open angle bracket + if (token == '{') { + getToken(); + + if (!subgraph) { + subgraph = {}; } - ctx.stroke(); - } + subgraph.parent = graph; + subgraph.node = graph.node; + subgraph.edge = graph.edge; + subgraph.graph = graph.graph; - // draw label - if (this.label) { - var point; - if (this.options.smoothCurves.enabled == true && via != null) { - var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); - var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); - point = {x:midpointX, y:midpointY}; + // statements + parseStatements(subgraph); + + // close angle bracket + if (token != '}') { + throw newSyntaxError('Angle bracket } expected'); } - else { - point = this._pointOnLine(0.5); + getToken(); + + // remove temporary default properties + delete subgraph.node; + delete subgraph.edge; + delete subgraph.graph; + delete subgraph.parent; + + // register at the parent graph + if (!graph.subgraphs) { + graph.subgraphs = []; } - this._label(ctx, this.label, point.x, point.y); + graph.subgraphs.push(subgraph); } - }; + + return subgraph; + } /** - * Get a point on a line - * @param {Number} percentage. Value between 0 (line start) and 1 (line end) - * @return {Object} point - * @private + * parse an attribute statement like "node [shape=circle fontSize=16]". + * Available keywords are 'node', 'edge', 'graph'. + * The previous list with default attributes will be replaced + * @param {Object} graph + * @returns {String | null} keyword Returns the name of the parsed attribute + * (node, edge, graph), or null if nothing + * is parsed. */ - Edge.prototype._pointOnLine = function (percentage) { - return { - x: (1 - percentage) * this.from.x + percentage * this.to.x, - y: (1 - percentage) * this.from.y + percentage * this.to.y + function parseAttributeStatement (graph) { + // attribute statements + if (token == 'node') { + getToken(); + + // node attributes + graph.node = parseAttributeList(); + return 'node'; } - }; + else if (token == 'edge') { + getToken(); + + // edge attributes + graph.edge = parseAttributeList(); + return 'edge'; + } + else if (token == 'graph') { + getToken(); + + // graph attributes + graph.graph = parseAttributeList(); + return 'graph'; + } + + return null; + } /** - * Get a point on a circle - * @param {Number} x - * @param {Number} y - * @param {Number} radius - * @param {Number} percentage. Value between 0 (line start) and 1 (line end) - * @return {Object} point - * @private + * parse a node statement + * @param {Object} graph + * @param {String | Number} id */ - Edge.prototype._pointOnCircle = function (x, y, radius, percentage) { - var angle = (percentage - 3/8) * 2 * Math.PI; - return { - x: x + radius * Math.cos(angle), - y: y - radius * Math.sin(angle) + function parseNodeStatement(graph, id) { + // node statement + var node = { + id: id + }; + var attr = parseAttributeList(); + if (attr) { + node.attr = attr; } - }; + addNode(graph, node); + + // edge statements + parseEdge(graph, id); + } /** - * Redraw a edge as a line with an arrow halfway the line - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private + * Parse an edge or a series of edges + * @param {Object} graph + * @param {String | Number} from Id of the from node */ - Edge.prototype._drawArrowCenter = function(ctx) { - var point; - // set style - ctx.strokeStyle = this._getColor(); - ctx.fillStyle = ctx.strokeStyle; - ctx.lineWidth = this._getLineWidth(); - - if (this.from != this.to) { - // draw line - var via = this._line(ctx); + function parseEdge(graph, from) { + while (token == '->' || token == '--') { + var to; + var type = token; + getToken(); - var angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); - var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - // draw an arrow halfway the line - if (this.options.smoothCurves.enabled == true && via != null) { - var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); - var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); - point = {x:midpointX, y:midpointY}; + var subgraph = parseSubgraph(graph); + if (subgraph) { + to = subgraph; } else { - point = this._pointOnLine(0.5); + if (tokenType != TOKENTYPE.IDENTIFIER) { + throw newSyntaxError('Identifier or subgraph expected'); + } + to = token; + addNode(graph, { + id: to + }); + getToken(); } - ctx.arrow(point.x, point.y, angle, length); - ctx.fill(); - ctx.stroke(); - - // draw label - if (this.label) { - this._label(ctx, this.label, point.x, point.y); - } - } - else { - // draw circle - var x, y; - var radius = 0.25 * Math.max(100,this.physics.springLength); - var node = this.from; - if (!node.width) { - node.resize(ctx); - } - if (node.width > node.height) { - x = node.x + node.width * 0.5; - y = node.y - radius; - } - else { - x = node.x + radius; - y = node.y - node.height * 0.5; - } - this._circle(ctx, x, y, radius); + // parse edge attributes + var attr = parseAttributeList(); - // draw all arrows - var angle = 0.2 * Math.PI; - var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - point = this._pointOnCircle(x, y, radius, 0.5); - ctx.arrow(point.x, point.y, angle, length); - ctx.fill(); - ctx.stroke(); + // create edge + var edge = createEdge(graph, from, to, type, attr); + addEdge(graph, edge); - // draw label - if (this.label) { - point = this._pointOnCircle(x, y, radius, 0.5); - this._label(ctx, this.label, point.x, point.y); - } + from = to; } - }; - - + } /** - * Redraw a edge as a line with an arrow - * Draw this edge in the given canvas - * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); - * @param {CanvasRenderingContext2D} ctx - * @private + * Parse a set with attributes, + * for example [label="1.000", shape=solid] + * @return {Object | null} attr */ - Edge.prototype._drawArrow = function(ctx) { - // set style - ctx.strokeStyle = this._getColor(); - ctx.fillStyle = ctx.strokeStyle; - ctx.lineWidth = this._getLineWidth(); - - var angle, length; - //draw a line - if (this.from != this.to) { - angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); - var dx = (this.to.x - this.from.x); - var dy = (this.to.y - this.from.y); - var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); + function parseAttributeList() { + var attr = null; - var fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); - var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; - var xFrom = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; - var yFrom = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; + while (token == '[') { + getToken(); + attr = {}; + while (token !== '' && token != ']') { + if (tokenType != TOKENTYPE.IDENTIFIER) { + throw newSyntaxError('Attribute name expected'); + } + var name = token; - var via; - if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true ) { - via = this.via; - } - else if (this.options.smoothCurves.enabled == true) { - via = this._getViaCoordinates(); - } + getToken(); + if (token != '=') { + throw newSyntaxError('Equal sign = expected'); + } + getToken(); - if (this.options.smoothCurves.enabled == true && via.x != null) { - angle = Math.atan2((this.to.y - via.y), (this.to.x - via.x)); - dx = (this.to.x - via.x); - dy = (this.to.y - via.y); - edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); - } - var toBorderDist = this.to.distanceToBorder(ctx, angle); - var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + if (tokenType != TOKENTYPE.IDENTIFIER) { + throw newSyntaxError('Attribute value expected'); + } + var value = token; + setValue(attr, name, value); // name can be a path - var xTo,yTo; - if (this.options.smoothCurves.enabled == true && via.x != null) { - xTo = (1 - toBorderPoint) * via.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * via.y + toBorderPoint * this.to.y; - } - else { - xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; + getToken(); + if (token ==',') { + getToken(); + } } - ctx.beginPath(); - ctx.moveTo(xFrom,yFrom); - if (this.options.smoothCurves.enabled == true && via.x != null) { - ctx.quadraticCurveTo(via.x,via.y,xTo, yTo); - } - else { - ctx.lineTo(xTo, yTo); + if (token != ']') { + throw newSyntaxError('Bracket ] expected'); } - ctx.stroke(); + getToken(); + } - // draw arrow at the end of the line - length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - ctx.arrow(xTo, yTo, angle, length); - ctx.fill(); - ctx.stroke(); + return attr; + } - // draw label - if (this.label) { - var point; - if (this.options.smoothCurves.enabled == true && via != null) { - var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); - var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); - point = {x:midpointX, y:midpointY}; + /** + * Create a syntax error with extra information on current token and index. + * @param {String} message + * @returns {SyntaxError} err + */ + function newSyntaxError(message) { + return new SyntaxError(message + ', got "' + chop(token, 30) + '" (char ' + index + ')'); + } + + /** + * Chop off text after a maximum length + * @param {String} text + * @param {Number} maxLength + * @returns {String} + */ + function chop (text, maxLength) { + return (text.length <= maxLength) ? text : (text.substr(0, 27) + '...'); + } + + /** + * Execute a function fn for each pair of elements in two arrays + * @param {Array | *} array1 + * @param {Array | *} array2 + * @param {function} fn + */ + function forEach2(array1, array2, fn) { + if (Array.isArray(array1)) { + array1.forEach(function (elem1) { + if (Array.isArray(array2)) { + array2.forEach(function (elem2) { + fn(elem1, elem2); + }); } else { - point = this._pointOnLine(0.5); + fn(elem1, array2); } - this._label(ctx, this.label, point.x, point.y); - } + }); } else { - // draw circle - var node = this.from; - var x, y, arrow; - var radius = 0.25 * Math.max(100,this.physics.springLength); - if (!node.width) { - node.resize(ctx); - } - if (node.width > node.height) { - x = node.x + node.width * 0.5; - y = node.y - radius; - arrow = { - x: x, - y: node.y, - angle: 0.9 * Math.PI - }; + if (Array.isArray(array2)) { + array2.forEach(function (elem2) { + fn(array1, elem2); + }); } else { - x = node.x + radius; - y = node.y - node.height * 0.5; - arrow = { - x: node.x, - y: y, - angle: 0.6 * Math.PI - }; + fn(array1, array2); } - ctx.beginPath(); - // TODO: similarly, for a line without arrows, draw to the border of the nodes instead of the center - ctx.arc(x, y, radius, 0, 2 * Math.PI, false); - ctx.stroke(); + } + } - // draw all arrows - var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - ctx.arrow(arrow.x, arrow.y, arrow.angle, length); - ctx.fill(); - ctx.stroke(); + /** + * Convert a string containing a graph in DOT language into a map containing + * with nodes and edges in the format of graph. + * @param {String} data Text containing a graph in DOT-notation + * @return {Object} graphData + */ + function DOTToGraph (data) { + // parse the DOT file + var dotData = parseDOT(data); + var graphData = { + nodes: [], + edges: [], + options: {} + }; - // draw label - if (this.label) { - point = this._pointOnCircle(x, y, radius, 0.5); - this._label(ctx, this.label, point.x, point.y); - } + // copy the nodes + if (dotData.nodes) { + dotData.nodes.forEach(function (dotNode) { + var graphNode = { + id: dotNode.id, + label: String(dotNode.label || dotNode.id) + }; + merge(graphNode, dotNode.attr); + if (graphNode.image) { + graphNode.shape = 'image'; + } + graphData.nodes.push(graphNode); + }); } - }; - + // copy the edges + if (dotData.edges) { + /** + * Convert an edge in DOT format to an edge with VisGraph format + * @param {Object} dotEdge + * @returns {Object} graphEdge + */ + var convertEdge = function (dotEdge) { + var graphEdge = { + from: dotEdge.from, + to: dotEdge.to + }; + merge(graphEdge, dotEdge.attr); + graphEdge.style = (dotEdge.type == '->') ? 'arrow' : 'line'; + return graphEdge; + } - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * @param {number} x1 - * @param {number} y1 - * @param {number} x2 - * @param {number} y2 - * @param {number} x3 - * @param {number} y3 - * @private - */ - Edge.prototype._getDistanceToEdge = function (x1,y1, x2,y2, x3,y3) { // x3,y3 is the point - var returnValue = 0; - if (this.from != this.to) { - if (this.options.smoothCurves.enabled == true) { - var xVia, yVia; - if (this.options.smoothCurves.enabled == true && this.options.smoothCurves.dynamic == true) { - xVia = this.via.x; - yVia = this.via.y; + dotData.edges.forEach(function (dotEdge) { + var from, to; + if (dotEdge.from instanceof Object) { + from = dotEdge.from.nodes; } else { - var via = this._getViaCoordinates(); - xVia = via.x; - yVia = via.y; + from = { + id: dotEdge.from + } } - var minDistance = 1e9; - var distance; - var i,t,x,y, lastX, lastY; - for (i = 0; i < 10; i++) { - t = 0.1*i; - x = Math.pow(1-t,2)*x1 + (2*t*(1 - t))*xVia + Math.pow(t,2)*x2; - y = Math.pow(1-t,2)*y1 + (2*t*(1 - t))*yVia + Math.pow(t,2)*y2; - if (i > 0) { - distance = this._getDistanceToLine(lastX,lastY,x,y, x3,y3); - minDistance = distance < minDistance ? distance : minDistance; + + if (dotEdge.to instanceof Object) { + to = dotEdge.to.nodes; + } + else { + to = { + id: dotEdge.to } - lastX = x; lastY = y; } - returnValue = minDistance; - } - else { - returnValue = this._getDistanceToLine(x1,y1,x2,y2,x3,y3); - } + + if (dotEdge.from instanceof Object && dotEdge.from.edges) { + dotEdge.from.edges.forEach(function (subEdge) { + var graphEdge = convertEdge(subEdge); + graphData.edges.push(graphEdge); + }); + } + + forEach2(from, to, function (from, to) { + var subEdge = createEdge(graphData, from.id, to.id, dotEdge.type, dotEdge.attr); + var graphEdge = convertEdge(subEdge); + graphData.edges.push(graphEdge); + }); + + if (dotEdge.to instanceof Object && dotEdge.to.edges) { + dotEdge.to.edges.forEach(function (subEdge) { + var graphEdge = convertEdge(subEdge); + graphData.edges.push(graphEdge); + }); + } + }); } - else { - var x, y, dx, dy; - var radius = 0.25 * this.physics.springLength; - var node = this.from; - if (node.width > node.height) { - x = node.x + 0.5 * node.width; - y = node.y - radius; - } - else { - x = node.x + radius; - y = node.y - 0.5 * node.height; + + // copy the options + if (dotData.attr) { + graphData.options = dotData.attr; + } + + return graphData; + } + + // exports + exports.parseDOT = parseDOT; + exports.DOTToGraph = DOTToGraph; + + +/***/ }, +/* 53 */ +/***/ function(module, exports, __webpack_require__) { + + + function parseGephi(gephiJSON, options) { + var edges = []; + var nodes = []; + this.options = { + edges: { + inheritColor: true + }, + nodes: { + allowedToMove: false, + parseColor: false } - dx = x - x3; - dy = y - y3; - returnValue = Math.abs(Math.sqrt(dx*dx + dy*dy) - radius); - } + }; - if (this.labelDimensions.left < x3 && - this.labelDimensions.left + this.labelDimensions.width > x3 && - this.labelDimensions.top < y3 && - this.labelDimensions.top + this.labelDimensions.height > y3) { - return 0; - } - else { - return returnValue; + if (options !== undefined) { + this.options.nodes['allowedToMove'] = options.allowedToMove | false; + this.options.nodes['parseColor'] = options.parseColor | false; + this.options.edges['inheritColor'] = options.inheritColor | true; } - }; - - Edge.prototype._getDistanceToLine = function(x1,y1,x2,y2,x3,y3) { - var px = x2-x1, - py = y2-y1, - something = px*px + py*py, - u = ((x3 - x1) * px + (y3 - y1) * py) / something; - if (u > 1) { - u = 1; + var gEdges = gephiJSON.edges; + var gNodes = gephiJSON.nodes; + for (var i = 0; i < gEdges.length; i++) { + var edge = {}; + var gEdge = gEdges[i]; + edge['id'] = gEdge.id; + edge['from'] = gEdge.source; + edge['to'] = gEdge.target; + edge['attributes'] = gEdge.attributes; + // edge['value'] = gEdge.attributes !== undefined ? gEdge.attributes.Weight : undefined; + // edge['width'] = edge['value'] !== undefined ? undefined : edgegEdge.size; + edge['color'] = gEdge.color; + edge['inheritColor'] = edge['color'] !== undefined ? false : this.options.inheritColor; + edges.push(edge); } - else if (u < 0) { - u = 0; + + for (var i = 0; i < gNodes.length; i++) { + var node = {}; + var gNode = gNodes[i]; + node['id'] = gNode.id; + node['attributes'] = gNode.attributes; + node['x'] = gNode.x; + node['y'] = gNode.y; + node['label'] = gNode.label; + if (this.options.nodes.parseColor == true) { + node['color'] = gNode.color; + } + else { + node['color'] = gNode.color !== undefined ? {background:gNode.color, border:gNode.color} : undefined; + } + node['radius'] = gNode.size; + node['allowedToMoveX'] = this.options.nodes.allowedToMove; + node['allowedToMoveY'] = this.options.nodes.allowedToMove; + nodes.push(node); } - var x = x1 + u * px, - y = y1 + u * py, - dx = x - x3, - dy = y - y3; + return {nodes:nodes, edges:edges}; + } - //# Note: If the actual distance does not matter, - //# if you only want to compare what this function - //# returns to other results of this function, you - //# can just return the squared distance instead - //# (i.e. remove the sqrt) to gain a little performance + exports.parseGephi = parseGephi; - return Math.sqrt(dx*dx + dy*dy); - }; +/***/ }, +/* 54 */ +/***/ function(module, exports, __webpack_require__) { + + var util = __webpack_require__(1); /** - * This allows the zoom level of the network to influence the rendering - * - * @param scale + * @class Groups + * This class can store groups and properties specific for groups. */ - Edge.prototype.setScale = function(scale) { - this.networkScaleInv = 1.0/scale; - }; - + function Groups() { + this.clear(); + this.defaultIndex = 0; + } - Edge.prototype.select = function() { - this.selected = true; - }; - Edge.prototype.unselect = function() { - this.selected = false; - }; + /** + * default constants for group colors + */ + Groups.DEFAULT = [ + {border: "#2B7CE9", background: "#97C2FC", highlight: {border: "#2B7CE9", background: "#D2E5FF"}, hover: {border: "#2B7CE9", background: "#D2E5FF"}}, // blue + {border: "#FFA500", background: "#FFFF00", highlight: {border: "#FFA500", background: "#FFFFA3"}, hover: {border: "#FFA500", background: "#FFFFA3"}}, // yellow + {border: "#FA0A10", background: "#FB7E81", highlight: {border: "#FA0A10", background: "#FFAFB1"}, hover: {border: "#FA0A10", background: "#FFAFB1"}}, // red + {border: "#41A906", background: "#7BE141", highlight: {border: "#41A906", background: "#A1EC76"}, hover: {border: "#41A906", background: "#A1EC76"}}, // green + {border: "#E129F0", background: "#EB7DF4", highlight: {border: "#E129F0", background: "#F0B3F5"}, hover: {border: "#E129F0", background: "#F0B3F5"}}, // magenta + {border: "#7C29F0", background: "#AD85E4", highlight: {border: "#7C29F0", background: "#D3BDF0"}, hover: {border: "#7C29F0", background: "#D3BDF0"}}, // purple + {border: "#C37F00", background: "#FFA807", highlight: {border: "#C37F00", background: "#FFCA66"}, hover: {border: "#C37F00", background: "#FFCA66"}}, // orange + {border: "#4220FB", background: "#6E6EFD", highlight: {border: "#4220FB", background: "#9B9BFD"}, hover: {border: "#4220FB", background: "#9B9BFD"}}, // darkblue + {border: "#FD5A77", background: "#FFC0CB", highlight: {border: "#FD5A77", background: "#FFD1D9"}, hover: {border: "#FD5A77", background: "#FFD1D9"}}, // pink + {border: "#4AD63A", background: "#C2FABC", highlight: {border: "#4AD63A", background: "#E6FFE3"}, hover: {border: "#4AD63A", background: "#E6FFE3"}} // mint + ]; - Edge.prototype.positionBezierNode = function() { - if (this.via !== null && this.from !== null && this.to !== null) { - this.via.x = 0.5 * (this.from.x + this.to.x); - this.via.y = 0.5 * (this.from.y + this.to.y); - } - else { - this.via.x = 0; - this.via.y = 0; - } - }; /** - * This function draws the control nodes for the manipulator. - * In order to enable this, only set the this.controlNodesEnabled to true. - * @param ctx + * Clear all groups */ - Edge.prototype._drawControlNodes = function(ctx) { - if (this.controlNodesEnabled == true) { - if (this.controlNodes.from === null && this.controlNodes.to === null) { - var nodeIdFrom = "edgeIdFrom:".concat(this.id); - var nodeIdTo = "edgeIdTo:".concat(this.id); - var constants = { - nodes:{group:'', radius:8}, - physics:{damping:0}, - clustering: {maxNodeSizeIncrements: 0 ,nodeScaling: {width:0, height: 0, radius:0}} - }; - this.controlNodes.from = new Node( - {id:nodeIdFrom, - shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} - },{},{},constants); - this.controlNodes.to = new Node( - {id:nodeIdTo, - shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} - },{},{},constants); - } - - if (this.controlNodes.from.selected == false && this.controlNodes.to.selected == false) { - this.controlNodes.positions = this.getControlNodePositions(ctx); - this.controlNodes.from.x = this.controlNodes.positions.from.x; - this.controlNodes.from.y = this.controlNodes.positions.from.y; - this.controlNodes.to.x = this.controlNodes.positions.to.x; - this.controlNodes.to.y = this.controlNodes.positions.to.y; + Groups.prototype.clear = function () { + this.groups = {}; + this.groups.length = function() + { + var i = 0; + for ( var p in this ) { + if (this.hasOwnProperty(p)) { + i++; + } } - - this.controlNodes.from.draw(ctx); - this.controlNodes.to.draw(ctx); - } - else { - this.controlNodes = {from:null, to:null, positions:{}}; + return i; } }; - /** - * Enable control nodes. - * @private - */ - Edge.prototype._enableControlNodes = function() { - this.fromBackup = this.from; - this.toBackup = this.to; - this.controlNodesEnabled = true; - }; /** - * disable control nodes and remove from dynamicEdges from old node - * @private + * get group properties of a groupname. If groupname is not found, a new group + * is added. + * @param {*} groupname Can be a number, string, Date, etc. + * @return {Object} group The created group, containing all group properties */ - Edge.prototype._disableControlNodes = function() { - this.fromId = this.from.id; - this.toId = this.to.id; - if (this.fromId != this.fromBackup.id) { // from was changed, remove edge from old 'from' node dynamic edges - this.fromBackup.detachEdge(this); - } - else if (this.toId != this.toBackup.id) { // to was changed, remove edge from old 'to' node dynamic edges - this.toBackup.detachEdge(this); + Groups.prototype.get = function (groupname) { + var group = this.groups[groupname]; + if (group == undefined) { + // create new group + var index = this.defaultIndex % Groups.DEFAULT.length; + this.defaultIndex++; + group = {}; + group.color = Groups.DEFAULT[index]; + this.groups[groupname] = group; } - this.fromBackup = null; - this.toBackup = null; - this.controlNodesEnabled = false; + return group; }; - /** - * This checks if one of the control nodes is selected and if so, returns the control node object. Else it returns null. - * @param x - * @param y - * @returns {null} - * @private + * Add a custom group style + * @param {String} groupname + * @param {Object} style An object containing borderColor, + * backgroundColor, etc. + * @return {Object} group The created group object */ - Edge.prototype._getSelectedControlNode = function(x,y) { - var positions = this.controlNodes.positions; - var fromDistance = Math.sqrt(Math.pow(x - positions.from.x,2) + Math.pow(y - positions.from.y,2)); - var toDistance = Math.sqrt(Math.pow(x - positions.to.x ,2) + Math.pow(y - positions.to.y ,2)); - - if (fromDistance < 15) { - this.connectedNode = this.from; - this.from = this.controlNodes.from; - return this.controlNodes.from; - } - else if (toDistance < 15) { - this.connectedNode = this.to; - this.to = this.controlNodes.to; - return this.controlNodes.to; - } - else { - return null; - } + Groups.prototype.add = function (groupname, style) { + this.groups[groupname] = style; + return style; }; + module.exports = Groups; + + +/***/ }, +/* 55 */ +/***/ function(module, exports, __webpack_require__) { + + /** + * @class Images + * This class loads images and keeps them stored. + */ + function Images() { + this.images = {}; + this.callback = undefined; + } /** - * this resets the control nodes to their original position. - * @private + * Set an onload callback function. This will be called each time an image + * is loaded + * @param {function} callback */ - Edge.prototype._restoreControlNodes = function() { - if (this.controlNodes.from.selected == true) { - this.from = this.connectedNode; - this.connectedNode = null; - this.controlNodes.from.unselect(); - } - else if (this.controlNodes.to.selected == true) { - this.to = this.connectedNode; - this.connectedNode = null; - this.controlNodes.to.unselect(); - } + Images.prototype.setOnloadCallback = function(callback) { + this.callback = callback; }; /** - * this calculates the position of the control nodes on the edges of the parent nodes. * - * @param ctx - * @returns {{from: {x: number, y: number}, to: {x: *, y: *}}} + * @param {string} url Url of the image + * @param {string} url Url of an image to use if the url image is not found + * @return {Image} img The image object */ - Edge.prototype.getControlNodePositions = function(ctx) { - var angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); - var dx = (this.to.x - this.from.x); - var dy = (this.to.y - this.from.y); - var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); - var fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); - var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; - var xFrom = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; - var yFrom = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; + Images.prototype.load = function(url, brokenUrl) { + if (this.images[url] == undefined) { + // create the image + var me = this; + var img = new Image(); + img.onload = function () { - var via; - if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true) { - via = this.via; - } - else if (this.options.smoothCurves.enabled == true) { - via = this._getViaCoordinates(); - } + // IE11 fix -- thanks dponch! + if (this.width == 0) { + document.body.appendChild(this); + this.width = this.offsetWidth; + this.height = this.offsetHeight; + document.body.removeChild(this); + } - if (this.options.smoothCurves.enabled == true && via.x != null) { - angle = Math.atan2((this.to.y - via.y), (this.to.x - via.x)); - dx = (this.to.x - via.x); - dy = (this.to.y - via.y); - edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); - } - var toBorderDist = this.to.distanceToBorder(ctx, angle); - var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + if (me.callback) { + me.images[url] = img; + me.callback(this); + } + }; - var xTo,yTo; - if (this.options.smoothCurves.enabled == true && via.x != null) { - xTo = (1 - toBorderPoint) * via.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * via.y + toBorderPoint * this.to.y; - } - else { - xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; + img.onerror = function () { + if (brokenUrl === undefined) { + console.error("Could not load image:", url); + delete this.src; + if (me.callback) { + me.callback(this); + } + } + else { + this.src = brokenUrl; + } + }; + + img.src = url; } - return {from:{x:xFrom,y:yFrom},to:{x:xTo,y:yTo}}; + return img; }; - module.exports = Edge; + module.exports = Images; + /***/ }, -/* 53 */ +/* 56 */ /***/ function(module, exports, __webpack_require__) { var util = __webpack_require__(1); @@ -26404,8 +26366,6 @@ return /******/ (function(modules) { // webpackBootstrap // set defaults for the properties this.id = undefined; - this.x = null; - this.y = null; this.allowedToMoveX = false; this.allowedToMoveY = false; this.xFixed = false; @@ -26428,6 +26388,12 @@ return /******/ (function(modules) { // webpackBootstrap this.fy = 0.0; // external force y this.vx = 0.0; // velocity x this.vy = 0.0; // velocity y + this.x = null; + this.y = null; + + // used for reverting to previous position on stabilization + this.previousState = {vx:0,vy:0,x:0,y:0}; + this.damping = networkConstants.physics.damping; // written every time gravity is calculated this.fixedData = {x:null,y:null}; @@ -26451,6 +26417,18 @@ return /******/ (function(modules) { // webpackBootstrap this.parentEdgeId = null; } + + /** + * Revert the position and velocity of the previous step. + */ + Node.prototype.revertPosition = function() { + this.x = this.previousState.x; + this.y = this.previousState.y; + this.vx = this.previousState.vx; + this.vy = this.previousState.vy; + } + + /** * (re)setting the clustering variables and objects */ @@ -26541,8 +26519,7 @@ return /******/ (function(modules) { // webpackBootstrap // individual shape properties if (properties.radius !== undefined) {this.baseRadiusValue = this.options.radius;} if (properties.color !== undefined) {this.options.color = util.parseColor(properties.color);} - - if (this.options.image!== undefined && this.options.image!= "") { + if (this.options.image !== undefined && this.options.image!= "") { if (this.imagelist) { this.imageObj = this.imagelist.load(this.options.image, this.options.brokenImage); } @@ -26570,7 +26547,7 @@ return /******/ (function(modules) { // webpackBootstrap this.radiusFixed = this.radiusFixed || (properties.radius !== undefined); - if (this.options.shape == 'image') { + if (this.options.shape === 'image' || this.options.shape === 'circularImage') { this.options.radiusMin = constants.nodes.widthMin; this.options.radiusMax = constants.nodes.widthMax; } @@ -26583,6 +26560,7 @@ return /******/ (function(modules) { // webpackBootstrap case 'ellipse': this.draw = this._drawEllipse; this.resize = this._resizeEllipse; break; // TODO: add diamond shape case 'image': this.draw = this._drawImage; this.resize = this._resizeImage; break; + case 'circularImage': this.draw = this._drawCircularImage; this.resize = this._resizeCircularImage; break; case 'text': this.draw = this._drawText; this.resize = this._resizeText; break; case 'dot': this.draw = this._drawDot; this.resize = this._resizeShape; break; case 'square': this.draw = this._drawSquare; this.resize = this._resizeShape; break; @@ -26706,11 +26684,22 @@ return /******/ (function(modules) { // webpackBootstrap this.fy += fy; }; + /** + * Store the state before the next step + */ + Node.prototype.storeState = function() { + this.previousState.x = this.x; + this.previousState.y = this.y; + this.previousState.vx = this.vx; + this.previousState.vy = this.vy; + } + /** * Perform one discrete step for the node * @param {number} interval Time interval in seconds */ Node.prototype.discreteStep = function(interval) { + this.storeState(); if (!this.xFixed) { var dx = this.damping * this.vx; // damping force var ax = (this.fx - dx) / this.options.mass; // acceleration @@ -26742,6 +26731,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {number} maxVelocity The speed limit imposed on the velocity */ Node.prototype.discreteStepLimited = function(interval, maxVelocity) { + this.storeState(); if (!this.xFixed) { var dx = this.damping * this.vx; // damping force var ax = (this.fx - dx) / this.options.mass; // acceleration @@ -26899,12 +26889,7 @@ return /******/ (function(modules) { // webpackBootstrap }; - Node.prototype._drawImage = function (ctx) { - this._resizeImage(ctx); - this.left = this.x - this.width / 2; - this.top = this.y - this.height / 2; - - var yLabel; + Node.prototype._drawImageAtPosition = function (ctx) { if (this.imageObj.width != 0 ) { // draw the shade if (this.clusterSize > 1) { @@ -26919,6 +26904,13 @@ return /******/ (function(modules) { // webpackBootstrap // draw the image ctx.globalAlpha = 1.0; ctx.drawImage(this.imageObj, this.left, this.top, this.width, this.height); + } + }; + + Node.prototype._drawImageLabel = function (ctx) { + var yLabel; + if (this.imageObj.width != 0 ) { + yLabel = this.y + this.height / 2; } else { @@ -26926,18 +26918,63 @@ return /******/ (function(modules) { // webpackBootstrap yLabel = this.y; } + this._label(ctx, this.label, this.x, yLabel, undefined, "top"); + }; + + Node.prototype._drawImage = function (ctx) { + this._resizeImage(ctx); + this.left = this.x - this.width / 2; + this.top = this.y - this.height / 2; + + this._drawImageAtPosition(ctx); this.boundingBox.top = this.top; this.boundingBox.left = this.left; this.boundingBox.right = this.left + this.width; this.boundingBox.bottom = this.top + this.height; - this._label(ctx, this.label, this.x, yLabel, undefined, "top"); + this._drawImageLabel(ctx); this.boundingBox.left = Math.min(this.boundingBox.left, this.labelDimensions.left); this.boundingBox.right = Math.max(this.boundingBox.right, this.labelDimensions.left + this.labelDimensions.width); this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelDimensions.height); }; + Node.prototype._resizeCircularImage = function (ctx) { + this._resizeImage(ctx); + }; + + Node.prototype._drawCircularImage = function (ctx) { + this._resizeCircularImage(ctx); + + this.left = this.x - this.width / 2; + this.top = this.y - this.height / 2; + + var centerX = this.left + (this.width / 2); + var centerY = this.top + (this.height / 2); + var radius = Math.abs(this.height / 2); + + this._drawRawCircle(ctx, centerX, centerY, radius); + + ctx.save(); + ctx.circle(this.x, this.y, radius); + ctx.stroke(); + ctx.clip(); + + this._drawImageAtPosition(ctx); + + ctx.restore(); + + this.boundingBox.top = this.y - this.options.radius; + this.boundingBox.left = this.x - this.options.radius; + this.boundingBox.right = this.x + this.options.radius; + this.boundingBox.bottom = this.y + this.options.radius; + + this._drawImageLabel(ctx); + + this.boundingBox.left = Math.min(this.boundingBox.left, this.labelDimensions.left); + this.boundingBox.right = Math.max(this.boundingBox.right, this.labelDimensions.left + this.labelDimensions.width); + this.boundingBox.bottom = Math.max(this.boundingBox.bottom, this.boundingBox.bottom + this.labelDimensions.height); + }; Node.prototype._resizeBox = function (ctx) { if (!this.width) { @@ -27066,15 +27103,11 @@ return /******/ (function(modules) { // webpackBootstrap } }; - Node.prototype._drawCircle = function (ctx) { - this._resizeCircle(ctx); - this.left = this.x - this.width / 2; - this.top = this.y - this.height / 2; - + Node.prototype._drawRawCircle = function (ctx, x, y, radius) { var clusterLineWidth = 2.5; var borderWidth = this.options.borderWidth; var selectionLineWidth = this.options.borderWidthSelected || 2 * this.options.borderWidth; - + ctx.strokeStyle = this.selected ? this.options.color.highlight.border : this.hover ? this.options.color.hover.border : this.options.color.border; // draw the outer border @@ -27083,7 +27116,7 @@ return /******/ (function(modules) { // webpackBootstrap ctx.lineWidth *= this.networkScaleInv; ctx.lineWidth = Math.min(this.width,ctx.lineWidth); - ctx.circle(this.x, this.y, this.options.radius+2*ctx.lineWidth); + ctx.circle(x, y, radius+2*ctx.lineWidth); ctx.stroke(); } ctx.lineWidth = (this.selected ? selectionLineWidth : borderWidth) + ((this.clusterSize > 1) ? clusterLineWidth : 0.0); @@ -27091,9 +27124,17 @@ return /******/ (function(modules) { // webpackBootstrap ctx.lineWidth = Math.min(this.width,ctx.lineWidth); ctx.fillStyle = this.selected ? this.options.color.highlight.background : this.hover ? this.options.color.hover.background : this.options.color.background; - ctx.circle(this.x, this.y, this.options.radius); + ctx.circle(this.x, this.y, radius); ctx.fill(); ctx.stroke(); + }; + + Node.prototype._drawCircle = function (ctx) { + this._resizeCircle(ctx); + this.left = this.x - this.width / 2; + this.top = this.y - this.height / 2; + + this._drawRawCircle(ctx, this.x, this.y, this.options.radius); this.boundingBox.top = this.y - this.options.radius; this.boundingBox.left = this.x - this.options.radius; @@ -27419,1208 +27460,1369 @@ return /******/ (function(modules) { // webpackBootstrap this.vy = Math.sqrt(energyBefore/this.options.mass); }; - module.exports = Node; - - -/***/ }, -/* 54 */ -/***/ function(module, exports, __webpack_require__) { - - var util = __webpack_require__(1); - - /** - * @class Groups - * This class can store groups and properties specific for groups. - */ - function Groups() { - this.clear(); - this.defaultIndex = 0; - } - - - /** - * default constants for group colors - */ - Groups.DEFAULT = [ - {border: "#2B7CE9", background: "#97C2FC", highlight: {border: "#2B7CE9", background: "#D2E5FF"}, hover: {border: "#2B7CE9", background: "#D2E5FF"}}, // blue - {border: "#FFA500", background: "#FFFF00", highlight: {border: "#FFA500", background: "#FFFFA3"}, hover: {border: "#FFA500", background: "#FFFFA3"}}, // yellow - {border: "#FA0A10", background: "#FB7E81", highlight: {border: "#FA0A10", background: "#FFAFB1"}, hover: {border: "#FA0A10", background: "#FFAFB1"}}, // red - {border: "#41A906", background: "#7BE141", highlight: {border: "#41A906", background: "#A1EC76"}, hover: {border: "#41A906", background: "#A1EC76"}}, // green - {border: "#E129F0", background: "#EB7DF4", highlight: {border: "#E129F0", background: "#F0B3F5"}, hover: {border: "#E129F0", background: "#F0B3F5"}}, // magenta - {border: "#7C29F0", background: "#AD85E4", highlight: {border: "#7C29F0", background: "#D3BDF0"}, hover: {border: "#7C29F0", background: "#D3BDF0"}}, // purple - {border: "#C37F00", background: "#FFA807", highlight: {border: "#C37F00", background: "#FFCA66"}, hover: {border: "#C37F00", background: "#FFCA66"}}, // orange - {border: "#4220FB", background: "#6E6EFD", highlight: {border: "#4220FB", background: "#9B9BFD"}, hover: {border: "#4220FB", background: "#9B9BFD"}}, // darkblue - {border: "#FD5A77", background: "#FFC0CB", highlight: {border: "#FD5A77", background: "#FFD1D9"}, hover: {border: "#FD5A77", background: "#FFD1D9"}}, // pink - {border: "#4AD63A", background: "#C2FABC", highlight: {border: "#4AD63A", background: "#E6FFE3"}, hover: {border: "#4AD63A", background: "#E6FFE3"}} // mint - ]; - - - /** - * Clear all groups - */ - Groups.prototype.clear = function () { - this.groups = {}; - this.groups.length = function() - { - var i = 0; - for ( var p in this ) { - if (this.hasOwnProperty(p)) { - i++; - } - } - return i; - } - }; - - - /** - * get group properties of a groupname. If groupname is not found, a new group - * is added. - * @param {*} groupname Can be a number, string, Date, etc. - * @return {Object} group The created group, containing all group properties - */ - Groups.prototype.get = function (groupname) { - var group = this.groups[groupname]; - if (group == undefined) { - // create new group - var index = this.defaultIndex % Groups.DEFAULT.length; - this.defaultIndex++; - group = {}; - group.color = Groups.DEFAULT[index]; - this.groups[groupname] = group; - } - - return group; - }; - - /** - * Add a custom group style - * @param {String} groupname - * @param {Object} style An object containing borderColor, - * backgroundColor, etc. - * @return {Object} group The created group object - */ - Groups.prototype.add = function (groupname, style) { - this.groups[groupname] = style; - return style; - }; - - module.exports = Groups; + module.exports = Node; /***/ }, -/* 55 */ +/* 57 */ /***/ function(module, exports, __webpack_require__) { - /** - * @class Images - * This class loads images and keeps them stored. - */ - function Images() { - this.images = {}; - this.callback = undefined; - } - - /** - * Set an onload callback function. This will be called each time an image - * is loaded - * @param {function} callback - */ - Images.prototype.setOnloadCallback = function(callback) { - this.callback = callback; - }; + var util = __webpack_require__(1); + var Node = __webpack_require__(56); /** + * @class Edge * - * @param {string} url Url of the image - * @param {string} url Url of an image to use if the url image is not found - * @return {Image} img The image object + * A edge connects two nodes + * @param {Object} properties Object with properties. Must contain + * At least properties from and to. + * Available properties: from (number), + * to (number), label (string, color (string), + * width (number), style (string), + * length (number), title (string) + * @param {Network} network A Network object, used to find and edge to + * nodes. + * @param {Object} constants An object with default values for + * example for the color */ - Images.prototype.load = function(url, brokenUrl) { - if (this.images[url] == undefined) { - // create the image - var me = this; - var img = new Image(); - img.onload = function () { - - // IE11 fix -- thanks dponch! - if (this.width == 0) { - document.body.appendChild(this); - this.width = this.offsetWidth; - this.height = this.offsetHeight; - document.body.removeChild(this); - } - - if (me.callback) { - me.images[url] = img; - me.callback(this); - } - }; - - img.onerror = function () { - if (brokenUrl === undefined) { - console.error("Could not load image:", url); - delete this.src; - if (me.callback) { - me.callback(this); - } - } - else { - this.src = brokenUrl; - } - }; - - img.src = url; + function Edge (properties, network, networkConstants) { + if (!network) { + throw "No network provided"; } + var fields = ['edges','physics']; + var constants = util.selectiveBridgeObject(fields,networkConstants); + this.options = constants.edges; + this.physics = constants.physics; + this.options['smoothCurves'] = networkConstants['smoothCurves']; - return img; - }; - module.exports = Images; + this.network = network; + // initialize variables + this.id = undefined; + this.fromId = undefined; + this.toId = undefined; + this.title = undefined; + this.widthSelected = this.options.width * this.options.widthSelectionMultiplier; + this.value = undefined; + this.selected = false; + this.hover = false; + this.labelDimensions = {top:0,left:0,width:0,height:0,yLine:0}; // could be cached + this.dirtyLabel = true; -/***/ }, -/* 56 */ -/***/ function(module, exports, __webpack_require__) { + this.from = null; // a node + this.to = null; // a node + this.via = null; // a temp node - /** - * Popup is a class to create a popup window with some text - * @param {Element} container The container object. - * @param {Number} [x] - * @param {Number} [y] - * @param {String} [text] - * @param {Object} [style] An object containing borderColor, - * backgroundColor, etc. - */ - function Popup(container, x, y, text, style) { - if (container) { - this.container = container; - } - else { - this.container = document.body; - } + this.fromBackup = null; // used to clean up after reconnect + this.toBackup = null;; // used to clean up after reconnect - // x, y and text are optional, see if a style object was passed in their place - if (style === undefined) { - if (typeof x === "object") { - style = x; - x = undefined; - } else if (typeof text === "object") { - style = text; - text = undefined; - } else { - // for backwards compatibility, in case clients other than Network are creating Popup directly - style = { - fontColor: 'black', - fontSize: 14, // px - fontFace: 'verdana', - color: { - border: '#666', - background: '#FFFFC6' - } - } - } - } + // we use this to be able to reconnect the edge to a cluster if its node is put into a cluster + // by storing the original information we can revert to the original connection when the cluser is opened. + this.originalFromId = []; + this.originalToId = []; - this.x = 0; - this.y = 0; - this.padding = 5; + this.connected = false; - if (x !== undefined && y !== undefined ) { - this.setPosition(x, y); - } - if (text !== undefined) { - this.setText(text); - } + this.widthFixed = false; + this.lengthFixed = false; - // create the frame - this.frame = document.createElement("div"); - var styleAttr = this.frame.style; - styleAttr.position = "absolute"; - styleAttr.visibility = "hidden"; - styleAttr.border = "1px solid " + style.color.border; - styleAttr.color = style.fontColor; - styleAttr.fontSize = style.fontSize + "px"; - styleAttr.fontFamily = style.fontFace; - styleAttr.padding = this.padding + "px"; - styleAttr.backgroundColor = style.color.background; - styleAttr.borderRadius = "3px"; - styleAttr.MozBorderRadius = "3px"; - styleAttr.WebkitBorderRadius = "3px"; - styleAttr.boxShadow = "3px 3px 10px rgba(128, 128, 128, 0.5)"; - styleAttr.whiteSpace = "nowrap"; - this.container.appendChild(this.frame); - } + this.setProperties(properties); - /** - * @param {number} x Horizontal position of the popup window - * @param {number} y Vertical position of the popup window - */ - Popup.prototype.setPosition = function(x, y) { - this.x = parseInt(x); - this.y = parseInt(y); - }; + this.controlNodesEnabled = false; + this.controlNodes = {from:null, to:null, positions:{}}; + this.connectedNode = null; + } /** - * Set the content for the popup window. This can be HTML code or text. - * @param {string | Element} content + * Set or overwrite properties for the edge + * @param {Object} properties an object with properties + * @param {Object} constants and object with default, global properties */ - Popup.prototype.setText = function(content) { - if (content instanceof Element) { - this.frame.innerHTML = ''; - this.frame.appendChild(content); - } - else { - this.frame.innerHTML = content; // string containing text or HTML + Edge.prototype.setProperties = function(properties) { + if (!properties) { + return; } - }; - /** - * Show the popup window - * @param {boolean} show Optional. Show or hide the window - */ - Popup.prototype.show = function (show) { - if (show === undefined) { - show = true; - } + var fields = ['style','fontSize','fontFace','fontColor','fontFill','width', + 'widthSelectionMultiplier','hoverWidth','arrowScaleFactor','dash','inheritColor' + ]; + util.selectiveDeepExtend(fields, this.options, properties); - if (show) { - var height = this.frame.clientHeight; - var width = this.frame.clientWidth; - var maxHeight = this.frame.parentNode.clientHeight; - var maxWidth = this.frame.parentNode.clientWidth; + if (properties.from !== undefined) {this.fromId = properties.from;} + if (properties.to !== undefined) {this.toId = properties.to;} - var top = (this.y - height); - if (top + height + this.padding > maxHeight) { - top = maxHeight - height - this.padding; - } - if (top < this.padding) { - top = this.padding; - } + if (properties.id !== undefined) {this.id = properties.id;} + if (properties.label !== undefined) {this.label = properties.label; this.dirtyLabel = true;} - var left = this.x; - if (left + width + this.padding > maxWidth) { - left = maxWidth - width - this.padding; + if (properties.title !== undefined) {this.title = properties.title;} + if (properties.value !== undefined) {this.value = properties.value;} + if (properties.length !== undefined) {this.physics.springLength = properties.length;} + + if (properties.color !== undefined) { + this.options.inheritColor = false; + if (util.isString(properties.color)) { + this.options.color.color = properties.color; + this.options.color.highlight = properties.color; } - if (left < this.padding) { - left = this.padding; + else { + if (properties.color.color !== undefined) {this.options.color.color = properties.color.color;} + if (properties.color.highlight !== undefined) {this.options.color.highlight = properties.color.highlight;} + if (properties.color.hover !== undefined) {this.options.color.hover = properties.color.hover;} } + } + + // A node is connected when it has a from and to node. + this.connect(); + + this.widthFixed = this.widthFixed || (properties.width !== undefined); + this.lengthFixed = this.lengthFixed || (properties.length !== undefined); - this.frame.style.left = left + "px"; - this.frame.style.top = top + "px"; - this.frame.style.visibility = "visible"; - } - else { - this.hide(); + this.widthSelected = this.options.width* this.options.widthSelectionMultiplier; + + // set draw method based on style + switch (this.options.style) { + case 'line': this.draw = this._drawLine; break; + case 'arrow': this.draw = this._drawArrow; break; + case 'arrow-center': this.draw = this._drawArrowCenter; break; + case 'dash-line': this.draw = this._drawDashLine; break; + default: this.draw = this._drawLine; break; } }; /** - * Hide the popup window + * Connect an edge to its nodes */ - Popup.prototype.hide = function () { - this.frame.style.visibility = "hidden"; - }; - - module.exports = Popup; + Edge.prototype.connect = function () { + this.disconnect(); + this.from = this.network.nodes[this.fromId] || null; + this.to = this.network.nodes[this.toId] || null; + this.connected = (this.from && this.to); -/***/ }, -/* 57 */ -/***/ function(module, exports, __webpack_require__) { + if (this.connected) { + this.from.attachEdge(this); + this.to.attachEdge(this); + } + else { + if (this.from) { + this.from.detachEdge(this); + } + if (this.to) { + this.to.detachEdge(this); + } + } + }; /** - * Parse a text source containing data in DOT language into a JSON object. - * The object contains two lists: one with nodes and one with edges. - * - * DOT language reference: http://www.graphviz.org/doc/info/lang.html - * - * @param {String} data Text containing a graph in DOT-notation - * @return {Object} graph An object containing two parameters: - * {Object[]} nodes - * {Object[]} edges + * Disconnect an edge from its nodes */ - function parseDOT (data) { - dot = data; - return parseGraph(); - } + Edge.prototype.disconnect = function () { + if (this.from) { + this.from.detachEdge(this); + this.from = null; + } + if (this.to) { + this.to.detachEdge(this); + this.to = null; + } - // token types enumeration - var TOKENTYPE = { - NULL : 0, - DELIMITER : 1, - IDENTIFIER: 2, - UNKNOWN : 3 + this.connected = false; }; - // map with all delimiters - var DELIMITERS = { - '{': true, - '}': true, - '[': true, - ']': true, - ';': true, - '=': true, - ',': true, - - '->': true, - '--': true + /** + * get the title of this edge. + * @return {string} title The title of the edge, or undefined when no title + * has been set. + */ + Edge.prototype.getTitle = function() { + return typeof this.title === "function" ? this.title() : this.title; }; - var dot = ''; // current dot file - var index = 0; // current index in dot file - var c = ''; // current token character in expr - var token = ''; // current token - var tokenType = TOKENTYPE.NULL; // type of the token /** - * Get the first character from the dot file. - * The character is stored into the char c. If the end of the dot file is - * reached, the function puts an empty string in c. + * Retrieve the value of the edge. Can be undefined + * @return {Number} value */ - function first() { - index = 0; - c = dot.charAt(0); - } + Edge.prototype.getValue = function() { + return this.value; + }; /** - * Get the next character from the dot file. - * The character is stored into the char c. If the end of the dot file is - * reached, the function puts an empty string in c. + * Adjust the value range of the edge. The edge will adjust it's width + * based on its value. + * @param {Number} min + * @param {Number} max */ - function next() { - index++; - c = dot.charAt(index); - } + Edge.prototype.setValueRange = function(min, max) { + if (!this.widthFixed && this.value !== undefined) { + var scale = (this.options.widthMax - this.options.widthMin) / (max - min); + this.options.width= (this.value - min) * scale + this.options.widthMin; + this.widthSelected = this.options.width* this.options.widthSelectionMultiplier; + } + }; /** - * Preview the next character from the dot file. - * @return {String} cNext + * Redraw a edge + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx */ - function nextPreview() { - return dot.charAt(index + 1); - } + Edge.prototype.draw = function(ctx) { + throw "Method draw not initialized in edge"; + }; /** - * Test whether given character is alphabetic or numeric - * @param {String} c - * @return {Boolean} isAlphaNumeric + * Check if this object is overlapping with the provided object + * @param {Object} obj an object with parameters left, top + * @return {boolean} True if location is located on the edge */ - var regexAlphaNumeric = /[a-zA-Z_0-9.:#]/; - function isAlphaNumeric(c) { - return regexAlphaNumeric.test(c); - } + Edge.prototype.isOverlappingWith = function(obj) { + if (this.connected) { + var distMax = 10; + var xFrom = this.from.x; + var yFrom = this.from.y; + var xTo = this.to.x; + var yTo = this.to.y; + var xObj = obj.left; + var yObj = obj.top; - /** - * Merge all properties of object b into object b - * @param {Object} a - * @param {Object} b - * @return {Object} a - */ - function merge (a, b) { - if (!a) { - a = {}; + var dist = this._getDistanceToEdge(xFrom, yFrom, xTo, yTo, xObj, yObj); + + return (dist < distMax); + } + else { + return false } + }; - if (b) { - for (var name in b) { - if (b.hasOwnProperty(name)) { - a[name] = b[name]; - } - } + Edge.prototype._getColor = function() { + var colorObj = this.options.color; + if (this.options.inheritColor == "to") { + colorObj = { + highlight: this.to.options.color.highlight.border, + hover: this.to.options.color.hover.border, + color: this.to.options.color.border + }; } - return a; - } + else if (this.options.inheritColor == "from" || this.options.inheritColor == true) { + colorObj = { + highlight: this.from.options.color.highlight.border, + hover: this.from.options.color.hover.border, + color: this.from.options.color.border + }; + } + + if (this.selected == true) {return colorObj.highlight;} + else if (this.hover == true) {return colorObj.hover;} + else {return colorObj.color;} + }; + /** - * Set a value in an object, where the provided parameter name can be a - * path with nested parameters. For example: - * - * var obj = {a: 2}; - * setValue(obj, 'b.c', 3); // obj = {a: 2, b: {c: 3}} - * - * @param {Object} obj - * @param {String} path A parameter name or dot-separated parameter path, - * like "color.highlight.border". - * @param {*} value + * Redraw a edge as a line + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private */ - function setValue(obj, path, value) { - var keys = path.split('.'); - var o = obj; - while (keys.length) { - var key = keys.shift(); - if (keys.length) { - // this isn't the end point - if (!o[key]) { - o[key] = {}; + Edge.prototype._drawLine = function(ctx) { + // set style + ctx.strokeStyle = this._getColor(); + ctx.lineWidth = this._getLineWidth(); + + if (this.from != this.to) { + // draw line + var via = this._line(ctx); + + // draw label + var point; + if (this.label) { + if (this.options.smoothCurves.enabled == true && via != null) { + var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); + var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); + point = {x:midpointX, y:midpointY}; } - o = o[key]; + else { + point = this._pointOnLine(0.5); + } + this._label(ctx, this.label, point.x, point.y); + } + } + else { + var x, y; + var radius = this.physics.springLength / 4; + var node = this.from; + if (!node.width) { + node.resize(ctx); + } + if (node.width > node.height) { + x = node.x + node.width / 2; + y = node.y - radius; } else { - // this is the end point - o[key] = value; + x = node.x + radius; + y = node.y - node.height / 2; } + this._circle(ctx, x, y, radius); + point = this._pointOnCircle(x, y, radius, 0.5); + this._label(ctx, this.label, point.x, point.y); } - } + }; /** - * Add a node to a graph object. If there is already a node with - * the same id, their attributes will be merged. - * @param {Object} graph - * @param {Object} node + * Get the line width of the edge. Depends on width and whether one of the + * connected nodes is selected. + * @return {Number} width + * @private */ - function addNode(graph, node) { - var i, len; - var current = null; - - // find root graph (in case of subgraph) - var graphs = [graph]; // list with all graphs from current graph to root graph - var root = graph; - while (root.parent) { - graphs.push(root.parent); - root = root.parent; + Edge.prototype._getLineWidth = function() { + if (this.selected == true) { + return Math.max(Math.min(this.widthSelected, this.options.widthMax), 0.3*this.networkScaleInv); + } + else { + if (this.hover == true) { + return Math.max(Math.min(this.options.hoverWidth, this.options.widthMax), 0.3*this.networkScaleInv); + } + else { + return Math.max(this.options.width, 0.3*this.networkScaleInv); + } } + }; - // find existing node (at root level) by its id - if (root.nodes) { - for (i = 0, len = root.nodes.length; i < len; i++) { - if (node.id === root.nodes[i].id) { - current = root.nodes[i]; - break; + Edge.prototype._getViaCoordinates = function () { + var xVia = null; + var yVia = null; + var factor = this.options.smoothCurves.roundness; + var type = this.options.smoothCurves.type; + + var dx = Math.abs(this.from.x - this.to.x); + var dy = Math.abs(this.from.y - this.to.y); + if (type == 'discrete' || type == 'diagonalCross') { + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y - factor * dy; + } + else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y - factor * dy; + } + } + else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dy; + yVia = this.from.y + factor * dy; + } + else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dy; + yVia = this.from.y + factor * dy; + } + } + if (type == "discrete") { + xVia = dx < factor * dy ? this.from.x : xVia; + } + } + else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y - factor * dx; + } + else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y - factor * dx; + } + } + else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + xVia = this.from.x + factor * dx; + yVia = this.from.y + factor * dx; + } + else if (this.from.x > this.to.x) { + xVia = this.from.x - factor * dx; + yVia = this.from.y + factor * dx; + } + } + if (type == "discrete") { + yVia = dy < factor * dx ? this.from.y : yVia; } } } - - if (!current) { - // this is a new node - current = { - id: node.id - }; - if (graph.node) { - // clone default attributes - current.attr = merge(current.attr, graph.node); + else if (type == "straightCross") { + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { // up - down + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1-factor) * dy; + } + else { + yVia = this.to.y + (1-factor) * dy; + } + } + else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { // left - right + if (this.from.x < this.to.x) { + xVia = this.to.x - (1-factor) * dx; + } + else { + xVia = this.to.x + (1-factor) * dx; + } + yVia = this.from.y; } } - - // add node to this (sub)graph and all its parent graphs - for (i = graphs.length - 1; i >= 0; i--) { - var g = graphs[i]; - - if (!g.nodes) { - g.nodes = []; + else if (type == 'horizontal') { + if (this.from.x < this.to.x) { + xVia = this.to.x - (1-factor) * dx; } - if (g.nodes.indexOf(current) == -1) { - g.nodes.push(current); + else { + xVia = this.to.x + (1-factor) * dx; } + yVia = this.from.y; } - - // merge attributes - if (node.attr) { - current.attr = merge(current.attr, node.attr); + else if (type == 'vertical') { + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1-factor) * dy; + } + else { + yVia = this.to.y + (1-factor) * dy; + } } - } + else { // continuous + if (Math.abs(this.from.x - this.to.x) < Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + // console.log(1) + xVia = this.from.x + factor * dy; + yVia = this.from.y - factor * dy; + xVia = this.to.x < xVia ? this.to.x : xVia; + } + else if (this.from.x > this.to.x) { + // console.log(2) + xVia = this.from.x - factor * dy; + yVia = this.from.y - factor * dy; + xVia = this.to.x > xVia ? this.to.x :xVia; + } + } + else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + // console.log(3) + xVia = this.from.x + factor * dy; + yVia = this.from.y + factor * dy; + xVia = this.to.x < xVia ? this.to.x : xVia; + } + else if (this.from.x > this.to.x) { + // console.log(4, this.from.x, this.to.x) + xVia = this.from.x - factor * dy; + yVia = this.from.y + factor * dy; + xVia = this.to.x > xVia ? this.to.x : xVia; + } + } + } + else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { + if (this.from.y > this.to.y) { + if (this.from.x < this.to.x) { + // console.log(5) + xVia = this.from.x + factor * dx; + yVia = this.from.y - factor * dx; + yVia = this.to.y > yVia ? this.to.y : yVia; + } + else if (this.from.x > this.to.x) { + // console.log(6) + xVia = this.from.x - factor * dx; + yVia = this.from.y - factor * dx; + yVia = this.to.y > yVia ? this.to.y : yVia; + } + } + else if (this.from.y < this.to.y) { + if (this.from.x < this.to.x) { + // console.log(7) + xVia = this.from.x + factor * dx; + yVia = this.from.y + factor * dx; + yVia = this.to.y < yVia ? this.to.y : yVia; + } + else if (this.from.x > this.to.x) { + // console.log(8) + xVia = this.from.x - factor * dx; + yVia = this.from.y + factor * dx; + yVia = this.to.y < yVia ? this.to.y : yVia; + } + } + } + } + + + return {x:xVia, y:yVia}; + }; /** - * Add an edge to a graph object - * @param {Object} graph - * @param {Object} edge + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private */ - function addEdge(graph, edge) { - if (!graph.edges) { - graph.edges = []; + Edge.prototype._line = function (ctx) { + // draw a straight line + ctx.beginPath(); + ctx.moveTo(this.from.x, this.from.y); + if (this.options.smoothCurves.enabled == true) { + if (this.options.smoothCurves.dynamic == false) { + var via = this._getViaCoordinates(); + if (via.x == null) { + ctx.lineTo(this.to.x, this.to.y); + ctx.stroke(); + return null; + } + else { + // this.via.x = via.x; + // this.via.y = via.y; + ctx.quadraticCurveTo(via.x,via.y,this.to.x, this.to.y); + ctx.stroke(); + return via; + } + } + else { + ctx.quadraticCurveTo(this.via.x,this.via.y,this.to.x, this.to.y); + ctx.stroke(); + return this.via; + } } - graph.edges.push(edge); - if (graph.edge) { - var attr = merge({}, graph.edge); // clone default attributes - edge.attr = merge(attr, edge.attr); // merge attributes + else { + ctx.lineTo(this.to.x, this.to.y); + ctx.stroke(); + return null; } - } + }; /** - * Create an edge to a graph object - * @param {Object} graph - * @param {String | Number | Object} from - * @param {String | Number | Object} to - * @param {String} type - * @param {Object | null} attr - * @return {Object} edge + * Draw a line from a node to itself, a circle + * @param {CanvasRenderingContext2D} ctx + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @private */ - function createEdge(graph, from, to, type, attr) { - var edge = { - from: from, - to: to, - type: type - }; - - if (graph.edge) { - edge.attr = merge({}, graph.edge); // clone default attributes - } - edge.attr = merge(edge.attr || {}, attr); // merge attributes - - return edge; - } + Edge.prototype._circle = function (ctx, x, y, radius) { + // draw a circle + ctx.beginPath(); + ctx.arc(x, y, radius, 0, 2 * Math.PI, false); + ctx.stroke(); + }; /** - * Get next token in the current dot file. - * The token and token type are available as token and tokenType + * Draw label with white background and with the middle at (x, y) + * @param {CanvasRenderingContext2D} ctx + * @param {String} text + * @param {Number} x + * @param {Number} y + * @private */ - function getToken() { - tokenType = TOKENTYPE.NULL; - token = ''; - - // skip over whitespaces - while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { // space, tab, enter - next(); - } + Edge.prototype._label = function (ctx, text, x, y) { + if (text) { + ctx.font = ((this.from.selected || this.to.selected) ? "bold " : "") + + this.options.fontSize + "px " + this.options.fontFace; + var yLine; - do { - var isComment = false; + if (this.dirtyLabel == true) { + var lines = String(text).split('\n'); + var lineCount = lines.length; + var fontSize = (Number(this.options.fontSize) + 4); + yLine = y + (1 - lineCount) / 2 * fontSize; - // skip comment - if (c == '#') { - // find the previous non-space character - var i = index - 1; - while (dot.charAt(i) == ' ' || dot.charAt(i) == '\t') { - i--; - } - if (dot.charAt(i) == '\n' || dot.charAt(i) == '') { - // the # is at the start of a line, this is indeed a line comment - while (c != '' && c != '\n') { - next(); - } - isComment = true; - } - } - if (c == '/' && nextPreview() == '/') { - // skip line comment - while (c != '' && c != '\n') { - next(); + var width = ctx.measureText(lines[0]).width; + for (var i = 1; i < lineCount; i++) { + var lineWidth = ctx.measureText(lines[i]).width; + width = lineWidth > width ? lineWidth : width; } - isComment = true; + var height = this.options.fontSize * lineCount; + var left = x - width / 2; + var top = y - height / 2; + + // cache + this.labelDimensions = {top:top,left:left,width:width,height:height,yLine:yLine}; } - if (c == '/' && nextPreview() == '*') { - // skip block comment - while (c != '') { - if (c == '*' && nextPreview() == '/') { - // end of block comment found. skip these last two characters - next(); - next(); - break; - } - else { - next(); - } - } - isComment = true; + + + if (this.options.fontFill !== undefined && this.options.fontFill !== null && this.options.fontFill !== "none") { + ctx.fillStyle = this.options.fontFill; + ctx.fillRect(this.labelDimensions.left, + this.labelDimensions.top, + this.labelDimensions.width, + this.labelDimensions.height); } - // skip over whitespaces - while (c == ' ' || c == '\t' || c == '\n' || c == '\r') { // space, tab, enter - next(); + // draw text + ctx.fillStyle = this.options.fontColor || "black"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; + yLine = this.labelDimensions.yLine; + for (var i = 0; i < lineCount; i++) { + ctx.fillText(lines[i], x, yLine); + yLine += fontSize; } } - while (isComment); + }; - // check for end of dot file - if (c == '') { - // token is still empty - tokenType = TOKENTYPE.DELIMITER; - return; - } + /** + * Redraw a edge as a dashed line + * Draw this edge in the given canvas + * @author David Jordan + * @date 2012-08-08 + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private + */ + Edge.prototype._drawDashLine = function(ctx) { + // set style + ctx.strokeStyle = this._getColor(); + ctx.lineWidth = this._getLineWidth(); - // check for delimiters consisting of 2 characters - var c2 = c + nextPreview(); - if (DELIMITERS[c2]) { - tokenType = TOKENTYPE.DELIMITER; - token = c2; - next(); - next(); - return; - } + var via = null; + // only firefox and chrome support this method, else we use the legacy one. + if (ctx.mozDash !== undefined || ctx.setLineDash !== undefined) { + // configure the dash pattern + var pattern = [0]; + if (this.options.dash.length !== undefined && this.options.dash.gap !== undefined) { + pattern = [this.options.dash.length,this.options.dash.gap]; + } + else { + pattern = [5,5]; + } - // check for delimiters consisting of 1 character - if (DELIMITERS[c]) { - tokenType = TOKENTYPE.DELIMITER; - token = c; - next(); - return; - } + // set dash settings for chrome or firefox + if (typeof ctx.setLineDash !== 'undefined') { //Chrome + ctx.setLineDash(pattern); + ctx.lineDashOffset = 0; - // check for an identifier (number or string) - // TODO: more precise parsing of numbers/strings (and the port separator ':') - if (isAlphaNumeric(c) || c == '-') { - token += c; - next(); + } else { //Firefox + ctx.mozDash = pattern; + ctx.mozDashOffset = 0; + } - while (isAlphaNumeric(c)) { - token += c; - next(); + // draw the line + via = this._line(ctx); + + // restore the dash settings. + if (typeof ctx.setLineDash !== 'undefined') { //Chrome + ctx.setLineDash([0]); + ctx.lineDashOffset = 0; + + } else { //Firefox + ctx.mozDash = [0]; + ctx.mozDashOffset = 0; } - if (token == 'false') { - token = false; // convert to boolean + } + else { // unsupporting smooth lines + // draw dashed line + ctx.beginPath(); + ctx.lineCap = 'round'; + if (this.options.dash.altLength !== undefined) //If an alt dash value has been set add to the array this value + { + ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y, + [this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]); } - else if (token == 'true') { - token = true; // convert to boolean + else if (this.options.dash.length !== undefined && this.options.dash.gap !== undefined) //If a dash and gap value has been set add to the array this value + { + ctx.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y, + [this.options.dash.length,this.options.dash.gap]); } - else if (!isNaN(Number(token))) { - token = Number(token); // convert to number + else //If all else fails draw a line + { + ctx.moveTo(this.from.x, this.from.y); + ctx.lineTo(this.to.x, this.to.y); } - tokenType = TOKENTYPE.IDENTIFIER; - return; + ctx.stroke(); } - // check for a string enclosed by double quotes - if (c == '"') { - next(); - while (c != '' && (c != '"' || (c == '"' && nextPreview() == '"'))) { - token += c; - if (c == '"') { // skip the escape character - next(); - } - next(); + // draw label + if (this.label) { + var point; + if (this.options.smoothCurves.enabled == true && via != null) { + var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); + var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); + point = {x:midpointX, y:midpointY}; } - if (c != '"') { - throw newSyntaxError('End of string " expected'); + else { + point = this._pointOnLine(0.5); } - next(); - tokenType = TOKENTYPE.IDENTIFIER; - return; - } - - // something unknown is found, wrong characters, a syntax error - tokenType = TOKENTYPE.UNKNOWN; - while (c != '') { - token += c; - next(); + this._label(ctx, this.label, point.x, point.y); } - throw new SyntaxError('Syntax error in part "' + chop(token, 30) + '"'); - } + }; /** - * Parse a graph. - * @returns {Object} graph + * Get a point on a line + * @param {Number} percentage. Value between 0 (line start) and 1 (line end) + * @return {Object} point + * @private */ - function parseGraph() { - var graph = {}; - - first(); - getToken(); - - // optional strict keyword - if (token == 'strict') { - graph.strict = true; - getToken(); + Edge.prototype._pointOnLine = function (percentage) { + return { + x: (1 - percentage) * this.from.x + percentage * this.to.x, + y: (1 - percentage) * this.from.y + percentage * this.to.y } + }; - // graph or digraph keyword - if (token == 'graph' || token == 'digraph') { - graph.type = token; - getToken(); + /** + * Get a point on a circle + * @param {Number} x + * @param {Number} y + * @param {Number} radius + * @param {Number} percentage. Value between 0 (line start) and 1 (line end) + * @return {Object} point + * @private + */ + Edge.prototype._pointOnCircle = function (x, y, radius, percentage) { + var angle = (percentage - 3/8) * 2 * Math.PI; + return { + x: x + radius * Math.cos(angle), + y: y - radius * Math.sin(angle) } + }; - // optional graph id - if (tokenType == TOKENTYPE.IDENTIFIER) { - graph.id = token; - getToken(); - } + /** + * Redraw a edge as a line with an arrow halfway the line + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private + */ + Edge.prototype._drawArrowCenter = function(ctx) { + var point; + // set style + ctx.strokeStyle = this._getColor(); + ctx.fillStyle = ctx.strokeStyle; + ctx.lineWidth = this._getLineWidth(); - // open angle bracket - if (token != '{') { - throw newSyntaxError('Angle bracket { expected'); - } - getToken(); + if (this.from != this.to) { + // draw line + var via = this._line(ctx); - // statements - parseStatements(graph); + var angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); + var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; + // draw an arrow halfway the line + if (this.options.smoothCurves.enabled == true && via != null) { + var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); + var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); + point = {x:midpointX, y:midpointY}; + } + else { + point = this._pointOnLine(0.5); + } - // close angle bracket - if (token != '}') { - throw newSyntaxError('Angle bracket } expected'); - } - getToken(); + ctx.arrow(point.x, point.y, angle, length); + ctx.fill(); + ctx.stroke(); - // end of file - if (token !== '') { - throw newSyntaxError('End of file expected'); + // draw label + if (this.label) { + this._label(ctx, this.label, point.x, point.y); + } } - getToken(); - - // remove temporary default properties - delete graph.node; - delete graph.edge; - delete graph.graph; + else { + // draw circle + var x, y; + var radius = 0.25 * Math.max(100,this.physics.springLength); + var node = this.from; + if (!node.width) { + node.resize(ctx); + } + if (node.width > node.height) { + x = node.x + node.width * 0.5; + y = node.y - radius; + } + else { + x = node.x + radius; + y = node.y - node.height * 0.5; + } + this._circle(ctx, x, y, radius); - return graph; - } + // draw all arrows + var angle = 0.2 * Math.PI; + var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; + point = this._pointOnCircle(x, y, radius, 0.5); + ctx.arrow(point.x, point.y, angle, length); + ctx.fill(); + ctx.stroke(); - /** - * Parse a list with statements. - * @param {Object} graph - */ - function parseStatements (graph) { - while (token !== '' && token != '}') { - parseStatement(graph); - if (token == ';') { - getToken(); + // draw label + if (this.label) { + point = this._pointOnCircle(x, y, radius, 0.5); + this._label(ctx, this.label, point.x, point.y); } } - } + }; + + /** - * Parse a single statement. Can be a an attribute statement, node - * statement, a series of node statements and edge statements, or a - * parameter. - * @param {Object} graph + * Redraw a edge as a line with an arrow + * Draw this edge in the given canvas + * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); + * @param {CanvasRenderingContext2D} ctx + * @private */ - function parseStatement(graph) { - // parse subgraph - var subgraph = parseSubgraph(graph); - if (subgraph) { - // edge statements - parseEdge(graph, subgraph); - - return; - } + Edge.prototype._drawArrow = function(ctx) { + // set style + ctx.strokeStyle = this._getColor(); + ctx.fillStyle = ctx.strokeStyle; + ctx.lineWidth = this._getLineWidth(); - // parse an attribute statement - var attr = parseAttributeStatement(graph); - if (attr) { - return; - } + var angle, length; + //draw a line + if (this.from != this.to) { + angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); + var dx = (this.to.x - this.from.x); + var dy = (this.to.y - this.from.y); + var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); - // parse node - if (tokenType != TOKENTYPE.IDENTIFIER) { - throw newSyntaxError('Identifier expected'); - } - var id = token; // id can be a string or a number - getToken(); + var fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); + var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; + var xFrom = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; + var yFrom = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; - if (token == '=') { - // id statement - getToken(); - if (tokenType != TOKENTYPE.IDENTIFIER) { - throw newSyntaxError('Identifier expected'); + var via; + if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true ) { + via = this.via; + } + else if (this.options.smoothCurves.enabled == true) { + via = this._getViaCoordinates(); } - graph[id] = token; - getToken(); - // TODO: implement comma separated list with "a_list: ID=ID [','] [a_list] " - } - else { - parseNodeStatement(graph, id); - } - } - - /** - * Parse a subgraph - * @param {Object} graph parent graph object - * @return {Object | null} subgraph - */ - function parseSubgraph (graph) { - var subgraph = null; - // optional subgraph keyword - if (token == 'subgraph') { - subgraph = {}; - subgraph.type = 'subgraph'; - getToken(); + if (this.options.smoothCurves.enabled == true && via.x != null) { + angle = Math.atan2((this.to.y - via.y), (this.to.x - via.x)); + dx = (this.to.x - via.x); + dy = (this.to.y - via.y); + edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); + } + var toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; - // optional graph id - if (tokenType == TOKENTYPE.IDENTIFIER) { - subgraph.id = token; - getToken(); + var xTo,yTo; + if (this.options.smoothCurves.enabled == true && via.x != null) { + xTo = (1 - toBorderPoint) * via.x + toBorderPoint * this.to.x; + yTo = (1 - toBorderPoint) * via.y + toBorderPoint * this.to.y; + } + else { + xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; } - } - - // open angle bracket - if (token == '{') { - getToken(); - if (!subgraph) { - subgraph = {}; + ctx.beginPath(); + ctx.moveTo(xFrom,yFrom); + if (this.options.smoothCurves.enabled == true && via.x != null) { + ctx.quadraticCurveTo(via.x,via.y,xTo, yTo); } - subgraph.parent = graph; - subgraph.node = graph.node; - subgraph.edge = graph.edge; - subgraph.graph = graph.graph; + else { + ctx.lineTo(xTo, yTo); + } + ctx.stroke(); - // statements - parseStatements(subgraph); + // draw arrow at the end of the line + length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; + ctx.arrow(xTo, yTo, angle, length); + ctx.fill(); + ctx.stroke(); - // close angle bracket - if (token != '}') { - throw newSyntaxError('Angle bracket } expected'); + // draw label + if (this.label) { + var point; + if (this.options.smoothCurves.enabled == true && via != null) { + var midpointX = 0.5*(0.5*(this.from.x + via.x) + 0.5*(this.to.x + via.x)); + var midpointY = 0.5*(0.5*(this.from.y + via.y) + 0.5*(this.to.y + via.y)); + point = {x:midpointX, y:midpointY}; + } + else { + point = this._pointOnLine(0.5); + } + this._label(ctx, this.label, point.x, point.y); } - getToken(); + } + else { + // draw circle + var node = this.from; + var x, y, arrow; + var radius = 0.25 * Math.max(100,this.physics.springLength); + if (!node.width) { + node.resize(ctx); + } + if (node.width > node.height) { + x = node.x + node.width * 0.5; + y = node.y - radius; + arrow = { + x: x, + y: node.y, + angle: 0.9 * Math.PI + }; + } + else { + x = node.x + radius; + y = node.y - node.height * 0.5; + arrow = { + x: node.x, + y: y, + angle: 0.6 * Math.PI + }; + } + ctx.beginPath(); + // TODO: similarly, for a line without arrows, draw to the border of the nodes instead of the center + ctx.arc(x, y, radius, 0, 2 * Math.PI, false); + ctx.stroke(); - // remove temporary default properties - delete subgraph.node; - delete subgraph.edge; - delete subgraph.graph; - delete subgraph.parent; + // draw all arrows + var length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; + ctx.arrow(arrow.x, arrow.y, arrow.angle, length); + ctx.fill(); + ctx.stroke(); - // register at the parent graph - if (!graph.subgraphs) { - graph.subgraphs = []; + // draw label + if (this.label) { + point = this._pointOnCircle(x, y, radius, 0.5); + this._label(ctx, this.label, point.x, point.y); } - graph.subgraphs.push(subgraph); } + }; + - return subgraph; - } /** - * parse an attribute statement like "node [shape=circle fontSize=16]". - * Available keywords are 'node', 'edge', 'graph'. - * The previous list with default attributes will be replaced - * @param {Object} graph - * @returns {String | null} keyword Returns the name of the parsed attribute - * (node, edge, graph), or null if nothing - * is parsed. + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * @param {number} x1 + * @param {number} y1 + * @param {number} x2 + * @param {number} y2 + * @param {number} x3 + * @param {number} y3 + * @private */ - function parseAttributeStatement (graph) { - // attribute statements - if (token == 'node') { - getToken(); - - // node attributes - graph.node = parseAttributeList(); - return 'node'; + Edge.prototype._getDistanceToEdge = function (x1,y1, x2,y2, x3,y3) { // x3,y3 is the point + var returnValue = 0; + if (this.from != this.to) { + if (this.options.smoothCurves.enabled == true) { + var xVia, yVia; + if (this.options.smoothCurves.enabled == true && this.options.smoothCurves.dynamic == true) { + xVia = this.via.x; + yVia = this.via.y; + } + else { + var via = this._getViaCoordinates(); + xVia = via.x; + yVia = via.y; + } + var minDistance = 1e9; + var distance; + var i,t,x,y, lastX, lastY; + for (i = 0; i < 10; i++) { + t = 0.1*i; + x = Math.pow(1-t,2)*x1 + (2*t*(1 - t))*xVia + Math.pow(t,2)*x2; + y = Math.pow(1-t,2)*y1 + (2*t*(1 - t))*yVia + Math.pow(t,2)*y2; + if (i > 0) { + distance = this._getDistanceToLine(lastX,lastY,x,y, x3,y3); + minDistance = distance < minDistance ? distance : minDistance; + } + lastX = x; lastY = y; + } + returnValue = minDistance; + } + else { + returnValue = this._getDistanceToLine(x1,y1,x2,y2,x3,y3); + } } - else if (token == 'edge') { - getToken(); - - // edge attributes - graph.edge = parseAttributeList(); - return 'edge'; + else { + var x, y, dx, dy; + var radius = 0.25 * this.physics.springLength; + var node = this.from; + if (node.width > node.height) { + x = node.x + 0.5 * node.width; + y = node.y - radius; + } + else { + x = node.x + radius; + y = node.y - 0.5 * node.height; + } + dx = x - x3; + dy = y - y3; + returnValue = Math.abs(Math.sqrt(dx*dx + dy*dy) - radius); } - else if (token == 'graph') { - getToken(); - // graph attributes - graph.graph = parseAttributeList(); - return 'graph'; + if (this.labelDimensions.left < x3 && + this.labelDimensions.left + this.labelDimensions.width > x3 && + this.labelDimensions.top < y3 && + this.labelDimensions.top + this.labelDimensions.height > y3) { + return 0; } - - return null; - } - - /** - * parse a node statement - * @param {Object} graph - * @param {String | Number} id - */ - function parseNodeStatement(graph, id) { - // node statement - var node = { - id: id - }; - var attr = parseAttributeList(); - if (attr) { - node.attr = attr; + else { + return returnValue; } - addNode(graph, node); - - // edge statements - parseEdge(graph, id); - } + }; - /** - * Parse an edge or a series of edges - * @param {Object} graph - * @param {String | Number} from Id of the from node - */ - function parseEdge(graph, from) { - while (token == '->' || token == '--') { - var to; - var type = token; - getToken(); + Edge.prototype._getDistanceToLine = function(x1,y1,x2,y2,x3,y3) { + var px = x2-x1, + py = y2-y1, + something = px*px + py*py, + u = ((x3 - x1) * px + (y3 - y1) * py) / something; - var subgraph = parseSubgraph(graph); - if (subgraph) { - to = subgraph; - } - else { - if (tokenType != TOKENTYPE.IDENTIFIER) { - throw newSyntaxError('Identifier or subgraph expected'); - } - to = token; - addNode(graph, { - id: to - }); - getToken(); - } + if (u > 1) { + u = 1; + } + else if (u < 0) { + u = 0; + } - // parse edge attributes - var attr = parseAttributeList(); + var x = x1 + u * px, + y = y1 + u * py, + dx = x - x3, + dy = y - y3; - // create edge - var edge = createEdge(graph, from, to, type, attr); - addEdge(graph, edge); + //# Note: If the actual distance does not matter, + //# if you only want to compare what this function + //# returns to other results of this function, you + //# can just return the squared distance instead + //# (i.e. remove the sqrt) to gain a little performance - from = to; - } - } + return Math.sqrt(dx*dx + dy*dy); + }; /** - * Parse a set with attributes, - * for example [label="1.000", shape=solid] - * @return {Object | null} attr + * This allows the zoom level of the network to influence the rendering + * + * @param scale */ - function parseAttributeList() { - var attr = null; - - while (token == '[') { - getToken(); - attr = {}; - while (token !== '' && token != ']') { - if (tokenType != TOKENTYPE.IDENTIFIER) { - throw newSyntaxError('Attribute name expected'); - } - var name = token; + Edge.prototype.setScale = function(scale) { + this.networkScaleInv = 1.0/scale; + }; - getToken(); - if (token != '=') { - throw newSyntaxError('Equal sign = expected'); - } - getToken(); - if (tokenType != TOKENTYPE.IDENTIFIER) { - throw newSyntaxError('Attribute value expected'); - } - var value = token; - setValue(attr, name, value); // name can be a path + Edge.prototype.select = function() { + this.selected = true; + }; - getToken(); - if (token ==',') { - getToken(); - } - } + Edge.prototype.unselect = function() { + this.selected = false; + }; - if (token != ']') { - throw newSyntaxError('Bracket ] expected'); - } - getToken(); + Edge.prototype.positionBezierNode = function() { + if (this.via !== null && this.from !== null && this.to !== null) { + this.via.x = 0.5 * (this.from.x + this.to.x); + this.via.y = 0.5 * (this.from.y + this.to.y); } - - return attr; - } + else { + this.via.x = 0; + this.via.y = 0; + } + }; /** - * Create a syntax error with extra information on current token and index. - * @param {String} message - * @returns {SyntaxError} err + * This function draws the control nodes for the manipulator. + * In order to enable this, only set the this.controlNodesEnabled to true. + * @param ctx */ - function newSyntaxError(message) { - return new SyntaxError(message + ', got "' + chop(token, 30) + '" (char ' + index + ')'); - } + Edge.prototype._drawControlNodes = function(ctx) { + if (this.controlNodesEnabled == true) { + if (this.controlNodes.from === null && this.controlNodes.to === null) { + var nodeIdFrom = "edgeIdFrom:".concat(this.id); + var nodeIdTo = "edgeIdTo:".concat(this.id); + var constants = { + nodes:{group:'', radius:8}, + physics:{damping:0}, + clustering: {maxNodeSizeIncrements: 0 ,nodeScaling: {width:0, height: 0, radius:0}} + }; + this.controlNodes.from = new Node( + {id:nodeIdFrom, + shape:'dot', + color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + },{},{},constants); + this.controlNodes.to = new Node( + {id:nodeIdTo, + shape:'dot', + color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + },{},{},constants); + } - /** - * Chop off text after a maximum length - * @param {String} text - * @param {Number} maxLength - * @returns {String} - */ - function chop (text, maxLength) { - return (text.length <= maxLength) ? text : (text.substr(0, 27) + '...'); - } + if (this.controlNodes.from.selected == false && this.controlNodes.to.selected == false) { + this.controlNodes.positions = this.getControlNodePositions(ctx); + this.controlNodes.from.x = this.controlNodes.positions.from.x; + this.controlNodes.from.y = this.controlNodes.positions.from.y; + this.controlNodes.to.x = this.controlNodes.positions.to.x; + this.controlNodes.to.y = this.controlNodes.positions.to.y; + } - /** - * Execute a function fn for each pair of elements in two arrays - * @param {Array | *} array1 - * @param {Array | *} array2 - * @param {function} fn - */ - function forEach2(array1, array2, fn) { - if (Array.isArray(array1)) { - array1.forEach(function (elem1) { - if (Array.isArray(array2)) { - array2.forEach(function (elem2) { - fn(elem1, elem2); - }); - } - else { - fn(elem1, array2); - } - }); + this.controlNodes.from.draw(ctx); + this.controlNodes.to.draw(ctx); } else { - if (Array.isArray(array2)) { - array2.forEach(function (elem2) { - fn(array1, elem2); - }); - } - else { - fn(array1, array2); - } + this.controlNodes = {from:null, to:null, positions:{}}; } - } + }; /** - * Convert a string containing a graph in DOT language into a map containing - * with nodes and edges in the format of graph. - * @param {String} data Text containing a graph in DOT-notation - * @return {Object} graphData + * Enable control nodes. + * @private */ - function DOTToGraph (data) { - // parse the DOT file - var dotData = parseDOT(data); - var graphData = { - nodes: [], - edges: [], - options: {} - }; + Edge.prototype._enableControlNodes = function() { + this.fromBackup = this.from; + this.toBackup = this.to; + this.controlNodesEnabled = true; + }; - // copy the nodes - if (dotData.nodes) { - dotData.nodes.forEach(function (dotNode) { - var graphNode = { - id: dotNode.id, - label: String(dotNode.label || dotNode.id) - }; - merge(graphNode, dotNode.attr); - if (graphNode.image) { - graphNode.shape = 'image'; - } - graphData.nodes.push(graphNode); - }); + /** + * disable control nodes and remove from dynamicEdges from old node + * @private + */ + Edge.prototype._disableControlNodes = function() { + this.fromId = this.from.id; + this.toId = this.to.id; + if (this.fromId != this.fromBackup.id) { // from was changed, remove edge from old 'from' node dynamic edges + this.fromBackup.detachEdge(this); + } + else if (this.toId != this.toBackup.id) { // to was changed, remove edge from old 'to' node dynamic edges + this.toBackup.detachEdge(this); } - // copy the edges - if (dotData.edges) { - /** - * Convert an edge in DOT format to an edge with VisGraph format - * @param {Object} dotEdge - * @returns {Object} graphEdge - */ - var convertEdge = function (dotEdge) { - var graphEdge = { - from: dotEdge.from, - to: dotEdge.to - }; - merge(graphEdge, dotEdge.attr); - graphEdge.style = (dotEdge.type == '->') ? 'arrow' : 'line'; - return graphEdge; - } + this.fromBackup = null; + this.toBackup = null; + this.controlNodesEnabled = false; + }; - dotData.edges.forEach(function (dotEdge) { - var from, to; - if (dotEdge.from instanceof Object) { - from = dotEdge.from.nodes; - } - else { - from = { - id: dotEdge.from - } - } - if (dotEdge.to instanceof Object) { - to = dotEdge.to.nodes; - } - else { - to = { - id: dotEdge.to - } - } + /** + * This checks if one of the control nodes is selected and if so, returns the control node object. Else it returns null. + * @param x + * @param y + * @returns {null} + * @private + */ + Edge.prototype._getSelectedControlNode = function(x,y) { + var positions = this.controlNodes.positions; + var fromDistance = Math.sqrt(Math.pow(x - positions.from.x,2) + Math.pow(y - positions.from.y,2)); + var toDistance = Math.sqrt(Math.pow(x - positions.to.x ,2) + Math.pow(y - positions.to.y ,2)); + + if (fromDistance < 15) { + this.connectedNode = this.from; + this.from = this.controlNodes.from; + return this.controlNodes.from; + } + else if (toDistance < 15) { + this.connectedNode = this.to; + this.to = this.controlNodes.to; + return this.controlNodes.to; + } + else { + return null; + } + }; - if (dotEdge.from instanceof Object && dotEdge.from.edges) { - dotEdge.from.edges.forEach(function (subEdge) { - var graphEdge = convertEdge(subEdge); - graphData.edges.push(graphEdge); - }); - } - forEach2(from, to, function (from, to) { - var subEdge = createEdge(graphData, from.id, to.id, dotEdge.type, dotEdge.attr); - var graphEdge = convertEdge(subEdge); - graphData.edges.push(graphEdge); - }); + /** + * this resets the control nodes to their original position. + * @private + */ + Edge.prototype._restoreControlNodes = function() { + if (this.controlNodes.from.selected == true) { + this.from = this.connectedNode; + this.connectedNode = null; + this.controlNodes.from.unselect(); + } + else if (this.controlNodes.to.selected == true) { + this.to = this.connectedNode; + this.connectedNode = null; + this.controlNodes.to.unselect(); + } + }; - if (dotEdge.to instanceof Object && dotEdge.to.edges) { - dotEdge.to.edges.forEach(function (subEdge) { - var graphEdge = convertEdge(subEdge); - graphData.edges.push(graphEdge); - }); - } - }); + /** + * this calculates the position of the control nodes on the edges of the parent nodes. + * + * @param ctx + * @returns {{from: {x: number, y: number}, to: {x: *, y: *}}} + */ + Edge.prototype.getControlNodePositions = function(ctx) { + var angle = Math.atan2((this.to.y - this.from.y), (this.to.x - this.from.x)); + var dx = (this.to.x - this.from.x); + var dy = (this.to.y - this.from.y); + var edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); + var fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); + var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; + var xFrom = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; + var yFrom = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; + + var via; + if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true) { + via = this.via; + } + else if (this.options.smoothCurves.enabled == true) { + via = this._getViaCoordinates(); } - // copy the options - if (dotData.attr) { - graphData.options = dotData.attr; + if (this.options.smoothCurves.enabled == true && via.x != null) { + angle = Math.atan2((this.to.y - via.y), (this.to.x - via.x)); + dx = (this.to.x - via.x); + dy = (this.to.y - via.y); + edgeSegmentLength = Math.sqrt(dx * dx + dy * dy); } + var toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; - return graphData; - } + var xTo,yTo; + if (this.options.smoothCurves.enabled == true && via.x != null) { + xTo = (1 - toBorderPoint) * via.x + toBorderPoint * this.to.x; + yTo = (1 - toBorderPoint) * via.y + toBorderPoint * this.to.y; + } + else { + xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; + } - // exports - exports.parseDOT = parseDOT; - exports.DOTToGraph = DOTToGraph; + return {from:{x:xFrom,y:yFrom},to:{x:xTo,y:yTo}}; + }; + module.exports = Edge; /***/ }, /* 58 */ /***/ function(module, exports, __webpack_require__) { - - function parseGephi(gephiJSON, options) { - var edges = []; - var nodes = []; - this.options = { - edges: { - inheritColor: true - }, - nodes: { - allowedToMove: false, - parseColor: false + /** + * Popup is a class to create a popup window with some text + * @param {Element} container The container object. + * @param {Number} [x] + * @param {Number} [y] + * @param {String} [text] + * @param {Object} [style] An object containing borderColor, + * backgroundColor, etc. + */ + function Popup(container, x, y, text, style) { + if (container) { + this.container = container; + } + else { + this.container = document.body; + } + + // x, y and text are optional, see if a style object was passed in their place + if (style === undefined) { + if (typeof x === "object") { + style = x; + x = undefined; + } else if (typeof text === "object") { + style = text; + text = undefined; + } else { + // for backwards compatibility, in case clients other than Network are creating Popup directly + style = { + fontColor: 'black', + fontSize: 14, // px + fontFace: 'verdana', + color: { + border: '#666', + background: '#FFFFC6' + } + } } - }; + } - if (options !== undefined) { - this.options.nodes['allowedToMove'] = options.allowedToMove | false; - this.options.nodes['parseColor'] = options.parseColor | false; - this.options.edges['inheritColor'] = options.inheritColor | true; + this.x = 0; + this.y = 0; + this.padding = 5; + + if (x !== undefined && y !== undefined ) { + this.setPosition(x, y); + } + if (text !== undefined) { + this.setText(text); } - var gEdges = gephiJSON.edges; - var gNodes = gephiJSON.nodes; - for (var i = 0; i < gEdges.length; i++) { - var edge = {}; - var gEdge = gEdges[i]; - edge['id'] = gEdge.id; - edge['from'] = gEdge.source; - edge['to'] = gEdge.target; - edge['attributes'] = gEdge.attributes; - // edge['value'] = gEdge.attributes !== undefined ? gEdge.attributes.Weight : undefined; - // edge['width'] = edge['value'] !== undefined ? undefined : edgegEdge.size; - edge['color'] = gEdge.color; - edge['inheritColor'] = edge['color'] !== undefined ? false : this.options.inheritColor; - edges.push(edge); + // create the frame + this.frame = document.createElement("div"); + var styleAttr = this.frame.style; + styleAttr.position = "absolute"; + styleAttr.visibility = "hidden"; + styleAttr.border = "1px solid " + style.color.border; + styleAttr.color = style.fontColor; + styleAttr.fontSize = style.fontSize + "px"; + styleAttr.fontFamily = style.fontFace; + styleAttr.padding = this.padding + "px"; + styleAttr.backgroundColor = style.color.background; + styleAttr.borderRadius = "3px"; + styleAttr.MozBorderRadius = "3px"; + styleAttr.WebkitBorderRadius = "3px"; + styleAttr.boxShadow = "3px 3px 10px rgba(128, 128, 128, 0.5)"; + styleAttr.whiteSpace = "nowrap"; + this.container.appendChild(this.frame); + } + + /** + * @param {number} x Horizontal position of the popup window + * @param {number} y Vertical position of the popup window + */ + Popup.prototype.setPosition = function(x, y) { + this.x = parseInt(x); + this.y = parseInt(y); + }; + + /** + * Set the content for the popup window. This can be HTML code or text. + * @param {string | Element} content + */ + Popup.prototype.setText = function(content) { + if (content instanceof Element) { + this.frame.innerHTML = ''; + this.frame.appendChild(content); + } + else { + this.frame.innerHTML = content; // string containing text or HTML } + }; - for (var i = 0; i < gNodes.length; i++) { - var node = {}; - var gNode = gNodes[i]; - node['id'] = gNode.id; - node['attributes'] = gNode.attributes; - node['x'] = gNode.x; - node['y'] = gNode.y; - node['label'] = gNode.label; - if (this.options.nodes.parseColor == true) { - node['color'] = gNode.color; + /** + * Show the popup window + * @param {boolean} show Optional. Show or hide the window + */ + Popup.prototype.show = function (show) { + if (show === undefined) { + show = true; + } + + if (show) { + var height = this.frame.clientHeight; + var width = this.frame.clientWidth; + var maxHeight = this.frame.parentNode.clientHeight; + var maxWidth = this.frame.parentNode.clientWidth; + + var top = (this.y - height); + if (top + height + this.padding > maxHeight) { + top = maxHeight - height - this.padding; } - else { - node['color'] = gNode.color !== undefined ? {background:gNode.color, border:gNode.color} : undefined; + if (top < this.padding) { + top = this.padding; } - node['radius'] = gNode.size; - node['allowedToMoveX'] = this.options.nodes.allowedToMove; - node['allowedToMoveY'] = this.options.nodes.allowedToMove; - nodes.push(node); + + var left = this.x; + if (left + width + this.padding > maxWidth) { + left = maxWidth - width - this.padding; + } + if (left < this.padding) { + left = this.padding; + } + + this.frame.style.left = left + "px"; + this.frame.style.top = top + "px"; + this.frame.style.visibility = "visible"; + } + else { + this.hide(); } + }; - return {nodes:nodes, edges:edges}; - } + /** + * Hide the popup window + */ + Popup.prototype.hide = function () { + this.frame.style.visibility = "hidden"; + }; + + module.exports = Popup; - exports.parseGephi = parseGephi; /***/ }, /* 59 */ @@ -31329,7 +31531,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { var util = __webpack_require__(1); - var Node = __webpack_require__(53); + var Node = __webpack_require__(56); /** * Creation of the SectorMixin var. @@ -31887,7 +32089,7 @@ return /******/ (function(modules) { // webpackBootstrap /* 66 */ /***/ function(module, exports, __webpack_require__) { - var Node = __webpack_require__(53); + var Node = __webpack_require__(56); /** * This function can be called from the _doInAllSectors function @@ -32602,8 +32804,8 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { var util = __webpack_require__(1); - var Node = __webpack_require__(53); - var Edge = __webpack_require__(52); + var Node = __webpack_require__(56); + var Edge = __webpack_require__(57); /** * clears the toolbar div element of children diff --git a/dist/vis.map b/dist/vis.map index 0b960d89..57d35c11 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","Math","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","value","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","GiveDec","Hex","Value","eval","GiveHex","Dec","parseColor","color","isValidRGB","rgb","substr","RGBToHex","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","min","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","hexToRGB","hex","replace","toUpperCase","substring","d","e","f","r","g","red","green","blue","RGBToHSV","minRGB","maxRGB","max","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","point","drawPoints","setAttributeNS","size","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","result","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","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","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","label","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xOffset","yOffset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","parseInt","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","content","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setGroups","setItems","Core","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","linegraph","getLegend","groupId","isGroupVisible","visibility","convertHiddenOptions","repeat","dateItem","updateHiddenDates","centerContainer","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","time","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","slice","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","pageX","pageY","hammerUtil","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","gesture","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","newScale","newStep","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","getLabelMajor","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","locale","parent","backgroundVertical","title","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","Hammer","drag","prevent_default","setCustomTime","getCustomTime","stopPropagation","svg","linegraphOptions","showMinorLabels","showMajorLabels","showMinorLines","showMajorLines","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","hide","show","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","changeCalled","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupIndex","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","foreground","marker","Element","getLabelWidth","restack","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","displayed","_calculateHeight","offsetTop","offsetLeft","ii","repositionY","resetSubgroups","labelSet","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","repositionX","initialPos","breakCondition","isVisible","align","groupOrder","selectable","editable","updateTime","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","markDirty","unselect","select","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","itemFromTarget","selected","dragLeftItem","dragRightItem","initialX","itemProps","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","srcEvent","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","getComputedStyle","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","autoSizeSVG","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","majorLines","majorTexts","minorLines","minorTexts","lineTop","lang","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","xFirstMajorLabel","cur","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_repaintDeleteButton","anchor","deleteButton","_updateContents","template","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","onTop","itemSubgroup","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","maxPhysicsTicksPerRender","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","level","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","thetaInverted","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","navigation","keyboard","speed","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","zoomExtentOnStabilize","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","existing","_new","animationSpeed","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","_getScriptPath","scripts","getElementsByTagName","src","_getRange","node","minY","maxY","minX","maxX","nodeId","boundingBox","_findCenter","animationOptions","initialZoom","disableStart","zoomLevel","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_cleanupPhysicsConfiguration","dispose","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","getTitle","isOverlappingWith","edge","connected","popup","setPosition","setText","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","changedData","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","setValueRange","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","mainMovingStatus","supportMovingStatus","_doInAllActiveSectors","mainMoving","_doInSupportSector","_animationStep","_handleNavigation","calculationTime","maxSteps","timeRequired","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","ua","toLowerCase","requiresTimeout","iterations","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getScale","getCenterCoordinates","networkConstants","fromId","toId","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","quadraticCurveTo","lineCount","measureText","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","atan2","arrow","edgeSegmentLength","fromBorderDist","distanceToBorder","fromBorderPoint","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodePositions","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","defaultIndex","DEFAULT","load","url","brokenUrl","img","Image","onload","onerror","imagelist","grouplist","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","_setForce","_addForce","isFixed","velocity","getDistance","globalAlpha","drawImage","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","custom","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_RESULT__","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","_milliseconds","_days","_months","_locale","_bubble","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","targetLength","forceSign","output","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","updateOffset","setTime","rawSetter","rawGetter","rawMonthSetter","input","compareArrays","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","getter","results","utc","set","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","bigHour","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","hasModule","code","model","local","removeFormattingTokens","makeFormatFunction","formattingTokens","formatTokenFunctions","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","getParseRegexForToken","parseTokenOneDigit","parseTokenThreeDigits","parseTokenFourDigits","parseTokenOneToFourDigits","parseTokenSignedNumber","parseTokenSixDigits","parseTokenOneToSixDigits","parseTokenTwoDigits","parseTokenOneToThreeDigits","parseTokenWord","_meridiemParse","parseTokenOffsetMs","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","_ordinalParse","_ordinalParseLenient","RegExp","regexpEscape","unescapeFormat","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_isPm","isPM","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dateFromConfig","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","getUTCFullYear","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","makeDateFromInput","aspNetJsonRegex","ms","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","relativeTimeThresholds","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","dayOfMonth","unit","makeAccessor","keepTime","daysToYears","yearsToDays","makeDurationGetter","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","meridiem","SS","SSS","SSSS","Z","zone","ZZ","zoneAbbr","zz","zoneName","unix","lists","DDDD","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","relativeTimeThreshold","threshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateTzOffset","inputString","asFloat","daysAdjust","that","zoneDiff","startOf","humanize","fromNow","sod","isDST","getDay","endOf","inputMs","isSame","localAdjust","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","setup","READY","Event","determineEventTypes","Utils","each","gestures","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","Instance","defaults","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","HAS_POINTEREVENTS","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","dest","handler","iterator","inStr","find","inArray","hasParent","getCenter","getVelocity","deltaTime","getAngle","touch1","touch2","getDirection","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","touchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","identifiers","identifier","pointerType","timeStamp","preventManipulation","stopDetect","pointers","touchlist","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","recalc","calcEv","calcData","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","state","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","holdTimeout","holdThreshold","Hold","Release","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","clusterToFit","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","repositionNodes","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_sector","_addSector","decreaseClusterLevel","_expandClusterNode","_updateDynamicEdges","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","_collapseSector","_formClusters","_openClusters","_openClustersBySize","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","openAll","containedNodeId","childNode","_expelChildFromParent","_unselectAll","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","correction","edgeToId","edgeFromId","k","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","total","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","overlappingNodes","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","overlappingEdges","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","_removeFromSelection","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","_createAddNodeToolbar","_createAddEdgeToolbar","_editNode","_createEditEdgeToolbar","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","supportNodes","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","_setLevelDirected","parentId","parentLevel","nodeMoved","_restoreNodes","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodeId","gravity","gravityForce","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","webpackContext","req","resolve","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","centerX","centerY","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackPolyfill","paths"],"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","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","Math","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","value","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","GiveDec","Hex","Value","eval","GiveHex","Dec","parseColor","color","isValidRGB","rgb","substr","RGBToHex","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","min","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","hexToRGB","hex","replace","toUpperCase","substring","d","e","f","r","g","red","green","blue","RGBToHSV","minRGB","maxRGB","max","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","point","drawPoints","setAttributeNS","size","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","result","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","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","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","label","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xOffset","yOffset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","parseInt","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","content","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setGroups","setItems","Core","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","linegraph","getLegend","groupId","isGroupVisible","visibility","convertHiddenOptions","repeat","dateItem","updateHiddenDates","centerContainer","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","time","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","slice","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","pageX","pageY","hammerUtil","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","gesture","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","newScale","newStep","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","getLabelMajor","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","toLowerCase","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","parent","backgroundVertical","title","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","Hammer","drag","prevent_default","setCustomTime","getCustomTime","stopPropagation","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","hide","show","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupIndex","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","foreground","marker","Element","getLabelWidth","restack","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","displayed","_calculateHeight","offsetTop","offsetLeft","ii","repositionY","resetSubgroups","labelSet","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","repositionX","initialPos","breakCondition","isVisible","align","groupOrder","selectable","editable","updateTime","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","markDirty","unselect","select","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","itemFromTarget","selected","dragLeftItem","dragRightItem","initialX","itemProps","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","srcEvent","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","getComputedStyle","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","updateSVGheight","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","majorTexts","minorTexts","lineTop","lang","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","cur","prevLine","xPrev","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_repaintDeleteButton","anchor","deleteButton","_updateContents","template","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","onTop","itemSubgroup","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","_determineBrowserMethod","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","physicsTime","runDoubleSpeed","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","level","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","thetaInverted","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","navigation","keyboard","speed","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","zoomExtentOnStabilize","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","existing","_new","animationSpeed","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","browserType","requiresTimeout","_getScriptPath","scripts","getElementsByTagName","src","_getRange","node","minY","maxY","minX","maxX","nodeId","boundingBox","_findCenter","animationOptions","initialZoom","disableStart","zoomLevel","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_cleanupPhysicsConfiguration","dispose","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","nodeUnderCursor","isOverlappingWith","getTitle","edge","connected","popup","setPosition","setText","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","changedData","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","setValueRange","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","_revertPhysicsState","revertPosition","_revertPhysicsTick","_doInAllActiveSectors","_doInSupportSector","mainMovingStatus","supportMovingStatus","mainMoving","_animationStep","_handleNavigation","startTime","renderStartTime","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","iterations","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getScale","getCenterCoordinates","getBoundingBox","networkConstants","fromId","toId","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","quadraticCurveTo","lineCount","measureText","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","atan2","arrow","edgeSegmentLength","fromBorderDist","distanceToBorder","fromBorderPoint","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodePositions","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","defaultIndex","DEFAULT","load","url","brokenUrl","img","Image","onload","onerror","error","imagelist","grouplist","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","previousState","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","_setForce","_addForce","storeState","isFixed","velocity","getDistance","globalAlpha","drawImage","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","custom","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_RESULT__","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","_milliseconds","_days","_months","_locale","_bubble","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","targetLength","forceSign","output","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","updateOffset","setTime","rawSetter","rawGetter","rawMonthSetter","input","compareArrays","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","getter","results","utc","set","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","bigHour","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","hasModule","code","model","local","removeFormattingTokens","makeFormatFunction","formattingTokens","formatTokenFunctions","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","getParseRegexForToken","parseTokenOneDigit","parseTokenThreeDigits","parseTokenFourDigits","parseTokenOneToFourDigits","parseTokenSignedNumber","parseTokenSixDigits","parseTokenOneToSixDigits","parseTokenTwoDigits","parseTokenOneToThreeDigits","parseTokenWord","_meridiemParse","parseTokenOffsetMs","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","_ordinalParse","_ordinalParseLenient","RegExp","regexpEscape","unescapeFormat","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_isPm","isPM","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dateFromConfig","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","getUTCFullYear","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","makeDateFromInput","aspNetJsonRegex","ms","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","relativeTimeThresholds","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","dayOfMonth","unit","makeAccessor","keepTime","daysToYears","yearsToDays","makeDurationGetter","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","meridiem","SS","SSS","SSSS","Z","zone","ZZ","zoneAbbr","zz","zoneName","unix","lists","DDDD","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","relativeTimeThreshold","threshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateTzOffset","inputString","asFloat","daysAdjust","that","zoneDiff","startOf","humanize","fromNow","sod","isDST","getDay","endOf","inputMs","localAdjust","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","setup","READY","Event","determineEventTypes","Utils","each","gestures","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","Instance","defaults","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","HAS_POINTEREVENTS","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","dest","handler","iterator","inStr","find","inArray","hasParent","getCenter","getVelocity","deltaTime","getAngle","touch1","touch2","getDirection","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","touchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","identifiers","identifier","pointerType","timeStamp","preventManipulation","stopDetect","pointers","touchlist","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","recalc","calcEv","calcData","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","state","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","holdTimeout","holdThreshold","Hold","Release","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","clusterToFit","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","repositionNodes","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_sector","_addSector","decreaseClusterLevel","_expandClusterNode","_updateDynamicEdges","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","_collapseSector","_formClusters","_openClusters","_openClustersBySize","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","openAll","containedNodeId","childNode","_expelChildFromParent","_unselectAll","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","correction","edgeToId","edgeFromId","k","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","total","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","overlappingNodes","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","overlappingEdges","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","_removeFromSelection","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","_createAddNodeToolbar","_createAddEdgeToolbar","_editNode","_createEditEdgeToolbar","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","supportNodes","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","_setLevelDirected","parentId","parentLevel","nodeMoved","_restoreNodes","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodeId","gravity","gravityForce","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","webpackContext","req","resolve","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","centerX","centerY","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackPolyfill","paths"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis.min.css b/dist/vis.min.css index dfb42f12..8478b04b 100644 --- a/dist/vis.min.css +++ b/dist/vis.min.css @@ -1 +1 @@ -.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}.vis.timeline.root{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}.vis.timeline .vispanel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis.timeline .vispanel.bottom,.vis.timeline .vispanel.center,.vis.timeline .vispanel.left,.vis.timeline .vispanel.right,.vis.timeline .vispanel.top{border:1px #bfbfbf}.vis.timeline .vispanel.center,.vis.timeline .vispanel.left,.vis.timeline .vispanel.right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis.timeline .vispanel.bottom,.vis.timeline .vispanel.center,.vis.timeline .vispanel.top{border-left-style:solid;border-right-style:solid}.vis.timeline .background{overflow:hidden}.vis.timeline .vispanel>.content{position:relative}.vis.timeline .vispanel .shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis.timeline .vispanel .shadow.top{top:-1px;left:0}.vis.timeline .vispanel .shadow.bottom{bottom:-1px;left:0}.vis.timeline .labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis.timeline .labelset .vlabel{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis.timeline .labelset .vlabel:last-child{border-bottom:none}.vis.timeline .labelset .vlabel .inner{display:inline-block;padding:5px}.vis.timeline .labelset .vlabel .inner.hidden{padding:0}.vis.timeline .itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis.timeline .itemset .background,.vis.timeline .itemset .foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis.timeline .axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis.timeline .foreground .group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis.timeline .foreground .group:last-child{border-bottom:none}.vis.timeline .item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block;padding:5px}.vis.timeline .item.selected{border-color:#FFC200;background-color:#FFF785;z-index:2}.vis.timeline .editable .item.selected{cursor:move}.vis.timeline .item.point.selected{background-color:#FFF785}.vis.timeline .item.box{text-align:center;border-style:solid;border-radius:2px}.vis.timeline .item.point{background:0 0}.vis.timeline .item.dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis.timeline .item.range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis.timeline .item.background{overflow:hidden;border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis.timeline .item.range .content{position:relative;display:inline-block;max-width:100%;overflow:hidden}.vis.timeline .item.background .content{position:absolute;display:inline-block;overflow:hidden;max-width:100%;margin:5px}.vis.timeline .item.line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis.timeline .item .content{white-space:nowrap;overflow:hidden}.vis.timeline .item .delete{background:url(img/timeline/delete.png) top center no-repeat;position:absolute;width:24px;height:24px;top:0;right:-24px;cursor:pointer}.vis.timeline .item.range .drag-left{position:absolute;width:24px;height:100%;top:0;left:-4px;cursor:w-resize}.vis.timeline .item.range .drag-right{position:absolute;width:24px;height:100%;top:0;right:-4px;cursor:e-resize}.vis.timeline .timeaxis{position:relative;overflow:hidden}.vis.timeline .timeaxis.foreground{top:0;left:0;width:100%}.vis.timeline .timeaxis.background{position:absolute;top:0;left:0;width:100%;height:100%}.vis.timeline .timeaxis .text{position:absolute;color:#4d4d4d;padding:3px;white-space:nowrap}.vis.timeline .timeaxis .text.measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis.timeline .timeaxis .grid.vertical{position:absolute;width:0;border-right:1px solid}.vis.timeline .timeaxis .grid.minor{border-color:#e5e5e5}.vis.timeline .timeaxis .grid.major{border-color:#bfbfbf}.vis.timeline .currenttime{background-color:#FF7F6E;width:2px;z-index:1}.vis.timeline .customtime{background-color:#6E94FF;width:2px;cursor:move;z-index:1}.vis.timeline .vispanel.background.horizontal .grid.horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis.timeline .vispanel.background.horizontal .grid.minor{border-color:#e5e5e5}.vis.timeline .vispanel.background.horizontal .grid.major{border-color:#bfbfbf}.vis.timeline .dataaxis .yAxis.major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis.timeline .dataaxis .yAxis.major.measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis.timeline .dataaxis .yAxis.minor.measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis.timeline .dataaxis .yAxis.title.measure{padding:0;margin:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.title.left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis.timeline .dataaxis .yAxis.title.right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis.timeline .legend{background-color:rgba(247,252,255,.65);padding:5px;border-color:#b3b3b3;border-style:solid;border-width:1px;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis.timeline .legendText{white-space:nowrap;display:inline-block}.vis.timeline .graphGroup0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis.timeline .graphGroup1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis.timeline .graphGroup2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis.timeline .graphGroup3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis.timeline .graphGroup4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis.timeline .graphGroup5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis.timeline .graphGroup6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis.timeline .graphGroup7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis.timeline .graphGroup8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis.timeline .graphGroup9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis.timeline .fill{fill-opacity:.1;stroke:none}.vis.timeline .bar{fill-opacity:.5;stroke-width:1px}.vis.timeline .point{stroke-width:2px;fill-opacity:1}.vis.timeline .legendBackground{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis.timeline .outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis.timeline .iconFill{fill-opacity:.3;stroke:none}div.network-manipulationDiv{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0);position:absolute;left:0;top:0;width:100%;height:30px}div.network-manipulation-editMode{position:absolute;left:0;top:0;height:30px;margin-top:20px}div.network-manipulation-closeDiv{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.network-manipulation-closeDiv:hover{opacity:.6}span.network-manipulationUI{font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin:-14px 0 0 10px;vertical-align:middle;cursor:pointer;padding:0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.network-manipulationUI:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}span.network-manipulationUI:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}span.network-manipulationUI.back{background-image:url(img/network/backIcon.png)}span.network-manipulationUI.none:hover{box-shadow:1px 1px 8px transparent;cursor:default}span.network-manipulationUI.none:active{box-shadow:1px 1px 8px transparent}span.network-manipulationUI.none{padding:0}span.network-manipulationUI.notification{margin:2px;font-weight:700}span.network-manipulationUI.add{background-image:url(img/network/addNodeIcon.png)}span.network-manipulationUI.edit{background-image:url(img/network/editIcon.png)}span.network-manipulationUI.edit.editmode{background-color:#fcfcfc;border-style:solid;border-width:1px;border-color:#ccc}span.network-manipulationUI.connect{background-image:url(img/network/connectIcon.png)}span.network-manipulationUI.delete{background-image:url(img/network/deleteIcon.png)}span.network-manipulationLabel{margin:0 0 0 23px;line-height:25px}div.network-seperatorLine{display:inline-block;width:1px;height:20px;background-color:#bdbdbd;margin:5px 7px 0 15px}div.network-navigation_wrapper{position:absolute;left:0;top:0;width:100%;height:100%}div.network-navigation{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.network-navigation:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.network-navigation:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.network-navigation.up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.network-navigation.down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.network-navigation.left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.network-navigation.right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.network-navigation.zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.network-navigation.zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.network-navigation.zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px} \ No newline at end of file +.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}.vis.timeline.root{position:relative;border:1px solid #bfbfbf;overflow:hidden;padding:0;margin:0;box-sizing:border-box}.vis.timeline .vispanel{position:absolute;padding:0;margin:0;box-sizing:border-box}.vis.timeline .vispanel.bottom,.vis.timeline .vispanel.center,.vis.timeline .vispanel.left,.vis.timeline .vispanel.right,.vis.timeline .vispanel.top{border:1px #bfbfbf}.vis.timeline .vispanel.center,.vis.timeline .vispanel.left,.vis.timeline .vispanel.right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis.timeline .vispanel.bottom,.vis.timeline .vispanel.center,.vis.timeline .vispanel.top{border-left-style:solid;border-right-style:solid}.vis.timeline .background{overflow:hidden}.vis.timeline .vispanel>.content{position:relative}.vis.timeline .vispanel .shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis.timeline .vispanel .shadow.top{top:-1px;left:0}.vis.timeline .vispanel .shadow.bottom{bottom:-1px;left:0}.vis.timeline .labelset{position:relative;overflow:hidden;box-sizing:border-box}.vis.timeline .labelset .vlabel{position:relative;left:0;top:0;width:100%;color:#4d4d4d;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis.timeline .labelset .vlabel:last-child{border-bottom:none}.vis.timeline .labelset .vlabel .inner{display:inline-block;padding:5px}.vis.timeline .labelset .vlabel .inner.hidden{padding:0}.vis.timeline .itemset{position:relative;padding:0;margin:0;box-sizing:border-box}.vis.timeline .itemset .background,.vis.timeline .itemset .foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis.timeline .axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis.timeline .foreground .group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis.timeline .foreground .group:last-child{border-bottom:none}.vis.timeline .item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block;padding:5px}.vis.timeline .item.selected{border-color:#FFC200;background-color:#FFF785;z-index:2}.vis.timeline .editable .item.selected{cursor:move}.vis.timeline .item.point.selected{background-color:#FFF785}.vis.timeline .item.box{text-align:center;border-style:solid;border-radius:2px}.vis.timeline .item.point{background:0 0}.vis.timeline .item.dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis.timeline .item.range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis.timeline .item.background{overflow:hidden;border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis.timeline .item.range .content{position:relative;display:inline-block;max-width:100%;overflow:hidden}.vis.timeline .item.background .content{position:absolute;display:inline-block;overflow:hidden;max-width:100%;margin:5px}.vis.timeline .item.line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis.timeline .item .content{white-space:nowrap;overflow:hidden}.vis.timeline .item .delete{background:url(img/timeline/delete.png) top center no-repeat;position:absolute;width:24px;height:24px;top:0;right:-24px;cursor:pointer}.vis.timeline .item.range .drag-left{position:absolute;width:24px;height:100%;top:0;left:-4px;cursor:w-resize}.vis.timeline .item.range .drag-right{position:absolute;width:24px;height:100%;top:0;right:-4px;cursor:e-resize}.vis.timeline .timeaxis{position:relative;overflow:hidden}.vis.timeline .timeaxis.foreground{top:0;left:0;width:100%}.vis.timeline .timeaxis.background{position:absolute;top:0;left:0;width:100%;height:100%}.vis.timeline .timeaxis .text{position:absolute;color:#4d4d4d;padding:3px;white-space:nowrap}.vis.timeline .timeaxis .text.measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis.timeline .timeaxis .grid.vertical{position:absolute;border-left:1px solid}.vis.timeline .timeaxis .grid.minor{border-color:#e5e5e5}.vis.timeline .timeaxis .grid.major{border-color:#bfbfbf}.vis.timeline .currenttime{background-color:#FF7F6E;width:2px;z-index:1}.vis.timeline .customtime{background-color:#6E94FF;width:2px;cursor:move;z-index:1}.vis.timeline .vispanel.background.horizontal .grid.horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis.timeline .vispanel.background.horizontal .grid.minor{border-color:#e5e5e5}.vis.timeline .vispanel.background.horizontal .grid.major{border-color:#bfbfbf}.vis.timeline .dataaxis .yAxis.major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis.timeline .dataaxis .yAxis.major.measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis.timeline .dataaxis .yAxis.minor.measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis.timeline .dataaxis .yAxis.title.measure{padding:0;margin:0;visibility:hidden;width:auto}.vis.timeline .dataaxis .yAxis.title.left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis.timeline .dataaxis .yAxis.title.right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis.timeline .legend{background-color:rgba(247,252,255,.65);padding:5px;border-color:#b3b3b3;border-style:solid;border-width:1px;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis.timeline .legendText{white-space:nowrap;display:inline-block}.vis.timeline .graphGroup0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis.timeline .graphGroup1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis.timeline .graphGroup2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis.timeline .graphGroup3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis.timeline .graphGroup4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis.timeline .graphGroup5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis.timeline .graphGroup6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis.timeline .graphGroup7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis.timeline .graphGroup8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis.timeline .graphGroup9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis.timeline .fill{fill-opacity:.1;stroke:none}.vis.timeline .bar{fill-opacity:.5;stroke-width:1px}.vis.timeline .point{stroke-width:2px;fill-opacity:1}.vis.timeline .legendBackground{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis.timeline .outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis.timeline .iconFill{fill-opacity:.3;stroke:none}div.network-manipulationDiv{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0%,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0);position:absolute;left:0;top:0;width:100%;height:30px}div.network-manipulation-editMode{position:absolute;left:0;top:0;height:30px;margin-top:20px}div.network-manipulation-closeDiv{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.network-manipulation-closeDiv:hover{opacity:.6}span.network-manipulationUI{font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin:-14px 0 0 10px;vertical-align:middle;cursor:pointer;padding:0 8px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}span.network-manipulationUI:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}span.network-manipulationUI:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}span.network-manipulationUI.back{background-image:url(img/network/backIcon.png)}span.network-manipulationUI.none:hover{box-shadow:1px 1px 8px transparent;cursor:default}span.network-manipulationUI.none:active{box-shadow:1px 1px 8px transparent}span.network-manipulationUI.none{padding:0}span.network-manipulationUI.notification{margin:2px;font-weight:700}span.network-manipulationUI.add{background-image:url(img/network/addNodeIcon.png)}span.network-manipulationUI.edit{background-image:url(img/network/editIcon.png)}span.network-manipulationUI.edit.editmode{background-color:#fcfcfc;border-style:solid;border-width:1px;border-color:#ccc}span.network-manipulationUI.connect{background-image:url(img/network/connectIcon.png)}span.network-manipulationUI.delete{background-image:url(img/network/deleteIcon.png)}span.network-manipulationLabel{margin:0 0 0 23px;line-height:25px}div.network-seperatorLine{display:inline-block;width:1px;height:20px;background-color:#bdbdbd;margin:5px 7px 0 15px}div.network-navigation_wrapper{position:absolute;left:0;top:0;width:100%;height:100%}div.network-navigation{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.network-navigation:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.network-navigation:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.network-navigation.up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.network-navigation.down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.network-navigation.left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.network-navigation.right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.network-navigation.zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.network-navigation.zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.network-navigation.zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 7d7576d1..db80f79a 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.7.2-SNAPSHOT - * @date 2015-01-07 + * @date 2015-01-09 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -23,17 +23,17 @@ * 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(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return t[s].call(o.exports,o,o.exports,e),o.loaded=!0,o.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(31),BackgroundItem:i(32),BoxItem:i(33),PointItem:i(34),RangeItem:i(35)},Component:i(20),CurrentTime:i(21),CustomTime:i(22),DataAxis:i(23),GraphGroup:i(24),Group:i(25),BackgroundGroup:i(26),ItemSet:i(27),Legend:i(28),LineGraph:i(29),TimeAxis:i(30)}},e.Network=i(36),e.network={Edge:i(37),Groups:i(38),Images:i(39),Node:i(40),Popup:i(41),dotparser:i(42),gephiParser:i(43)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(44),e.hammer=i(45)},function(module,exports,__webpack_require__){var moment=__webpack_require__(44);exports.isNumber=function(t){return t instanceof Number||"number"==typeof t},exports.isString=function(t){return t instanceof String||"string"==typeof t},exports.isDate=function(t){if(t instanceof Date)return!0;if(exports.isString(t)){var e=ASPDateRegex.exec(t);if(e)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},exports.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},exports.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},exports.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var s=arguments[e];for(var o in s)s.hasOwnProperty(o)&&(t[o]=s[o])}return t},exports.selectiveExtend=function(t,e){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var i=2;ii;i++)if(t[i]!=e[i])return!1;return!0},exports.convert=function(t,e){var i;if(void 0===t)return void 0;if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw new Error("Type must be a string");switch(e){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(exports.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(moment.isMoment(t))return new Date(t.valueOf());if(exports.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])):moment(t).toDate();throw new Error("Cannot convert object of type "+exports.getType(t)+" to type Date");case"Moment":if(exports.isNumber(t))return moment(t);if(t instanceof Date)return moment(t.valueOf());if(moment.isMoment(t))return moment(t);if(exports.isString(t))return i=ASPDateRegex.exec(t),moment(i?Number(i[1]):t);throw new Error("Cannot convert object of type "+exports.getType(t)+" to type Date");case"ISODate":if(exports.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(moment.isMoment(t))return t.toDate().toISOString();if(exports.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+exports.getType(t)+" to type ISODate");case"ASPDate":if(exports.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(exports.isString(t)){i=ASPDateRegex.exec(t);var s;return s=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+exports.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+e+'"')}};var ASPDateRegex=/^\/?Date\((\-?\d+)/i;exports.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},exports.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left+window.pageXOffset},exports.getAbsoluteTop=function(t){return t.getBoundingClientRect().top+window.pageYOffset},exports.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},exports.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},exports.forEach=function(t,e){var i,s;if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},exports.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},exports.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},exports.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},exports.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},exports.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},exports.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},exports.option={},exports.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},exports.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},exports.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},exports.option.asSize=function(t,e){return"function"==typeof t&&(t=t()),exports.isString(t)?t:exports.isNumber(t)?t+"px":e||null},exports.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},exports.GiveDec=function(Hex){var Value;return Value="A"==Hex?10:"B"==Hex?11:"C"==Hex?12:"D"==Hex?13:"E"==Hex?14:"F"==Hex?15:eval(Hex)},exports.GiveHex=function(t){var e;return e=10==t?"A":11==t?"B":12==t?"C":13==t?"D":14==t?"E":15==t?"F":""+t},exports.parseColor=function(t){var e;if(exports.isString(t)){if(exports.isValidRGB(t)){var i=t.substr(4).substr(0,t.length-5).split(",");t=exports.RGBToHex(i[0],i[1],i[2])}if(exports.isValidHex(t)){var s=exports.hexToHSV(t),o={h:s.h,s:.45*s.s,v:Math.min(1,1.05*s.v)},n={h:s.h,s:Math.min(1,1.25*s.v),v:.6*s.v},r=exports.HSVToHex(n.h,n.h,n.v),a=exports.HSVToHex(o.h,o.s,o.v);e={background:t,border:r,highlight:{background:a,border:r},hover:{background:a,border:r}}}else e={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else e={},e.background=t.background||"white",e.border=t.border||e.background,exports.isString(t.highlight)?e.highlight={border:t.highlight,background:t.highlight}:(e.highlight={},e.highlight.background=t.highlight&&t.highlight.background||e.background,e.highlight.border=t.highlight&&t.highlight.border||e.border),exports.isString(t.hover)?e.hover={border:t.hover,background:t.hover}:(e.hover={},e.hover.background=t.hover&&t.hover.background||e.background,e.hover.border=t.hover&&t.hover.border||e.border);return e},exports.hexToRGB=function(t){t=t.replace("#","").toUpperCase();var e=exports.GiveDec(t.substring(0,1)),i=exports.GiveDec(t.substring(1,2)),s=exports.GiveDec(t.substring(2,3)),o=exports.GiveDec(t.substring(3,4)),n=exports.GiveDec(t.substring(4,5)),r=exports.GiveDec(t.substring(5,6)),a=16*e+i,h=16*s+o,i=16*n+r;return{r:a,g:h,b:i}},exports.RGBToHex=function(t,e,i){var s=exports.GiveHex(Math.floor(t/16)),o=exports.GiveHex(t%16),n=exports.GiveHex(Math.floor(e/16)),r=exports.GiveHex(e%16),a=exports.GiveHex(Math.floor(i/16)),h=exports.GiveHex(i%16),d=s+o+n+r+a+h;return"#"+d},exports.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));if(s==o)return{h:0,s:0,v:s};var n=t==s?e-i:i==s?t-e:i-t,r=t==s?3:i==s?1:5,a=60*(r-n/(o-s))/360,h=(o-s)/o,d=o;return{h:a,s:h,v:d}};var cssUtil={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),s=i[0].trim(),o=i[1].trim();e[s]=o}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};exports.addCssText=function(t,e){var i=cssUtil.split(t.style.cssText),s=cssUtil.split(e),o=exports.extend(i,s);t.style.cssText=cssUtil.join(o)},exports.removeCssText=function(t,e){var i=cssUtil.split(t.style.cssText),s=cssUtil.split(e);for(var o in s)s.hasOwnProperty(o)&&delete i[o];t.style.cssText=cssUtil.join(i)},exports.HSVToRGB=function(t,e,i){var s,o,n,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:s=i,o=l,n=h;break;case 1:s=d,o=i,n=h;break;case 2:s=h,o=i,n=l;break;case 3:s=h,o=d,n=i;break;case 4:s=l,o=h,n=i;break;case 5:s=i,o=h,n=d}return{r:Math.floor(255*s),g:Math.floor(255*o),b:Math.floor(255*n)}},exports.HSVToHex=function(t,e,i){var s=exports.HSVToRGB(t,e,i);return exports.RGBToHex(s.r,s.g,s.b)},exports.hexToHSV=function(t){var e=exports.hexToRGB(t);return exports.RGBToHSV(e.r,e.g,e.b)},exports.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},exports.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},exports.selectiveBridgeObject=function(t,e){if("object"==typeof e){for(var i=Object.create(e),s=0;s=r&&o>n;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===s?d[i]:d[i][s],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,n++}return-1},exports.binarySearchValue=function(t,e,i,s){for(var o,n,r,a,h=1e4,d=0,l=0,c=t.length-1;c>=l&&h>d;){if(a=Math.floor(.5*(c+l)),o=t[Math.max(0,a-1)][i],n=t[a][i],r=t[Math.min(t.length-1,a+1)][i],n==e)return a;if(e>o&&n>e)return"before"==s?Math.max(0,a-1):a;if(e>n&&r>e)return"before"==s?a:Math.min(t.length-1,a+1);e>n?l=a+1:c=a-1,d++}return-1},exports.easeInOutQuad=function(t,e,i,s){var o=i-e;return t/=s/2,1>t?o/2*t*t+e:(t--,-o/2*(t*(t-2)-1)+e)},exports.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(s)):(s=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(s)),e[t].used.push(s),s},e.getDOMElement=function(t,e,i,s){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==s?i.insertBefore(o,s):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==s?i.insertBefore(o,s):i.appendChild(o)),e[t].used.push(o),o},e.drawPoint=function(t,i,s,o,n){var r;return"circle"==s.options.drawPoints.style?(r=e.getSVGElement("circle",o,n),r.setAttributeNS(null,"cx",t),r.setAttributeNS(null,"cy",i),r.setAttributeNS(null,"r",.5*s.options.drawPoints.size)):(r=e.getSVGElement("rect",o,n),r.setAttributeNS(null,"x",t-.5*s.options.drawPoints.size),r.setAttributeNS(null,"y",i-.5*s.options.drawPoints.size),r.setAttributeNS(null,"width",s.options.drawPoints.size),r.setAttributeNS(null,"height",s.options.drawPoints.size)),void 0!==s.options.drawPoints.styles&&r.setAttributeNS(null,"style",s.group.options.drawPoints.styles),r.setAttributeNS(null,"class",s.className+" point"),r},e.drawBar=function(t,i,s,o,n,r,a){if(0!=o){0>o&&(o*=-1,i-=o);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*s),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",s),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",n)}}},function(t,e,i){function s(t,e){if(!t||Array.isArray(t)||o.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},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 s=this._options.type[i];this._type[i]="Date"==s||"ISODate"==s||"ASPDate"==s?"Date":s}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var o=i(1),n=i(5);s.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=n.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},s.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},s.prototype.subscribe=s.prototype.on,s.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},s.prototype.unsubscribe=s.prototype.off,s.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this._subscribers&&(s=s.concat(this._subscribers[t])),"*"in this._subscribers&&(s=s.concat(this._subscribers["*"]));for(var o=0;or;r++)i=n._addItem(t[r]),s.push(i);else if(o.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var c={},p=0,u=h.length;u>p;p++){var m=h[p];c[m]=t.getValue(d,p)}i=n._addItem(c),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},s.prototype.update=function(t,e){var i=[],s=[],n=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),s.push(e),n.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(o.isDataTable(t))for(var c=this._getColumnNames(t),p=0,u=t.getNumberOfRows();u>p;p++){for(var m={},f=0,g=c.length;g>f;f++){var v=c[f];m[v]=t.getValue(p,f)}h(m)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s,data:n},e),i.concat(s)},s.prototype.get=function(){var t,e,i,s,n=this,r=o.getType(arguments[0]);"String"==r||"Number"==r?(t=arguments[0],i=arguments[1],s=arguments[2]):"Array"==r?(e=arguments[0],i=arguments[1],s=arguments[2]):(i=arguments[0],s=arguments[1]);var a;if(i&&i.returnType){var h=["DataTable","Array","Object"];if(a=-1==h.indexOf(i.returnType)?"Array":i.returnType,s&&a!=o.getType(s))throw new Error('Type of parameter "data" ('+o.getType(s)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==a&&!o.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else a=s&&"DataTable"==o.getType(s)?"DataTable":"Array";var d,l,c,p,u=i&&i.type||this._options.type,m=i&&i.filter,f=[];if(void 0!=t)d=n._getItem(t,u),m&&!m(d)&&(d=null);else if(void 0!=e)for(c=0,p=e.length;p>c;c++)d=n._getItem(e[c],u),(!m||m(d))&&f.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=n._getItem(l,u),(!m||m(d))&&f.push(d));if(i&&i.order&&void 0==t&&this._sort(f,i.order),i&&i.fields){var g=i.fields;if(void 0!=t)d=this._filterFields(d,g);else for(c=0,p=f.length;p>c;c++)f[c]=this._filterFields(f[c],g)}if("DataTable"==a){var v=this._getColumnNames(s);if(void 0!=t)n._appendRow(s,v,d);else for(c=0;cc;c++)s.push(f[c]);return s}return f},s.prototype.getIds=function(t){var e,i,s,o,n,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){n=[];for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&n.push(o));for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&l.push(o[this._fieldId]));else if(h){n=[];for(s in r)r.hasOwnProperty(s)&&n.push(r[s]);for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=r[s],l.push(o[this._fieldId]));return l},s.prototype.getDataSet=function(){return this},s.prototype.forEach=function(t,e){var i,s,o=e&&e.filter,n=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],s=i[this._fieldId],t(i,s);else for(s in r)r.hasOwnProperty(s)&&(i=this._getItem(s,n),(!o||o(i))&&t(i,s))},s.prototype.map=function(t,e){var i,s=e&&e.filter,o=e&&e.type||this._options.type,n=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,o),(!s||s(i))&&n.push(t(i,a)));return e&&e.order&&this._sort(n,e.order),n},s.prototype._filterFields=function(t,e){var i={};for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);return i},s.prototype._sort=function(t,e){if(o.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],o=e[i];return s>o?1:o>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},s.prototype.remove=function(t,e){var i,s,o,n=[];if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)o=this._remove(t[i]),null!=o&&n.push(o);else o=this._remove(t),null!=o&&n.push(o);return n.length&&this._trigger("remove",{items:n},e),n},s.prototype._remove=function(t){if(o.isNumber(t)||o.isString(t)){if(this._data[t])return delete this._data[t],t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],e}return null},s.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this._trigger("remove",{items:e},t),e},s.prototype.max=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||r>s)&&(i=n,s=r)}return i},s.prototype.min=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||s>r)&&(i=n,s=r)}return i},s.prototype.distinct=function(t){var e,i=this._data,s=[],n=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(s[e]==d){l=!0;break}l||void 0===d||(s[r]=d,r++)}if(n)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},s.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),o=0,n=e.length;n>o;o++){var r=e[o];t.setValue(s,o,i[r])}},t.exports=s},function(t,e,i){function s(t,e){this._data=null,this._ids={},this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var o=i(1),n=i(3);s.prototype.setData=function(t){var e,i,s;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var o in this._ids)this._ids.hasOwnProperty(o)&&e.push(o);this._ids={},this._trigger("remove",{items:e})}if(this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),i=0,s=e.length;s>i;i++)o=e[i],this._ids[o]=!0;this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},s.prototype.get=function(){var t,e,i,s=this,n=o.getType(arguments[0]);"String"==n||"Number"==n||"Array"==n?(t=arguments[0],e=arguments[1],i=arguments[2]):(e=arguments[0],i=arguments[1]);var r=o.extend({},this._options,e);this._options.filter&&e&&e.filter&&(r.filter=function(t){return s._options.filter(t)&&e.filter(t)});var a=[];return void 0!=t&&a.push(t),a.push(r),a.push(i),this._data&&this._data.get.apply(this._data,a)},s.prototype.getIds=function(t){var e;if(this._data){var i,s=this._options.filter;i=t&&t.filter?s?function(e){return s(e)&&t.filter(e)}:t.filter:s,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},s.prototype.getDataSet=function(){for(var t=this;t instanceof s;)t=t._data;return t||null},s.prototype._onEvent=function(t,e,i){var s,o,n,r,a=e&&e.items,h=this._data,d=[],l=[],c=[];if(a&&h){switch(t){case"add":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r&&(this._ids[n]=!0,d.push(n));break;case"update":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r?this._ids[n]?l.push(n):(this._ids[n]=!0,d.push(n)):this._ids[n]&&(delete this._ids[n],c.push(n));break;case"remove":for(s=0,o=a.length;o>s;s++)n=a[s],this._ids[n]&&(delete this._ids[n],c.push(n))}d.length&&this._trigger("add",{items:d},i),l.length&&this._trigger("update",{items:l},i),c.length&&this._trigger("remove",{items:c},i)}},s.prototype.on=n.prototype.on,s.prototype.off=n.prototype.off,s.prototype._trigger=n.prototype._trigger,s.prototype.subscribe=s.prototype.on,s.prototype.unsubscribe=s.prototype.off,t.exports=s},function(t){function e(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}e.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},e.extend=function(t,i){var s=new e(i);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){s.flush()};var o=[{name:"flush",original:void 0}];if(i&&i.replace)for(var n=0;nthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},e.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=e},function(t,e,i){function s(t,e,i){if(!(this instanceof s))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 o=function(t){return t};this.xValueLabel=o,this.yValueLabel=o,this.zValueLabel=o,this.filterLabel="time",this.legendLabel="value",this.style=s.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 p,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 o(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function n(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(56),a=i(3),h=i(4),d=i(1),l=i(10),c=i(9),p=i(7),u=i(8),m=i(11),f=i(12);r(s.prototype),s.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!==s.STYLE.DOTCOLOR&&this.style!==s.STYLE.DOTSIZE&&this.style!==s.STYLE.BARCOLOR&&this.style!==s.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)}},s.prototype.getNumberOfRows=function(t){return t.length},s.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},s.prototype.getDistinctValues=function(t,e){for(var i=[],s=0;st[s][e]&&(i.min=t[s][e]),i.maxt;t++){var m=(t-p)/(u-p),g=240*m,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===s.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===s.STYLE.DOTCOLOR||this.style===s.STYLE.DOTSIZE){var y=5,b=new f(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",o.x,o.y),i.next()}for(g.lineWidth=1,s=void 0===this.defaultYStep,i=new f(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",o.x,o.y),i.next();for(g.lineWidth=1,s=void 0===this.defaultZStep,i=new f(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,p=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),p=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var w=this.xLabel;w.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(_)>0?this.yMin-c:this.yMax+c,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(w,o.x,o.y));var M=this.yLabel;M.length>0&&(d=.1/this.scale.x,n=Math.sin(_)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(M,o.x,o.y));var D=this.zLabel;D.length>0&&(h=30,n=Math.cos(_)>0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,o=this._convert3Dto2D(new l(n,r,a)),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(D,o.x-h,o.y))},s.prototype._hsv2rgb=function(t,e,i){var s,o,n,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:s=r,o=h,n=0;break;case 1:s=h,o=r,n=0;break;case 2:s=0,o=r,n=h;break;case 3:s=0,o=h,n=r;break;case 4:s=h,o=0,n=r;break;case 5:s=r,o=0,n=h;break;default:s=0,o=0,n=0}return"RGB("+parseInt(255*s)+","+parseInt(255*o)+","+parseInt(255*n)+")"},s.prototype._redrawDataGrid=function(){var t,e,i,o,n,r,a,h,d,c,p,u,m,f=this.frame.canvas,g=f.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(m=(t.point.z+e.point.z+i.point.z+o.point.z)/4,c=240*(1-(m-this.zMin)*this.scale.z/this.verticalRatio),p=1,this.showShadow?(u=Math.min(1+M.x/D/2,1),a=this._hsv2rgb(c,p,u),h=a):(u=1,a=this._hsv2rgb(c,p,u),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,g.lineWidth=d,g.fillStyle=a,g.strokeStyle=h,g.beginPath(),g.moveTo(t.screen.x,t.screen.y),g.lineTo(e.screen.x,e.screen.y),g.lineTo(o.screen.x,o.screen.y),g.lineTo(i.screen.x,i.screen.y),g.closePath(),g.fill(),g.stroke()}}else for(n=0;np&&(p=0);var u,m,f;this.style===s.STYLE.DOTCOLOR?(u=240*(1-(d.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)):this.style===s.STYLE.DOTSIZE?(m=this.colorDot,f=this.colorDotBorder):(u=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=f,i.fillStyle=m,i.beginPath(),i.arc(d.screen.x,d.screen.y,p,0,2*Math.PI,!0),i.fill(),i.stroke()}}},s.prototype._redrawDataBar=function(){var t,e,i,o,n=this.frame.canvas,r=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],s.lineWidth=1,s.strokeStyle="blue",s.beginPath(),s.moveTo(t.screen.x,t.screen.y)),e=1;e0&&s.stroke()}},s.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=o(t),this.startMouseY=n(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},s.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(o(t))-this.startMouseX,i=parseFloat(n(t))-this.startMouseY,s=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(s))0?1:0>t?-1:0}var s=e[0],o=e[1],n=e[2],r=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x)),a=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),h=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},s.prototype._dataPointFromXY=function(t,e){var i,o=100,n=null,r=null,a=null,h=new c(t,e);if(this.style===s.STYLE.BAR||this.style===s.STYLE.BARCOLOR||this.style===s.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var d=n.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var p=d[l],u=p.corners,m=[u[0].screen,u[1].screen,u[2].screen],f=[u[2].screen,u[3].screen,u[0].screen];if(this._insideTriangle(h,m)||this._insideTriangle(h,f))return n}}else for(i=0;ib)&&o>b&&(a=b,r=n)}}return r},s.prototype._showTooltip=function(t){var e,i,s;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,s=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",s=document.createElement("div"),s.style.position="absolute",s.style.height="0",s.style.width="0",s.style.border="5px solid #4d4d4d",s.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:s}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(s);var o=e.offsetWidth,n=e.offsetHeight,r=i.offsetHeight,a=s.offsetWidth,h=s.offsetHeight,d=t.screen.x-o/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-o),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-n+"px",s.style.left=t.screen.x-a/2+"px",s.style.top=t.screen.y-h/2+"px"},s.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=s},function(t,e,i){function s(){this.armLocation=new o,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new o,this.cameraRotation=new o(.5*Math.PI,0,0),this.calculateCameraOrientation()}var o=i(10);s.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},s.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()},s.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},s.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},s.prototype.getArmLength=function(){return this.armLength},s.prototype.getCameraLocation=function(){return this.cameraLocation},s.prototype.getCameraRotation=function(){return this.cameraRotation},s.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=s},function(t,e,i){function s(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 o=i(4);s.prototype.isLoaded=function(){return this.loaded},s.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},s.prototype.getLabel=function(){return this.graph.filterLabel},s.prototype.getColumn=function(){return this.column},s.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},s.prototype.getValues=function(){return this.values},s.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},s.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[]; +if(i=t.get(),0!=i.length){this.dataSet=t,this.dataTable=i,this._onChange=function(){e.setData(e.dataSet)},this.dataSet.on("*",this._onChange),this.colX="x",this.colY="y",this.colZ="z",this.colValue="style",this.colFilter="filter",i[0].hasOwnProperty("filter")&&void 0===this.dataFilter&&(this.dataFilter=new u(t,this.colFilter,this),this.dataFilter.setOnLoadCallback(function(){e.redraw()}));var o=this.style==s.STYLE.BAR||this.style==s.STYLE.BARCOLOR||this.style==s.STYLE.BARSIZE;if(o){if(void 0!==this.defaultXBarWidth)this.xBarWidth=this.defaultXBarWidth;else{var n=this.getDistinctValues(i,this.colX);this.xBarWidth=n[1]-n[0]||1}if(void 0!==this.defaultYBarWidth)this.yBarWidth=this.defaultYBarWidth;else{var r=this.getDistinctValues(i,this.colY);this.yBarWidth=r[1]-r[0]||1}}var d=this.getColumnRange(i,this.colX);o&&(d.min-=this.xBarWidth/2,d.max+=this.xBarWidth/2),this.xMin=void 0!==this.defaultXMin?this.defaultXMin:d.min,this.xMax=void 0!==this.defaultXMax?this.defaultXMax:d.max,this.xMax<=this.xMin&&(this.xMax=this.xMin+1),this.xStep=void 0!==this.defaultXStep?this.defaultXStep:(this.xMax-this.xMin)/5;var l=this.getColumnRange(i,this.colY);o&&(l.min-=this.yBarWidth/2,l.max+=this.yBarWidth/2),this.yMin=void 0!==this.defaultYMin?this.defaultYMin:l.min,this.yMax=void 0!==this.defaultYMax?this.defaultYMax:l.max,this.yMax<=this.yMin&&(this.yMax=this.yMin+1),this.yStep=void 0!==this.defaultYStep?this.defaultYStep:(this.yMax-this.yMin)/5;var c=this.getColumnRange(i,this.colZ);if(this.zMin=void 0!==this.defaultZMin?this.defaultZMin:c.min,this.zMax=void 0!==this.defaultZMax?this.defaultZMax:c.max,this.zMax<=this.zMin&&(this.zMax=this.zMin+1),this.zStep=void 0!==this.defaultZStep?this.defaultZStep:(this.zMax-this.zMin)/5,void 0!==this.colValue){var p=this.getColumnRange(i,this.colValue);this.valueMin=void 0!==this.defaultValueMin?this.defaultValueMin:p.min,this.valueMax=void 0!==this.defaultValueMax?this.defaultValueMax:p.max,this.valueMax<=this.valueMin&&(this.valueMax=this.valueMin+1)}this._setScale()}}},s.prototype._getDataPoints=function(t){var e,i,o,n,r,a,h=[];if(this.style===s.STYLE.GRID||this.style===s.STYLE.SURFACE){var d=[],c=[];for(o=0;ot;t++){var m=(t-p)/(u-p),g=240*m,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===s.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===s.STYLE.DOTCOLOR||this.style===s.STYLE.DOTSIZE){var y=5,b=new f(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",o.x,o.y),i.next()}for(g.lineWidth=1,s=void 0===this.defaultYStep,i=new f(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",o.x,o.y),i.next();for(g.lineWidth=1,s=void 0===this.defaultZStep,i=new f(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,p=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),p=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var w=this.xLabel;w.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(_)>0?this.yMin-c:this.yMax+c,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(w,o.x,o.y));var D=this.yLabel;D.length>0&&(d=.1/this.scale.x,n=Math.sin(_)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(D,o.x,o.y));var M=this.zLabel;M.length>0&&(h=30,n=Math.cos(_)>0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,o=this._convert3Dto2D(new l(n,r,a)),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(M,o.x-h,o.y))},s.prototype._hsv2rgb=function(t,e,i){var s,o,n,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:s=r,o=h,n=0;break;case 1:s=h,o=r,n=0;break;case 2:s=0,o=r,n=h;break;case 3:s=0,o=h,n=r;break;case 4:s=h,o=0,n=r;break;case 5:s=r,o=0,n=h;break;default:s=0,o=0,n=0}return"RGB("+parseInt(255*s)+","+parseInt(255*o)+","+parseInt(255*n)+")"},s.prototype._redrawDataGrid=function(){var t,e,i,o,n,r,a,h,d,c,p,u,m,f=this.frame.canvas,g=f.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(m=(t.point.z+e.point.z+i.point.z+o.point.z)/4,c=240*(1-(m-this.zMin)*this.scale.z/this.verticalRatio),p=1,this.showShadow?(u=Math.min(1+D.x/M/2,1),a=this._hsv2rgb(c,p,u),h=a):(u=1,a=this._hsv2rgb(c,p,u),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,g.lineWidth=d,g.fillStyle=a,g.strokeStyle=h,g.beginPath(),g.moveTo(t.screen.x,t.screen.y),g.lineTo(e.screen.x,e.screen.y),g.lineTo(o.screen.x,o.screen.y),g.lineTo(i.screen.x,i.screen.y),g.closePath(),g.fill(),g.stroke()}}else for(n=0;np&&(p=0);var u,m,f;this.style===s.STYLE.DOTCOLOR?(u=240*(1-(d.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)):this.style===s.STYLE.DOTSIZE?(m=this.colorDot,f=this.colorDotBorder):(u=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=f,i.fillStyle=m,i.beginPath(),i.arc(d.screen.x,d.screen.y,p,0,2*Math.PI,!0),i.fill(),i.stroke()}}},s.prototype._redrawDataBar=function(){var t,e,i,o,n=this.frame.canvas,r=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],s.lineWidth=1,s.strokeStyle="blue",s.beginPath(),s.moveTo(t.screen.x,t.screen.y)),e=1;e0&&s.stroke()}},s.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=o(t),this.startMouseY=n(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},s.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(o(t))-this.startMouseX,i=parseFloat(n(t))-this.startMouseY,s=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(s))0?1:0>t?-1:0}var s=e[0],o=e[1],n=e[2],r=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x)),a=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),h=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},s.prototype._dataPointFromXY=function(t,e){var i,o=100,n=null,r=null,a=null,h=new c(t,e);if(this.style===s.STYLE.BAR||this.style===s.STYLE.BARCOLOR||this.style===s.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var d=n.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var p=d[l],u=p.corners,m=[u[0].screen,u[1].screen,u[2].screen],f=[u[2].screen,u[3].screen,u[0].screen];if(this._insideTriangle(h,m)||this._insideTriangle(h,f))return n}}else for(i=0;ib)&&o>b&&(a=b,r=n)}}return r},s.prototype._showTooltip=function(t){var e,i,s;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,s=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",s=document.createElement("div"),s.style.position="absolute",s.style.height="0",s.style.width="0",s.style.border="5px solid #4d4d4d",s.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:s}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(s);var o=e.offsetWidth,n=e.offsetHeight,r=i.offsetHeight,a=s.offsetWidth,h=s.offsetHeight,d=t.screen.x-o/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-o),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-n+"px",s.style.left=t.screen.x-a/2+"px",s.style.top=t.screen.y-h/2+"px"},s.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=s},function(t,e,i){function s(){this.armLocation=new o,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new o,this.cameraRotation=new o(.5*Math.PI,0,0),this.calculateCameraOrientation()}var o=i(10);s.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},s.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()},s.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},s.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},s.prototype.getArmLength=function(){return this.armLength},s.prototype.getCameraLocation=function(){return this.cameraLocation},s.prototype.getCameraRotation=function(){return this.cameraRotation},s.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=s},function(t,e,i){function s(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 o=i(4);s.prototype.isLoaded=function(){return this.loaded},s.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},s.prototype.getLabel=function(){return this.graph.filterLabel},s.prototype.getColumn=function(){return this.column},s.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},s.prototype.getValues=function(){return this.values},s.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},s.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 s=new o(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(s),this.dataPoints[t]=e}return e},s.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},s.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},s.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},s.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},s.prototype.setIndex=function(t){if(!(ts&&(s=0),s>this.values.length-1&&(s=this.values.length-1),s},s.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,s=i+3;return s},s.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,s=this.leftToIndex(i);this.setIndex(s),o.preventDefault()},s.prototype._onMouseUp=function(){this.frame.style.cursor="auto",o.removeEventListener(document,"mousemove",this.onmousemove),o.removeEventListener(document,"mouseup",this.onmouseup),o.preventDefault()},t.exports=s},function(t){function e(t,e,i,s){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,s)}e.prototype.setRange=function(t,e,i,s){this._start=t?t:0,this._end=e?e:0,this.setStep(i,s)},e.prototype.setStep=function(t,i){void 0===t||0>=t||(void 0!==i&&(this.prettyStep=i),this._step=this.prettyStep===!0?e.calculatePrettyStep(t):t)},e.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),s=2*Math.pow(10,Math.round(e(t/2))),o=5*Math.pow(10,Math.round(e(t/5))),n=i;return Math.abs(s-t)<=Math.abs(n-t)&&(n=s),Math.abs(o-t)<=Math.abs(n-t)&&(n=o),0>=n&&(n=1),n},e.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},e.prototype.getStep=function(){return this._step},e.prototype.start=function(){this._current=this._start-this._start%this._step},e.prototype.next=function(){this._current+=this._step},e.prototype.end=function(){return this._current>this._end},t.exports=e},function(t,e,i){function s(t,e,i,r){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var h=r;r=i,i=h}var u=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.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:{snap:null,toScreen:u._toScreen.bind(u),toGlobalScreen:u._toGlobalScreen.bind(u),toTime:u._toTime.bind(u),toGlobalTime:u._toGlobalTime.bind(u)}},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.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,r&&this.setOptions(r),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(27);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var s=this._getDataRange();var o=void 0!=this.options.start?this.options.start:s.start,a=void 0!=this.options.end?this.options.end:s.end;this.setWindow(o,a,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},s.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],s=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),o=null,n=null;if(s.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===o||o>e)&&(o=e),(null===n||i>n)&&(n=i)}),null!==o&&null!==n){var r=(o+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-o)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},s.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var s=t.min("start");e=s?o.convert(s.start,"Date").valueOf():null;var n=t.max("start");n&&(i=o.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?o.convert(r.end,"Date").valueOf():Math.max(i,o.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},t.exports=s},function(t,e,i){function s(t,e,i,s){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=s;s=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.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:{snap:null,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.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,s&&this.setOptions(s),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(29);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var s=void 0!=this.options.start?this.options.start:null,o=void 0!=this.options.end?this.options.end:null;this.setWindow(s,o,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},s.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},s.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},s.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 s=0;sr?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},t.exports=s},function(t,e,i){var s=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var p=0,u=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(o.dayOfYear()),d.year(o.year()),d.subtract(7,"days"),l.dayOfYear(o.dayOfYear()),l.year(o.year()),l.subtract(7-p,"days"),u.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(o.date()),d.month(o.month()),d.year(o.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),u.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(o.month()),d.year(o.year()),d.subtract(1,"months"),l.month(o.month()),l.year(o.year()),l.subtract(1,"months"),l.add(p,"months"),u.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(o.year()),d.subtract(1,"years"),l.year(o.year()),l.subtract(1,"years"),l.add(p,"years"),u.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;u>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],s=0;s=e[s].start&&e[o].end<=e[s].end?e[o].remove=!0:e[o].start>=e[s].start&&e[o].start<=e[s].end?(e[s].end=e[o].end,e[o].remove=!0):e[o].end>=e[s].start&&e[o].end<=e[s].end&&(e[s].start=e[o].start,e[o].remove=!0));for(var s=0;s=r&&a>o){i=!0;break}}if(1==i&&o=e&&i>r&&(s+=r-n)}return s},e.correctTimeForHidden=function(t,i,o){return o=s(o).toDate().valueOf(),o-=e.getHiddenDurationBefore(t,i,o)},e.getHiddenDurationBefore=function(t,e,i){var o=0;i=s(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(o+=a-r)}return o},e.getAccumulatedHiddenDuration=function(t,e,i){for(var s=0,o=0,n=e.start,r=0;r=e.start&&h=i)break;s+=h-a}}return s},e.snapAwayFromHidden=function(t,i,s,o){var n=e.isHidden(i,t);return 1==n.hidden?0>s?1==o?n.startDate-(n.endDate-i)-1:n.startDate-1:1==o?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=s&&o>t)return{hidden:!0,startDate:s,endDate:o}}return{hidden:!1,startDate:s,endDate:o}}},function(t){function e(t,e,i,s,o,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,s,o)}e.prototype.setRange=function(t,e,i,s,o){this._start=void 0===o.min?t:o.min,this._end=void 0===o.max?e:o.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,s),this.setFirst(o)},e.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,s=1.2*i,o=t*(s/e),n=Math.round(Math.log(s)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=o){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},e.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},e.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},e.prototype.hasNext=function(){return this.current>=this.marginStart},e.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},e.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},e.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;s--){if("0"!=i[s]){if("."==i[s]||","==i[s]){i=i.slice(0,s);break}break}i=i.slice(0,s)}}else{var o="",n=i.indexOf("e");if(-1!=n&&(o=i.slice(n),i=i.slice(0,n)),n=Math.max(i.indexOf(","),i.indexOf(".")),-1===n?(0!==t&&(i+="."),n=i.length+t):0!==t&&(n+=t+1),n>i.length)for(var r=n-i.length;r>0;r--)i+="0";else i=i.slice(0,n);i+=o}return i},e.prototype.snap=function(){},e.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=e},function(t,e,i){function s(t,e){var i=h().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("dragstart",this._onDragStart.bind(this)),this.body.emitter.on("drag",this._onDrag.bind(this)),this.body.emitter.on("dragend",this._onDragEnd.bind(this)),this.body.emitter.on("hold",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("DOMMouseScroll",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 o(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.pageX-r.getAbsoluteLeft(e),y:t.pageY-r.getAbsoluteTop(e)}}var r=i(1),a=i(47),h=i(44),d=i(20),l=i(15);s.prototype=new d,s.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)}},s.prototype.setRange=function(t,e,i){var s=void 0!=t?r.convert(t,"Date").valueOf():null,o=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var n=this,a=this.start,h=this.end,d="number"==typeof i?i:500,c=(new Date).valueOf(),p=!1,u=function(){if(!n.props.touch.dragging){var t=(new Date).valueOf(),e=t-c,i=e>d,f=i||null===s?s:r.easeInOutQuad(e,a,s,d),g=i||null===o?o:r.easeInOutQuad(e,h,o,d);m=n._applyRange(f,g),l.updateHiddenDates(n.body,n.options.hiddenDates),p=p||m,m&&n.body.emitter.emit("rangechange",{start:new Date(n.start),end:new Date(n.end)}),i?p&&n.body.emitter.emit("rangechanged",{start:new Date(n.start),end:new Date(n.end)}):n.animateTimer=setTimeout(u,20)}};return u()}var m=this._applyRange(s,o);if(l.updateHiddenDates(this.body,this.options.hiddenDates),m){var f={start:new Date(this.start),end:new Date(this.end)};this.body.emitter.emit("rangechange",f),this.body.emitter.emit("rangechanged",f)}},s.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},s.prototype._applyRange=function(t,e){var i,s=null!=t?r.convert(t,"Date").valueOf():this.start,o=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(o)||null===o)throw new Error('Invalid end "'+e+'"');if(s>o&&(o=s),null!==a&&a>s&&(i=a-s,s+=i,o+=i,null!=n&&o>n&&(o=n)),null!==n&&o>n&&(i=o-n,s-=i,o-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>o-s&&(this.end-this.start===h?(s=this.start,o=this.end):(i=h-(o-s),s-=i/2,o+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),o-s>d&&(this.end-this.start===d?(s=this.start,o=this.end):(i=o-s-d,s+=i/2,o-=i/2))}var l=this.start!=s||this.end!=o;return s>=this.start&&s<=this.end||o>=this.start&&o<=this.end||this.start>=s&&this.start<=o||this.end>=s&&this.end<=o||this.body.emitter.emit("checkRangedItems"),this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t,e){return s.conversion(this.start,this.end,t,e)},s.conversion=function(t,e,i,s){return void 0===s&&(s=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-s)}:{offset:0,scale:1}},s.prototype._onDragStart=function(){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"))},s.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;o(e);var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY;i-=this.deltaDifference;var s=this.props.touch.end-this.props.touch.start,n=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);s-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*s,h=this.props.touch.start+a,d=this.props.touch.end+a,c=l.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=l.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(c!=h||p!=d)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end)})}},s.prototype._onDragEnd=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end)}))},s.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 s=a.fakeGesture(this,t),o=n(s.center,this.body.dom.center),r=this._pointerToDate(o);this.zoom(i,r,e)}t.preventDefault()}},s.prototype._onTouch=function(){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},s.prototype._onHold=function(){this.props.touch.allowDragging=!1},s.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable&&(this.props.touch.allowDragging=!1,t.gesture.touches.length>1)){this.props.touch.center||(this.props.touch.center=n(t.gesture.center,this.body.dom.center));var e=1/(t.gesture.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=s-o,a=i-o+(this.props.touch.start-(i-o))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=1-e>0?!1:!0,this.endToFront=e-1>0?!1:!0;var d=l.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=l.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(d!=a||c!=h)&&(this.props.touch.start=d,this.props.touch.end=c,this.scaleOffset=1-t.gesture.scale,a=d,h=c),this.setRange(a,h),this.startToFront=!1,this.endToFront=!0}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var s=this.body.domProps.center.height;return e=this.conversion(s),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=s-o,r=e-o+(this.start-(e-o))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=l.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),d=l.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||d!=a)&&(r=h,a=d),this.setRange(r,a),this.startToFront=!1,this.endToFront=!0},s.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},s.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,o=this.end-i;this.setRange(s,o)},t.exports=s},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},e.stack=function(t,i,s){var o,n;if(s)for(o=0,n=t.length;n>o;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];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 s,o,n;for(s=0,o=t.length;o>s;s++)if(void 0!==t[s].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-s.vertical+ie.top}},function(t,e,i){function s(t,e,i,o){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=o,void 0===o&&(this.hiddenDates=[]),this.format=s.FORMAT}var o=i(44),n=i(15),r=i(1);s.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:""}},s.prototype.setFormat=function(t){var e=r.deepExtend({},s.FORMAT);this.format=r.deepExtend(e,t)},s.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)},s.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},s.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)}},s.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},s.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&&(this.step=e),this.autoScale=!1},s.prototype.setAutoScale=function(t){this.autoScale=t},s.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,o=36e5,n=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*s>t&&(this.scale="day",this.step=5),2*s>t&&(this.scale="day",this.step=2),s>t&&(this.scale="day",this.step=1),s/2>t&&(this.scale="weekday",this.step=1),4*o>t&&(this.scale="hour",this.step=4),o>t&&(this.scale="hour",this.step=1),15*n>t&&(this.scale="minute",this.step=15),10*n>t&&(this.scale="minute",this.step=10),5*n>t&&(this.scale="minute",this.step=5),n>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},s.prototype.snap=function(t){var e=new Date(t.valueOf());if("year"==this.scale){var i=e.getFullYear()+Math.round(e.getMonth()/12);e.setFullYear(Math.round(i/this.step)*this.step),e.setMonth(0),e.setDate(0),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("month"==this.scale)e.getDate()>15?(e.setDate(1),e.setMonth(e.getMonth()+1)):e.setDate(1),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);else if("day"==this.scale){switch(this.step){case 5:case 2:e.setHours(24*Math.round(e.getHours()/24));break;default:e.setHours(12*Math.round(e.getHours()/12))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("weekday"==this.scale){switch(this.step){case 5:case 2:e.setHours(12*Math.round(e.getHours()/12));break;default:e.setHours(6*Math.round(e.getHours()/6))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("hour"==this.scale){switch(this.step){case 4:e.setMinutes(60*Math.round(e.getMinutes()/60));break;default:e.setMinutes(30*Math.round(e.getMinutes()/30))}e.setSeconds(0),e.setMilliseconds(0)}else if("minute"==this.scale){switch(this.step){case 15:case 10:e.setMinutes(5*Math.round(e.getMinutes()/5)),e.setSeconds(0);break;case 5:e.setSeconds(60*Math.round(e.getSeconds()/60));break;default:e.setSeconds(30*Math.round(e.getSeconds()/30))}e.setMilliseconds(0)}else if("second"==this.scale)switch(this.step){case 15:case 10:e.setSeconds(5*Math.round(e.getSeconds()/5)),e.setMilliseconds(0);break;case 5:e.setMilliseconds(1e3*Math.round(e.getMilliseconds()/1e3));break;default:e.setMilliseconds(500*Math.round(e.getMilliseconds()/500))}else if("millisecond"==this.scale){var s=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/s)*s)}return e},s.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}},s.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},t.exports=s},function(t){function e(){this.options=null,this.props=null}e.prototype.setOptions=function(t){t&&util.extend(this.options,t)},e.prototype.redraw=function(){return!1},e.prototype.destroy=function(){},e.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=e},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=o.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var o=i(1),n=i(20),r=i(44),a=i(48);s.prototype=new n,s.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},s.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},s.prototype.setOptions=function(t){t&&o.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},s.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),s=this.options.locales[this.options.locale],o=s.current+" "+s.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=i+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},s.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},s.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},s.prototype.setCurrentTime=function(t){var e=o.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},s.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en"},this.options=n.extend({},this.defaultOptions),this.customTime=new Date,this.eventParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(20),a=i(44),h=i(48);s.prototype=new r,s.prototype.setOptions=function(t){t&&n.selectiveExtend(["showCustomTime","locale","locales"],this.options,t)},s.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=o(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},s.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},s.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],s=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=e+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},s.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},s.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},s.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},s.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.body.util.toScreen(this.eventParams.customTime)+e,s=this.body.util.toTime(i);this.setCustomTime(s),this.body.emitter.emit("timechange",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},s.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=s},function(t,e,i){function s(t,e,i,s){this.id=o.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,showMinorLines:!0,showMajorLines:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=o.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var o=i(1),n=i(2),r=i(20),a=i(16);s.prototype=new r,s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.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","showMajorLines","showMinorLines","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];o.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},s.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)},s.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,s=4,o=s+.5*i;t="left"==this.options.orientation?s:this.width-e-s;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,o,this.svgElements,this.svg,e,i),o+=i+s));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},s.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},s.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},s.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},s.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px"):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px"),t=this._redrawLabels(),1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n)}return t},s.prototype._redrawLabels=function(){n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var t=this.options.orientation,e=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,i=new a(this.range.start,this.range.end,e,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=i;var s=(this.dom.frame.offsetHeight-i.deadSpace*(this.dom.frame.offsetHeight/i.marginRange))/((i.marginRange-i.deadSpace)/i.step);this.stepPixels=s;var o=this.height/s,r=0;if(0==this.master){s=this.stepPixelsForced,r=Math.round(this.dom.frame.offsetHeight/s-o);for(var h=0;.5*r>h;h++)i.previous();if(o=this.height/s,-1!=this.zeroCrossing&&1==this.options.alignZeros){var d=i.marginEnd/i.step-this.zeroCrossing;if(d>0)for(var h=0;d>h;h++)i.next();else if(0>d)for(var h=0;-d>h;h++)i.previous()}}else o+=.25;this.valueAtZero=i.marginEnd;var l,c=0,p=1;void 0!==this.options.format[t]&&(l=this.options.format[t].decimals),this.maxLabelSize=0;for(var u=0;p=0&&this._redrawLabel(u-2,i.getCurrent(l),t,"yAxis major",this.props.majorCharHeight),1==this.options.showMajorLines&&this._redrawLine(u,t,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):1==this.options.showMinorLines&&this._redrawLine(u,t,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==i.current&&(this.zeroCrossing=p),p++}this.conversionFactor=0==this.master?u/(this.valueAtZero-i.current):this.dom.frame.offsetHeight/i.marginRange;var f=0;void 0!==this.options.title[t]&&void 0!==this.options.title[t].text&&(f=this.props.titleCharHeight);var g=1==this.options.icons?Math.max(this.options.iconWidth,f)+this.options.labelOffsetX+15:f+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-g&&1==this.options.visible?(this.width=this.maxLabelSize+g,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+g),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),!1)},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,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*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSized;d++){var c=this.visibleItems[d];c.repositionY(e)}return s},s.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var s=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(o.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(s.subgroups[t.data.subgroup].height=Math.max(s.subgroups[t.data.subgroup].height,t.height),s.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,o.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=t.axis+t.item.vertical;return e=Math.max(e,this.props.label.height)},s.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)},s.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 s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},s.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)}},s.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!o(n));r--)void 0===s[n.id]&&(s[n.id]=!0,i.push(n));for(r=t+1;rs;s++){var n=this.visibleItems[s];n.repositionY(e)}return i},s.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(3),a=i(4),h=i(20),d=i(25),l=i(26),c=i(33),p=i(34),u=i(35),m=i(32),f="__ungrouped__",g="__background__";s.prototype=new h,s.types={background:m,box:c,range:u,point:p},s.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new l(g,null,this);r.show(),this.groups[g]=r,this.hammer=o(this.body.dom.centerContainer,{preventDefault:!0}),this.hammer.on("touch",this._onTouch.bind(this)),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("hold",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},s.prototype.setOptions=function(t){if(t){var e=["type","align","orientation","padding","stack","selectable","groupOrder","dataAttributes","template","hide"];n.selectiveExtend(e,this.options,t),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},s.prototype.markDirty=function(){this.groupIds=[],this.stackDirty=!0},s.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},s.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)},s.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)},s.prototype.setSelection=function(t){var e,i,s,o;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)s=this.selection[e],o=this.items[s],o&&o.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],o=this.items[s],o&&(this.selection.push(s),o.select())},s.prototype.getSelection=function(){return this.selection.concat([])},s.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),s=[];for(var o in this.groups)if(this.groups.hasOwnProperty(o))for(var n=this.groups[o],r=n.visibleItems,a=0;ae&&s.push(h.id)}return s},s.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},s.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,s=this.options,o=s.orientation,r=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,p=this._firstGroup(),u={item:t.item,axis:t.axis},m={item:t.item,axis:t.item.vertical/2},f=0,v=t.axis+t.item.vertical;return this.groups[g].redraw(e,m,c),n.forEach(this.groups,function(t){var i=t==p?u:m,s=t.redraw(e,i,c);r=s||r,f+=t.height}),f=Math.max(f,v),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==o?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},s.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[f];return i||null},s.prototype._updateUngrouped=function(){{var t,e,i=this.groups[f];this.groups[g]}if(this.groupsData){if(i){i.hide(),delete this.groups[f];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var s=this._getGroupId(t.data),o=this.groups[s];o&&o.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new d(n,r,this),this.groups[f]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},s.prototype.getLabelSet=function(){return this.dom.labelSet},s.prototype.setItems=function(t){var e,i=this,s=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(s&&(n.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,o)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},s.prototype.getItems=function(){return this.itemsData},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},s.prototype.getGroups=function(){return this.groupsData},s.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)})},s.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},s.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:f},s.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=e._getType(i),r=s.types[n];if(o&&(r&&o instanceof r?e._updateItem(o,i):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');o=new r(i,e.conversion,e.options),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},s.prototype._onAdd=s.prototype._onUpdate,s.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},s.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},s.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},s.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==f||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);n.extend(o,{height:null}),s=new d(t,i,e),e.groups[t]=s;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change",{queue:!0})},s.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})},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},s.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)}},s.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)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||o.length>0)&&this.body.emitter.emit("select",{items:a})}},s.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.body.util.snap||null,o=s.itemFromTarget(t);if(o){var r=e.itemsData.get(o.id);this.options.onUpdate(r,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var a=n.getAbsoluteLeft(this.dom.frame),h=t.gesture.center.pageX-a,d=this.body.util.toTime(h),l={start:i?i(d):d,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(h+this.props.width/5);l.end=i?i(c):c}l[this.itemsData._fieldId]=n.randomUUID();var p=s.groupFromTarget(t);p&&(l.group=p.groupId),this.options.onAdd(l,function(t){t&&e.itemsData.getDataSet().add(t)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=s.itemFromTarget(t);if(i){e=this.getSelection();var o=t.gesture.touches[0]&&t.gesture.touches[0].shiftKey||!1;if(o){e.push(i.id);var n=s._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},s._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}},s.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},s.groupFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-group"))return e["timeline-group"];e=e.parentNode}return null},s.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},t.exports=s},function(t,e,i){function s(t,e,i,s){this.body=t,this.defaultOptions={enabled:!0,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-left"}},this.side=i,this.options=o.extend({},this.defaultOptions),this.linegraphOptions=s,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.setOptions(e)}var o=i(1),n=i(2),r=i(20);s.prototype=new r,s.prototype.clear=function(){this.groups={},this.amountOfGroups=0},s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="legendText",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},s.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];o.selectiveDeepExtend(e,this.options,t)},s.prototype.redraw=function(){var t=0;for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||t++);if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var i=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+i+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());var s="";for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||(s+=this.groups[e].content+"
"));this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},s.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,s=this.options.iconSize,o=.75*this.options.iconSize,r=e+.5*o+3;this.svg.style.width=s+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,s,o),r+=o+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=s},function(t,e,i){function s(t,e){this.id=o.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,showMinorLines:!0,showMajorLines:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=o.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.autoSizeSVG=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var o=i(1),n=i(2),r=i(3),a=i(4),h=i(20),d=i(23),l=i(24),c=i(28),p=i(52),u="__ungrouped__";s.prototype=new h,s.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},s.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?this.autoSizeSVG=!0:void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;eu&&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;rs){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var s=0;s0){var n=1,r=o.length,a=this.body.util.toGlobalScreen(o[o.length-1].x)-this.body.util.toGlobalScreen(o[0].x),h=r/a;n=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=n)d.push(o[l]);e[t[s]]=d}}},s.prototype._getYRanges=function(t,e,i){var s,o,n,r,a=[],h=[];if(t.length>0){for(n=0;n0&&(o=this.groups[t[n]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(o.getYRange(s)):h=h.concat(o.getYRange(s)):i[t[n]]=o.getYRange(s,t[n]));p.getStackedBarYRange(a,i,t,"__barchartLeft","left"),p.getStackedBarYRange(h,i,t,"__barchartRight","right")}},s.prototype._updateYAxis=function(t,e){var i,s,o=!1,n=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=s>d?s:d):(r=!0,h=h>i?i:h,l=s>l?s:l));1==n&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return o=this._toggleAxisVisiblity(n,this.yAxisLeft)||o,o=this._toggleAxisVisiblity(r,this.yAxisRight)||o,1==r&&1==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,o=this.yAxisLeft.redraw()||o,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,o=this.yAxisRight.redraw()||o):o=this.yAxisRight.redraw()||o,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),o},s.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},s.prototype._convertXcoordinates=function(t){for(var e,i,s=[],o=this.body.util.toScreen,n=0;nc;){c++;var p=h.getCurrent(),u=this.body.util.toScreen(p),m=h.isMajor();this.options.showMinorLabels&&this._repaintMinorText(u,h.getLabelMinor(),t),m&&this.options.showMajorLabels?(u>0&&(void 0==l&&(l=u),this._repaintMajorText(u,h.getLabelMajor(),t)),1==this.options.showMajorLines&&this._repaintMajorLine(u,t)):1==this.options.showMinorLines&&this._repaintMinorLine(u,t),h.next()}if(this.options.showMajorLabels){var f=this.body.util.toTime(0),g=h.getLabelMajor(f),v=g.length*(this.props.majorCharWidth||10)+10;(void 0==l||l>v)&&this._repaintMajorText(0,g,t)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i){var s=this.dom.redundant.minorTexts.shift();if(!s){var o=document.createTextNode("");s=document.createElement("div"),s.appendChild(o),s.className="text minor",this.dom.foreground.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?this.props.majorLabelHeight+"px":"0",s.style.left=t+"px"},s.prototype._repaintMajorText=function(t,e,i){var s=this.dom.redundant.majorTexts.shift();if(!s){var o=document.createTextNode(e);s=document.createElement("div"),s.className="text major",s.appendChild(o),this.dom.foreground.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?"0":this.props.minorLabelHeight+"px",s.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e){var i=this.dom.redundant.minorLines.shift();i||(i=document.createElement("div"),i.className="grid vertical minor",this.dom.background.appendChild(i)),this.dom.minorLines.push(i);var s=this.props;i.style.top="top"==e?s.majorLabelHeight+"px":this.body.domProps.top.height+"px",i.style.height=s.minorLineHeight+"px",i.style.left=t-s.minorLineWidth/2+"px"},s.prototype._repaintMajorLine=function(t,e){var i=this.dom.redundant.majorLines.shift();i||(i=document.createElement("DIV"),i.className="grid vertical major",this.dom.background.appendChild(i)),this.dom.majorLines.push(i);var s=this.props;i.style.top="top"==e?"0":this.body.domProps.top.height+"px",i.style.left=t-s.majorLineWidth/2+"px",i.style.height=s.majorLineHeight+"px"},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},s.prototype.snap=function(t){return this.step.snap(t)},t.exports=s},function(t,e,i){function s(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 o=i(45),n=i(1);s.prototype.stack=!0,s.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setData=function(t){this.data=t,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},s.prototype.isVisible=function(){return!1},s.prototype.show=function(){return!1},s.prototype.hide=function(){return!1},s.prototype.redraw=function(){},s.prototype.repositionX=function(){},s.prototype.repositionY=function(){},s.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",o(i,{preventDefault:!0}).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)},s.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},s.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},s.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},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},s.prototype.show=r.prototype.show,s.prototype.hide=r.prototype.hide,s.prototype.repositionX=r.prototype.repositionX,s.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var s=this.data.subgroup,o=this.parent.subgroups,r=o[s].index;if(1==e){i=this.parent.subgroups[s].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in o)o.hasOwnProperty(h)&&1==o[h].visible&&o[h].indexr&&(a+=o[h].height+t.item.vertical);i=this.parent.subgroups[s].height+t.item.vertical,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=s},function(t,e,i){function s(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);o.call(this,t,e,i)}{var o=i(31);i(1)}s.prototype=new o(null,null,null),s.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},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},s.prototype.show=function(){this.displayed||this.redraw()},s.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},s.prototype.repositionX=function(){var t,e,i=this.parent.width,s=this.conversion.toScreen(this.data.start),o=this.conversion.toScreen(this.data.end);-i>s&&(s=-i),o>2*i&&(o=2*i);var n=Math.max(o-s,1);switch(this.overflow?(this.left=s,this.width=n+this.props.content.width,e=this.props.content.width):(this.left=s,this.width=n,e=Math.min(o-s-2*this.options.padding,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(n-e-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((n-e-2*this.options.padding)/2,0)+"px";break;default:t=this.overflow?o>0?Math.max(-s,0):-e:0>s?Math.min(-s,o-s-e-2*this.options.padding):0,this.dom.content.style.left=t+"px"}},s.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},s.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),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)},s.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),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=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=.5*this.renderTimestep,this.maxPhysicsTicksPerRender=3,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null},this.defaultOptions={nodes:{mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from"},configurePhysics:!1,physics:{barnesHut:{enabled:!0,thetaInverted:2,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{enabled:!1,centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},damping:null,centralGravity:null,springLength:null,springConstant:null},clustering:{enabled:!1,initialMaxNodes:100,clusterThreshold:500,reduceToNodes:300,chainThreshold:.4,clusterEdgeThreshold:20,sectorThreshold:100,screenSizeThreshold:.2,fontSizeMultiplier:4,maxFontSize:1e3,forceAmplification:.1,distanceAmplification:.1,edgeGrowth:20,nodeScaling:{width:1,height:1,radius:1},maxNodeSizeIncrements:600,activeAreaBoxSize:80,clusterLevelDifference:2},navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02}},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150,nodeSpacing:100,direction:"UD",layout:"hubsize"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},maxVelocity:30,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,zoomExtentOnStabilize:!0,locale:"en",locales:_,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0},this.constants=a.extend({},this.defaultOptions),this.pixelRatio=1,this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers={existing:[],_new:[]},this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0;var o=this;this.groups=new u,this.images=new m,this.images.setOnloadCallback(function(){o._redraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadPhysicsSystem(),this._create(),this._loadSectorSystem(),this._loadClusterSystem(),this._loadSelectionSystem(),this._loadHierarchySystem(),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1),this.setOptions(i),this.freezeSimulation=!1,this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.calculationNodes={},this.calculationNodeIndices=[],this.nodeIndices=[],this.nodes={},this.edges={},this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.pointerPosition={x:0,y:0},this.areaCenter={},this.scale=1,this.previousScale=this.scale,this.nodesData=null,this.edgesData=null,this.nodesListeners={add:function(t,e){o._addNodes(e.items),o.start()},update:function(t,e){o._updateNodes(e.items,e.data),o.start()},remove:function(t,e){o._removeNodes(e.items),o.start()}},this.edgesListeners={add:function(t,e){o._addEdges(e.items),o.start()},update:function(t,e){o._updateEdges(e.items),o.start()},remove:function(t,e){o._removeEdges(e.items),o.start()}},this.moving=!0,this.timer=void 0,this.setData(e,this.constants.clustering.enabled||this.constants.hierarchicalLayout.enabled),this.initializing=!1,1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent(void 0,!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(56),n=i(45),r=i(58),a=i(1),h=i(47),d=i(3),l=i(4),c=i(42),p=i(43),u=i(38),m=i(39),f=i(40),g=i(37),v=i(41),y=i(54),b=i(55),_=i(49);i(50),o(s.prototype),s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;et.boundingBox.left&&(s=t.boundingBox.left),ot.boundingBox.bottom&&(e=t.boundingBox.bottom),i=this.constants.clustering.initialMaxNodes?49.07548/(n+142.05338)+91444e-8:12.662/(n+7.4147)+.0964822:1==this.constants.clustering.enabled&&n>=this.constants.clustering.initialMaxNodes?77.5271985/(n+187.266146)+476710517e-13:30.5062972/(n+19.93597763)+.08413486;var r=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);s*=r}else{var a=1.1*Math.abs(o.maxX-o.minX),h=1.1*Math.abs(o.maxY-o.minY),d=this.frame.canvas.clientWidth/a,l=this.frame.canvas.clientHeight/h;s=l>=d?d:l}s>1&&(s=1);var c=this._findCenter(o);if(0==i){var p={position:c,scale:s,animation:t};this.moveTo(p),this.moving=!0,this.start()}else c.x*=s,c.y*=s,c.x-=.5*this.frame.canvas.clientWidth,c.y-=.5*this.frame.canvas.clientHeight,this._setScale(s),this._setTranslation(-c.x,-c.y)},s.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},s.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=c.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var s=p.parseGephi(t.gephi);return void this.setData(s)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this._putDataInSector(),0==e&&(1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):this.constants.stabilize&&this._stabilize(),this.start()),this.initializing=!1},s.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","clustering","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(a.selectiveNotDeepExtend(i,this.constants,t),a.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),a.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),t.physics&&(a.mergeOptions(this.constants.physics,t.physics,"barnesHut"),a.mergeOptions(this.constants.physics,t.physics,"repulsion"),t.physics.hierarchicalRepulsion)){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),a.mergeOptions(this.constants,t,"smoothCurves"),a.mergeOptions(this.constants,t,"hierarchicalLayout"),a.mergeOptions(this.constants,t,"clustering"),a.mergeOptions(this.constants,t,"navigation"),a.mergeOptions(this.constants,t,"keyboard"),a.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(a.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover)),this.constants.edges.inheritColor=!1),t.edges.fontColor||void 0!==t.edges.color&&(a.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var s=a.parseColor(t.nodes.color); -this.constants.nodes.color.background=s.background,this.constants.nodes.color.border=s.border,this.constants.nodes.color.highlight.background=s.highlight.background,this.constants.nodes.color.highlight.border=s.highlight.border,this.constants.nodes.color.hover.background=s.hover.background,this.constants.nodes.color.hover.border=s.hover.border}if(t.groups)for(var o in t.groups)if(t.groups.hasOwnProperty(o)){var n=t.groups[o];this.groups.add(o,n)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=a.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new b(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.')}this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._createKeyBinds(),this.setSize(this.constants.width,this.constants.height),this.moving=!0,this.start()},s.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}var i=this;this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",i._onTap.bind(i)),this.hammer.on("doubletap",i._onDoubleTap.bind(i)),this.hammer.on("hold",i._onHold.bind(i)),this.hammer.on("pinch",i._onPinch.bind(i)),this.hammer.on("touch",i._onTouch.bind(i)),this.hammer.on("dragstart",i._onDragStart.bind(i)),this.hammer.on("drag",i._onDrag.bind(i)),this.hammer.on("dragend",i._onDragEnd.bind(i)),this.hammer.on("mousewheel",i._onMouseWheel.bind(i)),this.hammer.on("DOMMouseScroll",i._onMouseWheel.bind(i)),this.hammer.on("mousemove",i._onMouseMoveTitle.bind(i)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",i._onRelease.bind(i)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=r(),this.keycharm.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.keycharm.bind("up",this._moveUp.bind(t),"keydown"),this.keycharm.bind("up",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("down",this._moveDown.bind(t),"keydown"),this.keycharm.bind("down",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("left",this._moveLeft.bind(t),"keydown"),this.keycharm.bind("left",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("right",this._moveRight.bind(t),"keydown"),this.keycharm.bind("right",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("=",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("=",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num+",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("num+",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("num-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("[",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("[",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("]",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("]",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pageup",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("pageup",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.keycharm.bind("esc",this._createManipulatorBar.bind(t)),this.keycharm.bind("delete",this._deleteSelected.bind(t)))},s.prototype.destroy=function(){for(this.start=function(){},this.redraw=function(){},this.timer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off();this.frame.hasChildNodes();)this.frame.removeChild(this.frame.firstChild);for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild)},s.prototype._getPointer=function(t){return{x:t.pageX-a.getAbsoluteLeft(this.frame.canvas),y:t.pageY-a.getAbsoluteTop(this.frame.canvas)}},s.prototype._onTouch=function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this.touchTime=(new Date).valueOf(),this._handleTouch(this.drag.pointer))},s.prototype._onDragStart=function(){this._handleDragStart()},s.prototype._handleDragStart=function(){var t=this.drag,e=this._getNodeAt(t.pointer);if(t.dragging=!0,t.selection=[],t.translation=this._getTranslation(),t.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1),this.emit("dragStart",{nodeIds:this.getSelection().nodes});for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],o={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,t.selection.push(o)}}},s.prototype._onDrag=function(t){this._handleOnDrag(t)},s.prototype._handleOnDrag=function(t){if(!this.drag.pinched){this.releaseNode();var e=this._getPointer(t.gesture.center),i=this,s=this.drag,o=s.selection;if(o&&o.length&&1==this.constants.dragNodes){var n=e.x-s.pointer.x,r=e.y-s.pointer.y;o.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+n)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.dragNetwork){var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw()}}},s.prototype._onDragEnd=function(t){this._handleDragEnd(t)},s.prototype._handleDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.length?(t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed}),this.moving=!0,this.start()):this._redraw(),0==this.draggingNodes?this.emit("dragEnd",{nodeIds:[]}):this.emit("dragEnd",{nodeIds:this.getSelection().nodes})},s.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},s.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},s.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},s.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},s.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},s.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=null;void 0!==this.drag&&1==this.drag.dragging&&(s=this.DOMtoCanvas(this.drag.pointer));var o=this._getTranslation(),n=t/i,r=(1-n)*e.x+o.x*n,a=(1-n)*e.y+o.y*n;if(this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(r,a),this.updateClustersDefault(),null!=s){var h=this.canvasToDOM(s);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}return this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},s.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var o=h.fakeGesture(this,t),n=this._getPointer(o.center);this._zoom(i,n)}t.preventDefault()},s.prototype._onMouseMoveTitle=function(t){var e=h.fakeGesture(this,t),i=this._getPointer(e.center);this.popupObj&&this._checkHidePopup(i);var s=this,o=function(){s._checkShowPopup(i)};if(this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(o,this.constants.tooltip.delay)),1==this.constants.hover){for(var n in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(n)&&(this.hoverObj.edges[n].hover=!1,delete this.hoverObj.edges[n]);var r=this._getNodeAt(i);null==r&&(r=this._getEdgeAt(i)),null!=r&&this._hoverObject(r);for(var a in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(a)&&(r instanceof f&&r.id!=a||r instanceof g||null==r)&&(this._blurObject(this.hoverObj.nodes[a]),delete this.hoverObj.nodes[a]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj;if(void 0==this.popupObj){var o=this.nodes;for(e in o)if(o.hasOwnProperty(e)){var n=o[e];if(void 0!==n.getTitle()&&n.isOverlappingWith(i)){this.popupObj=n;break}}}if(void 0===this.popupObj){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!==a.getTitle()&&a.isOverlappingWith(i)){this.popupObj=a;break}}}if(this.popupObj){if(this.popupObj!=s){var h=this;h.popup||(h.popup=new v(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupObj.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},s.prototype.setSize=function(t,e){var i=!1,s=this.frame.canvas.width,o=this.frame.canvas.height;t!=this.constants.width||e!=this.constants.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.constants.width=t,this.constants.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),1==i&&this.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:s*this.pixelRatio,oldHeight:o*this.pixelRatio})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(Array.isArray(t))this.nodesData=new d,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new d}if(e&&a.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;a.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},s.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var o=this.nodesData.get(e),n=new f(o,this.images,this.groups,this.constants);if(this.nodes[e]=n,!(0!=n.xFixed&&0!=n.yFixed||null!==n.x&&null!==n.y)){var r=1*t.length+10,a=2*Math.PI*Math.random();0==n.xFixed&&(n.x=r*Math.cos(a)),0==n.yFixed&&(n.y=r*Math.sin(a))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},s.prototype._updateNodes=function(t,e){for(var i=this.nodes,s=0,o=t.length;o>s;s++){var n=t[s],r=i[n],a=e[s];r?r.setProperties(a,this.constants):(r=new f(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i)},s.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++){var o=t[i];delete e[o]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},s.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof d||t instanceof l)this.edgesData=t;else if(Array.isArray(t))this.edgesData=new d,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new d}if(e&&a.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;a.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},s.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n];r&&r.disconnect();var a=i.get(n,{showInternalIds:!0});e[n]=new g(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},s.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new g(r,this,this.constants),this.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},s.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++){var o=t[i],n=e[o];n&&(null!=n.via&&delete this.sectors.support.nodes[n.via.id],n.disconnect(),delete e[o])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},s.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[],e[t].dynamicEdges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},s.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0;for(e in t)if(t.hasOwnProperty(e)){var o=t[e].getValue();void 0!==o&&(i=void 0===i?o:Math.min(o,i),s=void 0===s?o:Math.max(o,s))}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s)},s.prototype.redraw=function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},s.prototype._redraw=function(t){var e=this.frame.canvas.getContext("2d");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.frame.canvas.width*this.pixelRatio,s=this.frame.canvas.height*this.pixelRatio;e.clearRect(0,0,i,s),e.save(),e.translate(this.translation.x,this.translation.y),e.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth*this.pixelRatio),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight*this.pixelRatio)},1!=t&&(this._doInAllSectors("_drawAllSectorNodes",e),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",e)),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",e,!1),1!=t&&1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",e),e.restore(),1==t&&e.clearRect(0,0,i,s)},s.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},s.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},s.prototype._setScale=function(t){this.scale=t},s.prototype._getScale=function(){return this.scale},s.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},s.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},s.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},s.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},s.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},s.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},s.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var o in i)i.hasOwnProperty(o)&&(i[o].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[o].isSelected()?s.push(o):(i[o].inArea()||e)&&i[o].draw(t));for(var n=0,r=s.length;r>n;n++)(i[s[n]].inArea()||e)&&i[s[n]].draw(t)},s.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},s.prototype._drawControlNodes=function(t){var e=this.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},s.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var o=this.constants.minVelocity/Math.max(this.scale,.05);return o>.5*this.constants.maxVelocity?!0:this._isMoving(o)}return!1},s.prototype._physicsTick=function(){if(!this.freezeSimulation&&1==this.moving){var t=!1,e=!1;this._doInAllActiveSectors("_initializeForceCalculation");var i=this._doInAllActiveSectors("_discreteStepNodes");1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&(e=this._doInSupportSector("_discreteStepNodes"));for(var s=0;s0){var i=this,s={iterations:i.stabilizationIterations};i.stabilizationIterations=0,i.startedStabilization=!1,setTimeout(function(){i.emit("stabilized",s)},0)}},s.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},s.prototype.toggleFreeze=function(){0==this.freezeSimulation?this.freezeSimulation=!0:(this.freezeSimulation=!1,this.start())},s.prototype._configureSmoothCurves=function(t){if(void 0===t&&(t=!0),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes();for(var e in this.sectors.support.nodes)this.sectors.support.nodes.hasOwnProperty(e)&&void 0===this.edges[this.sectors.support.nodes[e].parentEdgeId]&&delete this.sectors.support.nodes[e]}else{this.sectors.support.nodes={};for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.edges[i].via=null)}this._updateCalculationNodes(),t||(this.moving=!0,this.start())},s.prototype._createBezierNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic)for(var t in this.edges)if(this.edges.hasOwnProperty(t)){var e=this.edges[t];if(null==e.via){var i="edgeId:".concat(e.id);this.sectors.support.nodes[i]=new f({id:i,mass:1,shape:"circle",image:"",internalMultiplier:1},{},{},this.constants),e.via=this.sectors.support.nodes[i],e.via.parentEdgeId=e.id,e.positionBezierNode()}}},s.prototype._initializeMixinLoaders=function(){for(var t in y)y.hasOwnProperty(t)&&(s.prototype[t]=y[t])},s.prototype.storePosition=function(){console.log("storePosition is depricated: use .storePositions() from now on."),this.storePositions()},s.prototype.storePositions=function(){var t=[];for(var e in this.nodes)if(this.nodes.hasOwnProperty(e)){var i=this.nodes[e],s=!this.nodes.xFixed,o=!this.nodes.yFixed;(this.nodesData._data[e].x!=Math.round(i.x)||this.nodesData._data[e].y!=Math.round(i.y))&&t.push({id:e,x:Math.round(i.x),y:Math.round(i.y),allowedToMoveX:s,allowedToMoveY:o})}this.nodesData.update(t)},s.prototype.getPositions=function(t){var e={};if(void 0!==t){if(1==Array.isArray(t)){for(var i=0;i=1&&(this.easingTime=0,this._redraw=null!=this.lockedOnNodeId?this._lockedRedraw:this._classicRedraw,this.emit("animationFinished"))},s.prototype._classicRedraw=function(){},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.setScale=function(){return this._setScale()},s.prototype.getScale=function(){return this._getScale()},s.prototype.getCenterCoordinates=function(){return this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight})},t.exports=s},function(t,e,i){function s(t,e,i){if(!e)throw"No network provided";var s=["edges","physics"],n=o.selectiveBridgeObject(s,i);this.options=n.edges,this.physics=n.physics,this.options.smoothCurves=i.smoothCurves,this.network=e,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.title=void 0,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.value=void 0,this.selected=!1,this.hover=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.dirtyLabel=!0,this.from=null,this.to=null,this.via=null,this.fromBackup=null,this.toBackup=null,this.originalFromId=[],this.originalToId=[],this.connected=!1,this.widthFixed=!1,this.lengthFixed=!1,this.setProperties(t),this.controlNodesEnabled=!1,this.controlNodes={from:null,to:null,positions:{}},this.connectedNode=null}var o=i(1),n=i(40);s.prototype.setProperties=function(t){if(t){var e=["style","fontSize","fontFace","fontColor","fontFill","width","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","inheritColor"];switch(o.selectiveDeepExtend(e,this.options,t),void 0!==t.from&&(this.fromId=t.from),void 0!==t.to&&(this.toId=t.to),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.dirtyLabel=!0),void 0!==t.title&&(this.title=t.title),void 0!==t.value&&(this.value=t.value),void 0!==t.length&&(this.physics.springLength=t.length),void 0!==t.color&&(this.options.inheritColor=!1,o.isString(t.color)?(this.options.color.color=t.color,this.options.color.highlight=t.color):(void 0!==t.color.color&&(this.options.color.color=t.color.color),void 0!==t.color.highlight&&(this.options.color.highlight=t.color.highlight),void 0!==t.color.hover&&(this.options.color.hover=t.color.hover))),this.connect(),this.widthFixed=this.widthFixed||void 0!==t.width,this.lengthFixed=this.lengthFixed||void 0!==t.length,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.options.style){case"line":this.draw=this._drawLine;break;case"arrow":this.draw=this._drawArrow;break;case"arrow-center":this.draw=this._drawArrowCenter;break;case"dash-line":this.draw=this._drawDashLine;break;default:this.draw=this._drawLine}}},s.prototype.connect=function(){this.disconnect(),this.from=this.network.nodes[this.fromId]||null,this.to=this.network.nodes[this.toId]||null,this.connected=this.from&&this.to,this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this))},s.prototype.disconnect=function(){this.from&&(this.from.detachEdge(this),this.from=null),this.to&&(this.to.detachEdge(this),this.to=null),this.connected=!1},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.getValue=function(){return this.value},s.prototype.setValueRange=function(t,e){if(!this.widthFixed&&void 0!==this.value){var i=(this.options.widthMax-this.options.widthMin)/(e-t);this.options.width=(this.value-t)*i+this.options.widthMin,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier}},s.prototype.draw=function(){throw"Method draw not initialized in edge"},s.prototype.isOverlappingWith=function(t){if(this.connected){var e=10,i=this.from.x,s=this.from.y,o=this.to.x,n=this.to.y,r=t.left,a=t.top,h=this._getDistanceToEdge(i,s,o,n,r,a);return e>h}return!1},s.prototype._getColor=function(){var t=this.options.color;return"to"==this.options.inheritColor?t={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:this.to.options.color.border}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(t={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:this.from.options.color.border}),1==this.selected?t.highlight:1==this.hover?t.hover:t.color},s.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var s=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),o=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:s,y:o}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},s.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},s.prototype._getViaCoordinates=function(){var t=null,e=null,i=this.options.smoothCurves.roundness,s=this.options.smoothCurves.type,o=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y); -return"discrete"==s||"diagonalCross"==s?Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==s&&(t=i*n>o?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*o,e=this.from.y-i*o):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o)),"discrete"==s&&(e=i*o>n?this.from.y:e)):"straightCross"==s?Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,p=i-h/2,u=s-c/2;this.labelDimensions={top:u,left:p,width:h,height:c,yLine:o}}void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)),t.fillStyle=this.options.fontColor||"black",t.textAlign="center",t.textBaseline="middle",o=this.labelDimensions.yLine;for(var d=0;r>d;d++)t.fillText(n[d],i,o),o+=a}},s.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.mozDash||void 0!==t.setLineDash){var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],"undefined"!=typeof t.setLineDash?(t.setLineDash(i),t.lineDashOffset=0):(t.mozDash=i,t.mozDashOffset=0),e=this._line(t),"undefined"!=typeof t.setLineDash?(t.setLineDash([0]),t.lineDashOffset=0):(t.mozDash=[0],t.mozDashOffset=0)}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var s;if(1==this.options.smoothCurves.enabled&&null!=e){var o=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));s={x:o,y:n}}else s=this._pointOnLine(.5);this._label(t,this.label,s.x,s.y)}},s.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},s.prototype._pointOnCircle=function(t,e,i,s){var o=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}},s.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),s=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var s=.2*Math.PI,o=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var s,o=this.to.x-this.from.x,n=this.to.y-this.from.y,r=Math.sqrt(o*o+n*n),a=this.from.distanceToBorder(t,e+Math.PI),h=(r-a)/r,d=h*this.from.x+(1-h)*this.to.x,l=h*this.from.y+(1-h)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?s=this.via:1==this.options.smoothCurves.enabled&&(s=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=s.x&&(e=Math.atan2(this.to.y-s.y,this.to.x-s.x),o=this.to.x-s.x,n=this.to.y-s.y,r=Math.sqrt(o*o+n*n));var c,p,u=this.to.distanceToBorder(t,e),m=(r-u)/r;if(1==this.options.smoothCurves.enabled&&null!=s.x?(c=(1-m)*s.x+m*this.to.x,p=(1-m)*s.y+m*this.to.y):(c=(1-m)*this.from.x+m*this.to.x,p=(1-m)*this.from.y+m*this.to.y),t.beginPath(),t.moveTo(d,l),1==this.options.smoothCurves.enabled&&null!=s.x?t.quadraticCurveTo(s.x,s.y,c,p):t.lineTo(c,p),t.stroke(),i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(c,p,e,i),t.fill(),t.stroke(),this.label){var f;if(1==this.options.smoothCurves.enabled&&null!=s){var g=.5*(.5*(this.from.x+s.x)+.5*(this.to.x+s.x)),v=.5*(.5*(this.from.y+s.y)+.5*(this.to.y+s.y));f={x:g,y:v}}else f=this._pointOnLine(.5);this._label(t,this.label,f.x,f.y)}}else{var y,b,_,x=this.from,w=.25*Math.max(100,this.physics.springLength);x.width||x.resize(t),x.width>x.height?(y=x.x+.5*x.width,b=x.y-w,_={x:y,y:x.y,angle:.9*Math.PI}):(y=x.x+w,b=x.y-.5*x.height,_={x:x.x,y:b,angle:.6*Math.PI}),t.beginPath(),t.arc(y,b,w,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(_.x,_.y,_.angle,i),t.fill(),t.stroke(),this.label&&(f=this._pointOnCircle(y,b,w,.5),this._label(t,this.label,f.x,f.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,p,u,m,f,g,v=1e9;for(c=0;10>c;c++)p=.1*c,u=Math.pow(1-p,2)*t+2*p*(1-p)*a+Math.pow(p,2)*i,m=Math.pow(1-p,2)*e+2*p*(1-p)*h+Math.pow(p,2)*s,c>0&&(l=this._getDistanceToLine(f,g,u,m,o,n),v=v>l?l:v),f=u,g=m;r=v}else r=this._getDistanceToLine(t,e,i,s,o,n);else{var u,m,y,b,_=.25*this.physics.springLength,x=this.from;x.width>x.height?(u=x.x+.5*x.width,m=x.y-_):(u=x.x+_,m=x.y-.5*x.height),y=u-o,b=m-n,r=Math.abs(Math.sqrt(y*y+b*b)-_)}return this.labelDimensions.lefto&&this.labelDimensions.topn?0:r},s.prototype._getDistanceToLine=function(t,e,i,s,o,n){var r=i-t,a=s-e,h=r*r+a*a,d=((o-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,p=l-o,u=c-n;return Math.sqrt(p*p+u*u)},s.prototype.setScale=function(t){this.networkScaleInv=1/t},s.prototype.select=function(){this.selected=!0},s.prototype.unselect=function(){this.selected=!1},s.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):(this.via.x=0,this.via.y=0)},s.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),s={nodes:{group:"",radius:8},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s)}0==this.controlNodes.from.selected&&0==this.controlNodes.to.selected&&(this.controlNodes.positions=this.getControlNodePositions(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y,this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},s.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},s.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,s=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),o=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>s?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>o?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},s.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},s.prototype.getControlNodePositions=function(t){var e,i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n,h=a*this.from.x+(1-a)*this.to.x,d=a*this.from.y+(1-a)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?e=this.via:1==this.options.smoothCurves.enabled&&(e=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=e.x&&(i=Math.atan2(this.to.y-e.y,this.to.x-e.x),s=this.to.x-e.x,o=this.to.y-e.y,n=Math.sqrt(s*s+o*o));var l,c,p=this.to.distanceToBorder(t,i),u=(n-p)/n;return 1==this.options.smoothCurves.enabled&&null!=e.x?(l=(1-u)*e.x+u*this.to.x,c=(1-u)*e.y+u*this.to.y):(l=(1-u)*this.from.x+u*this.to.x,c=(1-u)*this.from.y+u*this.to.y),{from:{x:h,y:d},to:{x:l,y:c}}},t.exports=s},function(t,e,i){function s(){this.clear(),this.defaultIndex=0}i(1);s.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}}],s.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},s.prototype.get=function(t){var e=this.groups[t];if(void 0==e){var i=this.defaultIndex%s.DEFAULT.length;this.defaultIndex++,e={},e.color=s.DEFAULT[i],this.groups[t]=e}return e},s.prototype.add=function(t,e){return this.groups[t]=e,e},t.exports=s},function(t){function e(){this.images={},this.callback=void 0}e.prototype.setOnloadCallback=function(t){this.callback=t},e.prototype.load=function(t,e){var i=this.images[t];if(void 0==i){var s=this;i=new Image,this.images[t]=i,i.onload=function(){s.callback&&s.callback(this)},i.onerror=function(){this.src=e,s.callback&&s.callback(this)},i.src=t}return i},t.exports=e},function(t,e,i){function s(t,e,i,s){var n=o.selectiveBridgeObject(["nodes"],s);this.options=n.nodes,this.selected=!1,this.hover=!1,this.edges=[],this.dynamicEdges=[],this.reroutedEdges={},this.fontDrawThreshold=3,this.id=void 0,this.x=null,this.y=null,this.allowedToMoveX=!1,this.allowedToMoveY=!1,this.xFixed=!1,this.yFixed=!1,this.horizontalAlignLeft=!0,this.verticalAlignTop=!0,this.baseRadiusValue=s.nodes.radius,this.radiusFixed=!1,this.level=-1,this.preassignedLevel=!1,this.hierarchyEnumerated=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.boundingBox={top:0,left:0,right:0,bottom:0},this.imagelist=e,this.grouplist=i,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.damping=s.physics.damping,this.fixedData={x:null,y:null},this.setProperties(t,n),this.resetCluster(),this.dynamicEdgesLength=0,this.clusterSession=0,this.clusterSizeWidthFactor=s.clustering.nodeScaling.width,this.clusterSizeHeightFactor=s.clustering.nodeScaling.height,this.clusterSizeRadiusFactor=s.clustering.nodeScaling.radius,this.maxNodeSizeIncrements=s.clustering.maxNodeSizeIncrements,this.growthIndicator=0,this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var o=i(1);s.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},s.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),e=this.dynamicEdges.indexOf(t),-1!=e&&this.dynamicEdges.splice(e,1),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.setProperties=function(t,e){if(t){var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","group","mass"];if(o.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof this.options.group||"string"==typeof this.options.group&&""!=this.options.group){var s=this.grouplist.get(this.options.group);o.deepExtend(this.options,s),this.options.color=o.parseColor(this.options.color)}else void 0===t.color&&(this.options.color=e.nodes.color);if(void 0!==t.radius&&(this.baseRadiusValue=this.options.radius),void 0!==t.color&&(this.options.color=o.parseColor(t.color)),void 0!==this.options.image&&""!=this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage)}switch(void 0!==t.allowedToMoveX?(this.xFixed=!t.allowedToMoveX,this.allowedToMoveX=t.allowedToMoveX):void 0!==t.x&&0==this.allowedToMoveX&&(this.xFixed=!0),void 0!==t.allowedToMoveY?(this.yFixed=!t.allowedToMoveY,this.allowedToMoveY=t.allowedToMoveY):void 0!==t.y&&0==this.allowedToMoveY&&(this.yFixed=!0),this.radiusFixed=this.radiusFixed||void 0!==t.radius,"image"==this.options.shape&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},s.prototype.select=function(){this.selected=!0,this._reset()},s.prototype.unselect=function(){this.selected=!1,this._reset()},s.prototype.clearSizeCache=function(){this._reset()},s.prototype._reset=function(){this.width=void 0,this.height=void 0},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var s=this.width/2,o=this.height/2,n=Math.sin(e)*s,r=Math.cos(e)*o;return s*o/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},s.prototype._setForce=function(t,e){this.fx=t,this.fy=e},s.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},s.prototype.discreteStep=function(t){if(this.xFixed)this.fx=0,this.vx=0;else{var e=this.damping*this.vx,i=(this.fx-e)/this.options.mass;this.vx+=i*t,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var s=this.damping*this.vy,o=(this.fy-s)/this.options.mass;this.vy+=o*t,this.y+=this.vy*t}},s.prototype.discreteStepLimited=function(t,e){if(this.xFixed)this.fx=0,this.vx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.options.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.options.radius=(this.options.radiusMin+this.options.radiusMax)/2;else{var i=(this.options.radiusMax-this.options.radiusMin)/(e-t);this.options.radius=(this.value-t)*i+this.options.radiusMin}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.networkScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,e,void 0,"top"),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.options.radius),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},s.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(this.x,this.y,this.options.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},s.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._drawDot=function(t){this._drawShape(t,"circle")},s.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},s.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},s.prototype._drawSquare=function(t){this._drawShape(t,"square")},s.prototype._drawStar=function(t){this._drawShape(t,"star")},s.prototype._resizeShape=function(){if(!this.width){this.options.radius=this.baseRadiusValue;var t=2*this.options.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},s.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=this.options.borderWidth,o=this.options.borderWidthSelected||2*this.options.borderWidth,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t[e](this.x,this.y,this.options.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t[e](this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this.label&&(this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)) -},s.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height},s.prototype._label=function(t,e,i,s,o,n,r){if(e&&Number(this.options.fontSize)*this.networkScale>this.fontDrawThreshold){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;var a=e.split("\n"),h=a.length,d=Number(this.options.fontSize)+4,l=s+(1-h)/2*d;1==r&&(l=s+(1-h)/(2*d));for(var c=t.measureText(a[0]).width,p=1;h>p;p++){var u=t.measureText(a[p]).width;c=u>c?u:c}var m=this.options.fontSize*h,f=i-c/2,g=s-m/2;"top"==n&&(g+=.5*d),this.labelDimensions={top:g,left:f,width:c,height:m,yLine:l},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(f,g,c,m)),t.fillStyle=this.options.fontColor||"black",t.textAlign=o||"center",t.textBaseline=n||"middle";for(var p=0;h>p;p++)t.fillText(a[p],i,l),l+=d}},s.prototype.getTextSize=function(t){if(void 0!==this.label){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;for(var e=this.label.split("\n"),i=(Number(this.options.fontSize)+4)*e.length,s=0,o=0,n=e.length;n>o;o++)s=Math.max(s,t.measureText(e[o]).width);return{width:s,height:i}}return{width:0,height:0}},s.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.ys&&(n=s-e-this.padding),no&&(r=o-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){o=r.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=a(o.attr,t.node))),i=n.length-1;i>=0;i--){var h=n[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(o)&&h.nodes.push(o)}e.attr&&(o.attr=a(o.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,s,o){var n={from:e,to:i,type:s};return t.edge&&(n.attr=a({},t.edge)),n.attr=a(n.attr||{},o),n}function p(){for(L=S.NULL,k="";" "==E||" "==E||"\n"==E||"\r"==E;)o();do{var t=!1;if("#"==E){for(var e=O-1;" "==T.charAt(e)||" "==T.charAt(e);)e--;if("\n"==T.charAt(e)||""==T.charAt(e)){for(;""!=E&&"\n"!=E;)o();t=!0}}if("/"==E&&"/"==n()){for(;""!=E&&"\n"!=E;)o();t=!0}if("/"==E&&"*"==n()){for(;""!=E;){if("*"==E&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==E||" "==E||"\n"==E||"\r"==E;)o()}while(t);if(""==E)return void(L=S.DELIMITER);var i=E+n();if(C[i])return L=S.DELIMITER,k=i,o(),void o();if(C[E])return L=S.DELIMITER,k=E,void o();if(r(E)||"-"==E){for(k+=E,o();r(E);)k+=E,o();return"false"==k?k=!1:"true"==k?k=!0:isNaN(Number(k))||(k=Number(k)),void(L=S.IDENTIFIER)}if('"'==E){for(o();""!=E&&('"'!=E||'"'==E&&'"'==n());)k+=E,'"'==E&&o(),o();if('"'!=E)throw x('End of string " expected');return o(),void(L=S.IDENTIFIER)}for(L=S.UNKNOWN;""!=E;)k+=E,o();throw new SyntaxError('Syntax error in part "'+w(k,30)+'"')}function u(){var t={};if(s(),p(),"strict"==k&&(t.strict=!0,p()),("graph"==k||"digraph"==k)&&(t.type=k,p()),L==S.IDENTIFIER&&(t.id=k,p()),"{"!=k)throw x("Angle bracket { expected");if(p(),m(t),"}"!=k)throw x("Angle bracket } expected");if(p(),""!==k)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==k&&"}"!=k;)f(t),";"==k&&p()}function f(t){var e=g(t);if(e)return void b(t,e);var i=v(t);if(!i){if(L!=S.IDENTIFIER)throw x("Identifier expected");var s=k;if(p(),"="==k){if(p(),L!=S.IDENTIFIER)throw x("Identifier expected");t[s]=k,p()}else y(t,s)}}function g(t){var e=null;if("subgraph"==k&&(e={},e.type="subgraph",p(),L==S.IDENTIFIER&&(e.id=k,p())),"{"==k){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=k)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 v(t){return"node"==k?(p(),t.node=_(),"node"):"edge"==k?(p(),t.edge=_(),"edge"):"graph"==k?(p(),t.graph=_(),"graph"):null}function y(t,e){var i={id:e},s=_();s&&(i.attr=s),d(t,i),b(t,e)}function b(t,e){for(;"->"==k||"--"==k;){var i,s=k;p();var o=g(t);if(o)i=o;else{if(L!=S.IDENTIFIER)throw x("Identifier or subgraph expected");i=k,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==k;){for(p(),t={};""!==k&&"]"!=k;){if(L!=S.IDENTIFIER)throw x("Attribute name expected");var e=k;if(p(),"="!=k)throw x("Equal sign = expected");if(p(),L!=S.IDENTIFIER)throw x("Attribute value expected");var i=k;h(t,e,i),p(),","==k&&p()}if("]"!=k)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(k,30)+'" (char '+O+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function M(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t){var e=i(t),s={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),s.nodes.push(e)}),e.edges){var o=function(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=o(t);s.edges.push(e)}),M(e,i,function(e,i){var n=c(s,e.id,i.id,t.type,t.attr),r=o(n);s.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=o(t);s.edges.push(e)})})}return e.attr&&(s.options=e.attr),s}var S={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},C={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},T="",O=0,E="",k="",L=S.NULL,N=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],s=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var o=t.edges,n=t.nodes,r=0;r=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}return{start:e,end:i}},s.prototype.setWindow=function(t,e,i){var s=i&&void 0!==i.animate?i.animate:!0;if(1==arguments.length){var o=arguments[0];this.range.setRange(o.start,o.end,s)}else this.range.setRange(t,e,s)},s.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,s=r.convert(t,"Date").valueOf(),o=s-i/2,n=s+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(o,n,a)},s.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},s.prototype.redraw=function(){var t=!1,e=this.options,i=this.props,s=this.dom;if(s){h.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(s.root,"top"),r.removeClassName(s.root,"bottom")):(r.removeClassName(s.root,"top"),r.addClassName(s.root,"bottom")),s.root.style.maxHeight=r.option.asSize(e.maxHeight,""),s.root.style.minHeight=r.option.asSize(e.minHeight,""),s.root.style.width=r.option.asSize(e.width,""),i.border.left=(s.centerContainer.offsetWidth-s.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(s.centerContainer.offsetHeight-s.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var o=s.root.offsetHeight-s.root.clientHeight,n=s.root.offsetWidth-s.root.clientWidth;0===s.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===s.root.clientHeight&&(n=o),i.center.height=s.center.offsetHeight,i.left.height=s.left.offsetHeight,i.right.height=s.right.offsetHeight,i.top.height=s.top.clientHeight||-i.border.top,i.bottom.height=s.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom;s.root.style.height=r.option.asSize(e.height,d+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var l=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=s.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=s.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=s.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,s.background.style.height=i.background.height+"px",s.backgroundVertical.style.height=i.background.height+"px",s.backgroundHorizontal.style.height=i.centerContainer.height+"px",s.centerContainer.style.height=i.centerContainer.height+"px",s.leftContainer.style.height=i.leftContainer.height+"px",s.rightContainer.style.height=i.rightContainer.height+"px",s.background.style.width=i.background.width+"px",s.backgroundVertical.style.width=i.centerContainer.width+"px",s.backgroundHorizontal.style.width=i.background.width+"px",s.centerContainer.style.width=i.center.width+"px",s.top.style.width=i.top.width+"px",s.bottom.style.width=i.bottom.width+"px",s.background.style.left="0",s.background.style.top="0",s.backgroundVertical.style.left=i.left.width+i.border.left+"px",s.backgroundVertical.style.top="0",s.backgroundHorizontal.style.left="0",s.backgroundHorizontal.style.top=i.top.height+"px",s.centerContainer.style.left=i.left.width+"px",s.centerContainer.style.top=i.top.height+"px",s.leftContainer.style.left="0",s.leftContainer.style.top=i.top.height+"px",s.rightContainer.style.left=i.left.width+i.center.width+"px",s.rightContainer.style.top=i.top.height+"px",s.top.style.left=i.left.width+"px",s.top.style.top="0",s.bottom.style.left=i.left.width+"px",s.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"bottom"==e.orientation&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=p+"px",s.left.style.left="0",s.left.style.top=p+"px",s.right.style.left="0",s.right.style.top=p+"px";var u=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(s.shadowTop.style.visibility=u,s.shadowBottom.style.visibility=m,s.shadowTopLeft.style.visibility=u,s.shadowBottomLeft.style.visibility=m,s.shadowTopRight.style.visibility=u,s.shadowBottomRight.style.visibility=m,this.components.forEach(function(e){t=e.redraw()||t}),t){var f=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTops;s++){var o=s%2===0?1.3*i:.5*i;this.lineTo(t+o*Math.sin(2*s*Math.PI/10),e-o*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,o){var n=Math.PI/180;0>i-2*o&&(o=i/2),0>s-2*o&&(o=s/2),this.beginPath(),this.moveTo(t+o,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,270*n,360*n,!1),this.lineTo(t+i,e+s-o),this.arc(t+i-o,e+s-o,o,0,90*n,!1),this.lineTo(t+o,e+s),this.arc(t+o,e+s-o,o,90*n,180*n,!1),this.lineTo(t,e+o),this.arc(t+o,e+o,o,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var o=.5522848,n=i/2*o,r=s/2*o,a=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var o=1/3,n=i,r=s*o,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,p=t+n/2,u=e+r/2,m=e+(s-r/2),f=e+s;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,p+h,c,p,c),this.bezierCurveTo(p-h,c,t,u+d,t,u),this.bezierCurveTo(t,u-d,p-h,e,p,e),this.bezierCurveTo(p+h,e,l,u-d,l,u),this.lineTo(l,m),this.bezierCurveTo(l,m+d,p+h,f,p,f),this.bezierCurveTo(p-h,f,t,m+d,t,m),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var o=t-s*Math.cos(i),n=e-s*Math.sin(i),r=t-.9*s*Math.cos(i),a=e-.9*s*Math.sin(i),h=o+s/3*Math.cos(i+.5*Math.PI),d=n+s/3*Math.sin(i+.5*Math.PI),l=o+s/3*Math.cos(i-.5*Math.PI),c=n+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,o){o||(o=[10,5]),0==p&&(p=.001);var n=o.length;this.moveTo(t,e);for(var r=i-t,a=s-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var p=o[l++%n];p>d&&(p=d);var u=Math.sqrt(p*p/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[c?"lineTo":"moveTo"](t,e),d-=p,c=!c}})},function(t,e,i){function s(t,e){this.groupId=t,this.options=e}var o=i(2),n=i(53);s.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,s=0;st[s].y?t[s].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=o.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?s._catmullRom(t,e):s._linear(t),1==e.options.shaded.enabled){var d,l=o.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},s._catmullRomUniform=function(t){for(var e,i,s,o,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],s=t[l+1],o=d>l+2?t[l+2]:s,n={x:(-e.x+6*i.x+s.x)*h,y:(-e.y+6*i.y+s.y)*h},r={x:(i.x+6*s.x-o.x)*h,y:(i.y+6*s.y-o.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+s.x+","+s.y+" ";return a},s._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var s,o,n,r,a,h,d,l,c,p,u,m,f,g,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",M=t.length,D=0;M-1>D;D++)s=0==D?t[0]:t[D-1],o=t[D],n=t[D+1],r=M>D+2?t[D+2]:n,d=Math.sqrt(Math.pow(s.x-o.x,2)+Math.pow(s.y-o.y,2)),l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),c=Math.sqrt(Math.pow(n.x-r.x,2)+Math.pow(n.y-r.y,2)),g=Math.pow(c,i),y=Math.pow(c,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),x=Math.pow(d,i),_=Math.pow(d,2*i),p=2*_+3*x*v+b,u=2*y+3*g*v+b,m=3*x*(x+v),m>0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={x:(-b*s.x+p*o.x+_*n.x)*m,y:(-b*s.y+p*o.y+_*n.y)*m},h={x:(y*o.x+u*n.x-b*r.x)*f,y:(y*o.y+u*n.y-b*r.y)*f},0==a.x&&0==a.y&&(a=o),0==h.x&&0==h.y&&(h=n),w+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+n.x+","+n.y+" ";return w},s._linear=function(t){for(var e="",i=0;it[s].y?t[s].y:e,i=i0&&(n=Math.min(n,Math.abs(c[d-1].x-r))),a=s._getSafeDrawData(n,h,m);else{var g=d+(p[r].amount-p[r].resolved),v=d-(p[r].resolved+1);g0&&(n=Math.min(n,Math.abs(c[v].x-r))),a=s._getSafeDrawData(n,h,m),p[r].resolved+=1,"stack"==h.options.barChart.handleOverlap?(f=p[r].accumulated,p[r].accumulated+=h.zeroPosition-c[d].y):"sideBySide"==h.options.barChart.handleOverlap&&(a.width=a.width/p[r].amount,a.offset+=p[r].resolved*a.width-.5*a.width*(p[r].amount+1),"left"==h.options.barChart.align?a.offset-=.5*a.width:"right"==h.options.barChart.align&&(a.offset+=.5*a.width))}o.drawBar(c[d].x+a.offset,c[d].y-f,a.width,h.zeroPosition-c[d].y,h.className+" bar",i.svgElements,i.svg),1==h.options.drawPoints.enabled&&o.drawPoint(c[d].x+a.offset,c[d].y,h,i.svgElements,i.svg)}},s._getDataIntersections=function(t,e){for(var i,s=0;s0&&(i=Math.min(i,Math.abs(e[s-1].x-e[s].x))),0==i&&(void 0===t[e[s].x]&&(t[e[s].x]={amount:0,resolved:0,accumulated:0}),t[e[s].x].amount+=1) -},s._getSafeDrawData=function(t,e,i){var s,o;return t0?(s=i>t?i:t,o=0,"left"==e.options.barChart.align?o-=.5*t:"right"==e.options.barChart.align&&(o+=.5*t)):(s=e.options.barChart.width,o=0,"left"==e.options.barChart.align?o-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(o+=.5*e.options.barChart.width)),{width:s,offset:o}},s.getStackedBarYRange=function(t,e,i,o,n){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};s._getDataIntersections(r,t),e[o]=s._getStackedBarYRange(r,t),e[o].yAxisOrientation=n,i.push(o)}},s._getStackedBarYRange=function(t,e){for(var i,s=e[0].y,o=e[0].y,n=0;ne[n].y?e[n].y:s,o=ot[r].accumulated?t[r].accumulated:s,o=ot[s].y?t[s].y:e,i=is;++s)i[s].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){var s;(function(t,o){(function(n){function r(t,e,i){switch(arguments.length){case 2:return null!=t?t:e;case 3:return null!=t?t:null!=e?e:i;default:throw new Error("Implement me")}}function a(t,e){return ke.call(t,e)}function h(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function d(t){De.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function l(t,e){var i=!0;return v(function(){return i&&(d(t),i=!1),e.apply(this,arguments)},e)}function c(t,e){xi[t]||(d(e),xi[t]=!0)}function p(t,e){return function(i){return _(t.call(this,i),e)}}function u(t,e){return function(i){return this.localeData().ordinal(t.call(this,i),e)}}function m(){}function f(t,e){e!==!1&&A(t),y(this,t),this._d=new Date(+t._d)}function g(t){var e=E(t),i=e.year||0,s=e.quarter||0,o=e.month||0,n=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*a,this._days=+r+7*n,this._months=+o+3*s+12*i,this._data={},this._locale=De.localeData(),this._bubble()}function v(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function y(t,e){var i,s,o;if("undefined"!=typeof e._isAMomentObject&&(t._isAMomentObject=e._isAMomentObject),"undefined"!=typeof e._i&&(t._i=e._i),"undefined"!=typeof e._f&&(t._f=e._f),"undefined"!=typeof e._l&&(t._l=e._l),"undefined"!=typeof e._strict&&(t._strict=e._strict),"undefined"!=typeof e._tzm&&(t._tzm=e._tzm),"undefined"!=typeof e._isUTC&&(t._isUTC=e._isUTC),"undefined"!=typeof e._offset&&(t._offset=e._offset),"undefined"!=typeof e._pf&&(t._pf=e._pf),"undefined"!=typeof e._locale&&(t._locale=e._locale),He.length>0)for(i in He)s=He[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function b(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&L(t[s])!==L(e[s]))&&r++;return r+n}function O(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=mi[t]||fi[e]||e}return t}function E(t){var e,i,s={};for(i in t)a(t,i)&&(e=O(i),e&&(s[e]=t[i]));return s}function k(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}De[t]=function(s,o){var r,a,h=De._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=De().utc().set(i,t);return h.call(De._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function L(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function N(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function I(t,e,i){return pe(De([t,11,31+e-i]),e,i).week}function z(t){return P(t)?366:365}function P(t){return t%4===0&&t%100!==0||t%400===0}function A(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Ne]<0||t._a[Ne]>11?Ne:t._a[Ie]<1||t._a[Ie]>N(t._a[Le],t._a[Ne])?Ie:t._a[ze]<0||t._a[ze]>24||24===t._a[ze]&&(0!==t._a[Pe]||0!==t._a[Ae]||0!==t._a[Re])?ze:t._a[Pe]<0||t._a[Pe]>59?Pe:t._a[Ae]<0||t._a[Ae]>59?Ae:t._a[Re]<0||t._a[Re]>999?Re:-1,t._pf._overflowDayOfYear&&(Le>e||e>Ie)&&(e=Ie),t._pf.overflow=e)}function R(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length&&t._pf.bigHour===n)),t._isValid}function F(t){return t?t.toLowerCase().replace("_","-"):t}function H(t){for(var e,i,s,o,n=0;n0;){if(s=B(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&T(o,i,!0)>=e-1)break;e--}n++}return null}function B(t){var e=null;if(!Fe[t]&&Be)try{e=De.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),De.locale(e)}catch(i){}return Fe[t]}function Y(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(De.isMoment(t)||C(t)?+t:+De(t))-+i,i._d.setTime(+i._d+s),De.updateOffset(i,!1),i):De(t).local()}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,i,s=t.match(je);for(e=0,i=s.length;i>e;e++)s[e]=_i[s[e]]?_i[s[e]]:W(s[e]);return function(o){var n="";for(e=0;i>e;e++)n+=s[e]instanceof Function?s[e].call(o,t):s[e];return n}}function j(t,e){return t.isValid()?(e=V(e,t.localeData()),gi[e]||(gi[e]=G(e)),gi[e](t)):t.localeData().invalidDate()}function V(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Ve.lastIndex=0;s>=0&&Ve.test(t);)t=t.replace(Ve,i),Ve.lastIndex=0,s-=1;return t}function U(t,e){var i,s=e._strict;switch(t){case"Q":return ii;case"DDDD":return oi;case"YYYY":case"GGGG":case"gggg":return s?ni:qe;case"Y":case"G":case"g":return ai;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?ri:Ze;case"S":if(s)return ii;case"SS":if(s)return si;case"SSS":if(s)return oi;case"DDD":return Xe;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ke;case"a":case"A":return e._locale._meridiemParse;case"x":return ti;case"X":return ei;case"Z":case"ZZ":return $e;case"T":return Je;case"SSSS":return Qe;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?si:Ue;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ue;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(ee(te(t.replace("\\","")),"i"))}}function X(t){t=t||"";var e=t.match($e)||[],i=e[e.length-1]||[],s=(i+"").match(pi)||["-",0,0],o=+(60*s[1])+L(s[2]);return"+"===s[0]?-o:o}function q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Ne]=3*(L(e)-1));break;case"M":case"MM":null!=e&&(o[Ne]=L(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[Ne]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ie]=L(e));break;case"Do":null!=e&&(o[Ie]=L(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=L(e));break;case"YY":o[Le]=De.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Le]=L(e);break;case"a":case"A":i._isPm=i._locale.isPM(e);break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[ze]=L(e);break;case"m":case"mm":o[Pe]=L(e);break;case"s":case"ss":o[Ae]=L(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Re]=L(1e3*("0."+e));break;case"x":i._d=new Date(L(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=X(e);break;case"dd":case"ddd":case"dddd":s=i._locale.weekdaysParse(e),null!=s?(i._w=i._w||{},i._w.d=s):i._pf.invalidWeekday=e;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":t=t.substr(0,1);case"gggg":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=L(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=De.parseTwoDigitYear(e)}}function Z(t){var e,i,s,o,n,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Le],pe(De(),1,4).year),s=r(e.W,1),o=r(e.E,1)):(n=t._locale._week.dow,a=t._locale._week.doy,i=r(e.gg,t._a[Le],pe(De(),n,a).year),s=r(e.w,1),null!=e.d?(o=e.d,n>o&&++s):o=null!=e.e?e.e+n:n),h=ue(i,s,o,a,n),t._a[Le]=h.year,t._dayOfYear=h.dayOfYear}function Q(t){var e,i,s,o,n=[];if(!t._d){for(s=$(t),t._w&&null==t._a[Ie]&&null==t._a[Ne]&&Z(t),t._dayOfYear&&(o=r(t._a[Le],s[Le]),t._dayOfYear>z(o)&&(t._pf._overflowDayOfYear=!0),i=he(o,0,t._dayOfYear),t._a[Ne]=i.getUTCMonth(),t._a[Ie]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ze]&&0===t._a[Pe]&&0===t._a[Ae]&&0===t._a[Re]&&(t._nextDay=!0,t._a[ze]=0),t._d=(t._useUTC?he:ae).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm),t._nextDay&&(t._a[ze]=24)}}function K(t){var e;t._d||(e=E(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],Q(t))}function $(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function J(t){if(t._f===De.ISO_8601)return void se(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=V(t._f,t._locale).match(je)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),_i[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),q(o,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(o);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[ze]<=12&&(t._pf.bigHour=n),t._isPm&&t._a[ze]<12&&(t._a[ze]+=12),t._isPm===!1&&12===t._a[ze]&&(t._a[ze]=0),Q(t),A(t)}function te(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function ee(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(t){var e,i,s,o,n;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(o=0;on)&&(s=n,i=e));v(t,i||e)}function se(t){var e,i,s=t._i,o=hi.exec(s);if(o){for(t._pf.iso=!0,e=0,i=li.length;i>e;e++)if(li[e][1].exec(s)){t._f=li[e][0]+(o[6]||" ");break}for(e=0,i=ci.length;i>e;e++)if(ci[e][1].exec(s)){t._f+=ci[e][0];break}s.match($e)&&(t._f+="Z"),J(t)}else t._isValid=!1}function oe(t){se(t),t._isValid===!1&&(delete t._isValid,De.createFromInputFallback(t))}function ne(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function he(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function de(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function le(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ce(t,e,i){var s=De.duration(t).abs(),o=Ee(s.as("s")),n=Ee(s.as("m")),r=Ee(s.as("h")),a=Ee(s.as("d")),h=Ee(s.as("M")),d=Ee(s.as("y")),l=o0,l[4]=i,le.apply({},l)}function pe(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=De(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ue(t,e,i,s,o){var n,r,a=he(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:z(t-1)+r}}function me(t){var e,i=t._i,s=t._f;return t._locale=t._locale||De.localeData(t._l),null===i||s===n&&""===i?De.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),De.isMoment(i)?new f(i,!0):(s?S(s)?ie(t):J(t):re(t),e=new f(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function fe(t,e){var i,s;if(1===e.length&&S(e[0])&&(e=e[0]),!e.length)return De();for(i=e[0],s=1;s=0?"+":"-";return e+_(Math.abs(t),6)},gg:function(){return _(this.weekYear()%100,2)},gggg:function(){return _(this.weekYear(),4)},ggggg:function(){return _(this.weekYear(),5)},GG:function(){return _(this.isoWeekYear()%100,2)},GGGG:function(){return _(this.isoWeekYear(),4)},GGGGG:function(){return _(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return L(this.milliseconds()/100)},SS:function(){return _(L(this.milliseconds()/10),2)},SSS:function(){return _(this.milliseconds(),3)},SSSS:function(){return _(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(L(t/60),2)+":"+_(L(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(L(t/60),2)+_(L(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},xi={},wi=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];yi.length;)Ce=yi.pop(),_i[Ce+"o"]=u(_i[Ce],Ce);for(;bi.length;)Ce=bi.pop(),_i[Ce+Ce]=p(_i[Ce],2);_i.DDDD=p(_i.DDD,3),v(m.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var s,o,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;12>s;s++){if(o=De.utc([2e3,s]),i&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),i||this._monthsParse[s]||(n="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[s]=new RegExp(n.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[s].test(t))return s;if(i&&"MMM"===e&&this._shortMonthsParse[s].test(t))return s;if(!i&&this._monthsParse[s].test(t))return s}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=De([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e,i){var s=this._calendar[t];return"function"==typeof s?s.apply(e,[i]):s},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,s){var o=this._relativeTime[i];return"function"==typeof o?o(t,e,i,s):o.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(t){return t},postformat:function(t){return t},week:function(t){return pe(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),De=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._i=t,o._f=e,o._l=i,o._strict=s,o._isUTC=!1,o._pf=h(),me(o)},De.suppressDeprecationWarnings=!1,De.createFromInputFallback=l("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),De.min=function(){var t=[].slice.call(arguments,0);return fe("isBefore",t)},De.max=function(){var t=[].slice.call(arguments,0);return fe("isAfter",t)},De.utc=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._useUTC=!0,o._isUTC=!0,o._l=i,o._i=t,o._f=e,o._strict=s,o._pf=h(),me(o).utc()},De.unix=function(t){return De(1e3*t)},De.duration=function(t,e){var i,s,o,n,r=t,h=null;return De.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=We.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:L(h[Ie])*i,h:L(h[ze])*i,m:L(h[Pe])*i,s:L(h[Ae])*i,ms:L(h[Re])*i}):(h=Ge.exec(t))?(i="-"===h[1]?-1:1,o=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},r={y:o(h[2]),M:o(h[3]),d:o(h[4]),h:o(h[5]),m:o(h[6]),s:o(h[7]),w:o(h[8])}):"object"==typeof r&&("from"in r||"to"in r)&&(n=w(De(r.from),De(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new g(r),De.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},De.version=Te,De.defaultFormat=di,De.ISO_8601=function(){},De.momentProperties=He,De.updateOffset=function(){},De.relativeTimeThreshold=function(t,e){return vi[t]===n?!1:e===n?vi[t]:(vi[t]=e,!0)},De.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return De.locale(t,e)}),De.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?De.defineLocale(t,e):De.localeData(t),i&&(De.duration._locale=De._locale=i)),De._locale._abbr},De.defineLocale=function(t,e){return null!==e?(e.abbr=t,Fe[t]||(Fe[t]=new m),Fe[t].set(e),De.locale(t),Fe[t]):(delete Fe[t],null)},De.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return De.localeData(t)}),De.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return De._locale;if(!S(t)){if(e=B(t))return e;t=[t]}return H(t)},De.isMoment=function(t){return t instanceof f||null!=t&&a(t,"_isAMomentObject")},De.isDuration=function(t){return t instanceof g};for(Ce=wi.length-1;Ce>=0;--Ce)k(wi[Ce]);De.normalizeUnits=function(t){return O(t)},De.invalid=function(t){var e=De.utc(0/0);return null!=t?v(e._pf,t):e._pf.userInvalidated=!0,e},De.parseZone=function(){return De.apply(null,arguments).parseZone()},De.parseTwoDigitYear=function(t){return L(t)+(L(t)>68?1900:2e3)},v(De.fn=f.prototype,{clone:function(){return De(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=De(this).utc();return 00:!1},parsingFlags:function(){return v({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.zone(0,t)},local:function(t){return this._isUTC&&(this.zone(0,t),this._isUTC=!1,t&&this.add(this._dateTzOffset(),"m")),this},format:function(t){var e=j(this,t||De.defaultFormat);return this.localeData().postformat(e)},add:M(1,"add"),subtract:M(-1,"subtract"),diff:function(t,e,i){var s,o,n,r=Y(t,this),a=6e4*(this.zone()-r.zone());return e=O(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+r.daysInMonth()),o=12*(this.year()-r.year())+(this.month()-r.month()),n=this-De(this).startOf("month")-(r-De(r).startOf("month")),n-=6e4*(this.zone()-De(this).startOf("month").zone()-(r.zone()-De(r).startOf("month").zone())),o+=n/s,"year"===e&&(o/=12)):(s=this-r,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?o:b(o)},from:function(t,e){return De.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(De(),t) -},calendar:function(t){var e=t||De(),i=Y(e,this).startOf("day"),s=this.diff(i,"days",!0),o=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse";return this.format(this.localeData().calendar(o,this,De(e)))},isLeapYear:function(){return P(this.year())},isDST:function(){return this.zone()+t):(i=De.isMoment(t)?+t:+De(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=O("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=De.isMoment(t)?t:De(t),+t>+this):(i=De.isMoment(t)?+t:+De(t),+this.clone().endOf(e)t?this:t}),max:l("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(t){return t=De.apply(null,arguments),t>this?this:t}),zone:function(t,e){var i,s=this._offset||0;return null==t?this._isUTC?s:this._dateTzOffset():("string"==typeof t&&(t=X(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateTzOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.subtract(i,"m"),s!==t&&(!e||this._changeInProgress?D(this,De.duration(s-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,De.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?De(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return N(this.year(),this.month())},dayOfYear:function(t){var e=Ee((De(this).startOf("day")-De(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=pe(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=pe(this,1,4).year;return null==t?e:this.add(t-e,"y")},week:function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},isoWeek:function(t){var e=pe(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},weekday:function(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return I(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return I(this.year(),t.dow,t.doy)},get:function(t){return t=O(t),this[t]()},set:function(t,e){return t=O(t),"function"==typeof this[t]&&this[t](e),this},locale:function(t){var e;return t===n?this._locale._abbr:(e=De.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),De.fn.millisecond=De.fn.milliseconds=be("Milliseconds",!1),De.fn.second=De.fn.seconds=be("Seconds",!1),De.fn.minute=De.fn.minutes=be("Minutes",!1),De.fn.hour=De.fn.hours=be("Hours",!0),De.fn.date=be("Date",!0),De.fn.dates=l("dates accessor is deprecated. Use date instead.",be("Date",!0)),De.fn.year=be("FullYear",!0),De.fn.years=l("years accessor is deprecated. Use year instead.",be("FullYear",!0)),De.fn.days=De.fn.day,De.fn.months=De.fn.month,De.fn.weeks=De.fn.week,De.fn.isoWeeks=De.fn.isoWeek,De.fn.quarters=De.fn.quarter,De.fn.toJSON=De.fn.toISOString,v(De.duration.fn=g.prototype,{_bubble:function(){var t,e,i,s=this._milliseconds,o=this._days,n=this._months,r=this._data,a=0;r.milliseconds=s%1e3,t=b(s/1e3),r.seconds=t%60,e=b(t/60),r.minutes=e%60,i=b(e/60),r.hours=i%24,o+=b(i/24),a=b(_e(o)),o-=b(xe(a)),n+=b(o/30),o%=30,a+=b(n/12),n%=12,r.days=o,r.months=n,r.years=a},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return b(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*L(this._months/12)},humanize:function(t){var e=ce(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=De.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=De.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=O(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=O(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*_e(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xe(this._months/12)),t){case"week":return e/7+this._milliseconds/6048e5;case"day":return e+this._milliseconds/864e5;case"hour":return 24*e+this._milliseconds/36e5;case"minute":return 24*e*60+this._milliseconds/6e4;case"second":return 24*e*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+t)}},lang:De.fn.lang,locale:De.fn.locale,toIsoString:l("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),s=Math.abs(this.hours()),o=Math.abs(this.minutes()),n=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||o||n?"T":"")+(s?s+"H":"")+(o?o+"M":"")+(n?n+"S":""):"P0D"},localeData:function(){return this._locale}}),De.duration.fn.toString=De.duration.fn.toISOString;for(Ce in ui)a(ui,Ce)&&we(Ce.toLowerCase());De.duration.fn.asMilliseconds=function(){return this.as("ms")},De.duration.fn.asSeconds=function(){return this.as("s")},De.duration.fn.asMinutes=function(){return this.as("m")},De.duration.fn.asHours=function(){return this.as("h")},De.duration.fn.asDays=function(){return this.as("d")},De.duration.fn.asWeeks=function(){return this.as("weeks")},De.duration.fn.asMonths=function(){return this.as("M")},De.duration.fn.asYears=function(){return this.as("y")},De.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===L(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Be?o.exports=De:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(Oe.moment=Se),De}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Me(!0))}).call(this)}).call(e,function(){return this}(),i(71)(t))},function(t,e){var i,s,o;!function(n,r){s=[],i=r,o="function"==typeof i?i.apply(e,s):i,!(void 0!==o&&(t.exports=o))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,s=t&&t.container||window,o={},n={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==n[e][t.keyCode]){for(var s=n[e][t.keyCode],o=0;os;s++)if(e.call(i,t[s],s,t)===!1)return}else for(s in t)if(t.hasOwnProperty(s)&&e.call(i,t[s],s,t)===!1)return},inStr:function(t,e){return t.indexOf(e)>-1},inArray:function(t,e){if(t.indexOf){var i=t.indexOf(e);return-1===i?!1:i}for(var s=0,o=t.length;o>s;s++)if(t[s]===e)return s;return!1},toArray:function(t){return Array.prototype.slice.call(t,0)},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){var e=[],i=[],s=[],o=[],n=Math.min,r=Math.max;return 1===t.length?{pageX:t[0].pageX,pageY:t[0].pageY,clientX:t[0].clientX,clientY:t[0].clientY}:(x.each(t,function(t){e.push(t.pageX),i.push(t.pageY),s.push(t.clientX),o.push(t.clientY)}),{pageX:(n.apply(Math,e)+r.apply(Math,e))/2,pageY:(n.apply(Math,i)+r.apply(Math,i))/2,clientX:(n.apply(Math,s)+r.apply(Math,s))/2,clientY:(n.apply(Math,o)+r.apply(Math,o))/2})},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return 180*Math.atan2(s,i)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.clientX-e.clientX),s=Math.abs(t.clientY-e.clientY);return i>=s?t.clientX-e.clientX>0?l:p:t.clientY-e.clientY>0?c:d},getDistance:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==c||t==d},setPrefixedCss:function(t,e,i,s){var o=["","Webkit","Moz","O","ms"];e=x.toCamelCase(e);for(var n=0;n0&&this.started&&(r=v),this.started=!0;var d=this.collectEventData(i,r,o,t);return e!=y&&s.call(D,d),a&&(d.changedLength=h,d.eventType=a,s.call(D,d),d.eventType=r,delete d.changedLength),r==y&&(s.call(D,d),this.started=!1),r},determineEventTypes:function(){var t;return t=a.HAS_POINTEREVENTS?o.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:a.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],h[g]=t[0],h[v]=t[1],h[y]=t[2],h},getTouchList:function(t,e){if(a.HAS_POINTEREVENTS)return M.getTouchList();if(t.touches){if(e==v)return t.touches;var i=[],s=[].concat(x.toArray(t.touches),x.toArray(t.changedTouches)),o=[];return x.each(s,function(t){x.inArray(i,t.identifier)===!1&&o.push(t),i.push(t.identifier)}),o}return t.identifier=1,[t]},collectEventData:function(t,e,i,s){var o=m;return x.inStr(s.type,"mouse")||M.matchType(u,s)?o=u:M.matchType(f,s)&&(o=f),{center:x.getCenter(i),timeStamp:Date.now(),target:s.target,touches:i,eventType:e,pointerType:o,srcEvent:s,preventDefault:function(){var t=this.srcEvent;t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return D.stopDetect()}}}},M=a.PointerEvent={pointers:{},getTouchList:function(){var t=[];return x.each(this.pointers,function(e){t.push(e)}),t},updatePointer:function(t,e){t==y||t!=y&&1!==e.buttons?delete this.pointers[e.pointerId]:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e)},matchType:function(t,e){if(!e.pointerType)return!1;var i=e.pointerType,s={};return s[u]=i===(e.MSPOINTER_TYPE_MOUSE||u),s[m]=i===(e.MSPOINTER_TYPE_TOUCH||m),s[f]=i===(e.MSPOINTER_TYPE_PEN||f),s[t]},reset:function(){this.pointers={}}},D=a.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startEvent:x.extend({},e),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendEventData(t);var e=this.current.inst,i=e.options;return x.each(this.gestures,function(s){!this.stopped&&e.enabled&&i[s.name]&&s.handler.call(s,t,e)},this),this.current&&(this.current.lastEvent=t),t.eventType==y&&this.stopDetect(),t}},stopDetect:function(){this.previous=x.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(t,e,i,s,o){var n=this.current,r=!1,h=n.lastCalcEvent,d=n.lastCalcData;h&&t.timeStamp-h.timeStamp>a.CALCULATE_INTERVAL&&(e=h.center,i=t.timeStamp-h.timeStamp,s=t.center.clientX-h.center.clientX,o=t.center.clientY-h.center.clientY,r=!0),(t.eventType==_||t.eventType==b)&&(n.futureCalcEvent=t),(!n.lastCalcEvent||r)&&(d.velocity=x.getVelocity(i,s,o),d.angle=x.getAngle(e,t.center),d.direction=x.getDirection(e,t.center),n.lastCalcEvent=n.futureCalcEvent||t,n.futureCalcEvent=t),t.velocityX=d.velocity.x,t.velocityY=d.velocity.y,t.interimAngle=d.angle,t.interimDirection=d.direction},extendEventData:function(t){var e=this.current,i=e.startEvent,s=e.lastEvent||i;(t.eventType==_||t.eventType==b)&&(i.touches=[],x.each(t.touches,function(t){i.touches.push({clientX:t.clientX,clientY:t.clientY})}));var o=t.timeStamp-i.timeStamp,n=t.center.clientX-i.center.clientX,r=t.center.clientY-i.center.clientY;return this.getCalculatedData(t,s.center,o,n,r),x.extend(t,{startEvent:i,deltaTime:o,deltaX:n,deltaY:r,distance:x.getDistance(i.center,t.center),angle:x.getAngle(i.center,t.center),direction:x.getDirection(i.center,t.center),scale:x.getScale(i.touches,t.touches),rotation:x.getRotation(i.touches,t.touches)}),t},register:function(t){var e=t.defaults||{};return e[t.name]===n&&(e[t.name]=!0),x.extend(a.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}};a.Instance=function(t,e){var i=this;r(),this.element=t,this.enabled=!0,x.each(e,function(t,i){delete e[i],e[x.toCamelCase(i)]=t}),this.options=x.extend(x.extend({},a.defaults),e||{}),this.options.behavior&&x.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=w.onTouch(t,g,function(t){i.enabled&&t.eventType==g?D.startDetect(i,t):t.eventType==_&&D.detect(t)}),this.eventHandlers=[]},a.Instance.prototype={on:function(t,e){var i=this;return w.on(i.element,t,e,function(t){i.eventHandlers.push({gesture:t,handler:e})}),i},off:function(t,e){var i=this;return w.off(i.element,t,e,function(t){var s=x.inArray({gesture:t,handler:e});s!==!1&&i.eventHandlers.splice(s,1)}),i},trigger:function(t,e){e||(e={});var i=a.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e;var s=this.element;return x.hasParent(e.target,s)&&(s=e.target),s.dispatchEvent(i),this},enable:function(t){return this.enabled=t,this},dispose:function(){var t,e;for(x.toggleBehavior(this.element,this.options.behavior,!1),t=-1;e=this.eventHandlers[++t];)x.off(this.element,e.gesture,e.handler);return this.eventHandlers=[],w.off(this.element,h[g],this.eventStartHandler),null}},function(t){function e(e,s){var o=D.current;if(!(s.options.dragMaxTouches>0&&e.touches.length>s.options.dragMaxTouches))switch(e.eventType){case g:i=!1;break;case v:if(e.distance0)){var r=Math.abs(s.options.dragMinDistance/e.distance);n.pageX+=e.deltaX*r,n.pageY+=e.deltaY*r,n.clientX+=e.deltaX*r,n.clientY+=e.deltaY*r,e=D.extendEventData(e)}(o.lastEvent.dragLockToAxis||s.options.dragLockToAxis&&s.options.dragLockMinDistance<=e.distance)&&(e.dragLockToAxis=!0);var a=o.lastEvent.direction;e.dragLockToAxis&&a!==e.direction&&(e.direction=x.isVertical(a)?e.deltaY<0?c:d:e.deltaX<0?l:p),i||(s.trigger(t+"start",e),i=!0),s.trigger(t,e),s.trigger(t+e.direction,e);var h=x.isVertical(e.direction);(s.options.dragBlockVertical&&h||s.options.dragBlockHorizontal&&!h)&&e.preventDefault();break;case b:i&&e.changedLength<=s.options.dragMaxTouches&&(s.trigger(t+"end",e),i=!1);break;case y:i=!1}}var i=!1;a.gestures.Drag={name:t,index:50,handler:e,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),a.gestures.Gesture={name:"gesture",index:1337,handler:function(t,e){e.trigger(this.name,t)}},function(t){function e(e,s){var o=s.options,n=D.current;switch(e.eventType){case g:clearTimeout(i),n.name=t,i=setTimeout(function(){n&&n.name==t&&s.trigger(t,e)},o.holdTimeout);break;case v:e.distance>o.holdThreshold&&clearTimeout(i);break;case b:clearTimeout(i)}}var i;a.gestures.Hold={name:t,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:e}}("hold"),a.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==b&&e.trigger(this.name,t)}},a.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(t,e){if(t.eventType==b){var i=t.touches.length,s=e.options;if(is.swipeMaxTouches)return;(t.velocityX>s.swipeVelocityX||t.velocityY>s.swipeVelocityY)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},function(t){function e(e,s){var o,n,r=s.options,a=D.current,h=D.previous;switch(e.eventType){case g:i=!1;break;case v:i=i||e.distance>r.tapMaxDistance;break;case y:!x.inStr(e.srcEvent.type,"cancel")&&e.deltaTimes.options.transformMinRotation&&s.trigger("rotate",e),o>s.options.transformMinScale&&(s.trigger("pinch",e),s.trigger("pinch"+(e.scale<1?"in":"out"),e));break;case b:i&&e.changedLength<2&&(s.trigger(t+"end",e),i=!1)}}var i=!1;a.gestures.Transform={name:t,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:e}}("transform"),s=function(){return a}.call(e,i,e,t),!(s!==n&&(t.exports=s))}(window)},function(t,e){e.startWithClustering=function(){this.clusterToFit(this.constants.clustering.initialMaxNodes,!0),this.updateLabels(),this.stabilize&&this._stabilize(),this.start()},e.clusterToFit=function(t,e){for(var i=this.nodeIndices.length,s=50,o=0;i>t&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(t.clusterSizei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdgesLength?this._addToCluster(r,a,!1):1==r.dynamicEdgesLength&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e)for(c=0;l>c;c++)if(p=this.edges[d[c]],void 0!==p){var u=this.nodes[p.fromId==t.id?p.toId:p.fromId];u.dynamicEdges.length<=this.hubThreshold+s&&u.id!=t.id&&this._addToCluster(t,u,e)}}},e._addToCluster=function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdgesLength),t+=n.dynamicEdgesLength,e+=Math.pow(n.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37);e._clearManipulatorBar=function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM={},this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1},e._restoreOverloadedFunctions=function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},e._toggleEditMode=function(){this.editMode=!this.editMode;var t=this.manipulationDiv,e=this.closeDiv,i=this.editModeDiv;1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},e._createManipulatorBar=function(){this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];if(void 0!==this.edgeBeingEdited&&(this.edgeBeingEdited._disableControlNodes(),this.edgeBeingEdited=void 0,this.selectedControlNode=null,this.controlNodesActive=!1,this._redraw()),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,this.manipulationDOM={},1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM.addNodeSpan=document.createElement("span"),this.manipulationDOM.addNodeSpan.className="network-manipulationUI add",this.manipulationDOM.addNodeLabelSpan=document.createElement("span"),this.manipulationDOM.addNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addNodeLabelSpan.innerHTML=t.addNode,this.manipulationDOM.addNodeSpan.appendChild(this.manipulationDOM.addNodeLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.addEdgeSpan=document.createElement("span"),this.manipulationDOM.addEdgeSpan.className="network-manipulationUI connect",this.manipulationDOM.addEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.addEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addEdgeLabelSpan.innerHTML=t.addEdge,this.manipulationDOM.addEdgeSpan.appendChild(this.manipulationDOM.addEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.addNodeSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.addEdgeSpan),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?(this.manipulationDOM.seperatorLineDiv2=document.createElement("div"),this.manipulationDOM.seperatorLineDiv2.className="network-seperatorLine",this.manipulationDOM.editNodeSpan=document.createElement("span"),this.manipulationDOM.editNodeSpan.className="network-manipulationUI edit",this.manipulationDOM.editNodeLabelSpan=document.createElement("span"),this.manipulationDOM.editNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editNodeLabelSpan.innerHTML=t.editNode,this.manipulationDOM.editNodeSpan.appendChild(this.manipulationDOM.editNodeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv2),this.manipulationDiv.appendChild(this.manipulationDOM.editNodeSpan)):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.seperatorLineDiv3=document.createElement("div"),this.manipulationDOM.seperatorLineDiv3.className="network-seperatorLine",this.manipulationDOM.editEdgeSpan=document.createElement("span"),this.manipulationDOM.editEdgeSpan.className="network-manipulationUI edit",this.manipulationDOM.editEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.editEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editEdgeLabelSpan.innerHTML=t.editEdge,this.manipulationDOM.editEdgeSpan.appendChild(this.manipulationDOM.editEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv3),this.manipulationDiv.appendChild(this.manipulationDOM.editEdgeSpan)),0==this._selectionIsEmpty()&&(this.manipulationDOM.seperatorLineDiv4=document.createElement("div"),this.manipulationDOM.seperatorLineDiv4.className="network-seperatorLine",this.manipulationDOM.deleteSpan=document.createElement("span"),this.manipulationDOM.deleteSpan.className="network-manipulationUI delete",this.manipulationDOM.deleteLabelSpan=document.createElement("span"),this.manipulationDOM.deleteLabelSpan.className="network-manipulationLabel",this.manipulationDOM.deleteLabelSpan.innerHTML=t.del,this.manipulationDOM.deleteSpan.appendChild(this.manipulationDOM.deleteLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv4),this.manipulationDiv.appendChild(this.manipulationDOM.deleteSpan)),this.manipulationDOM.addNodeSpan.onclick=this._createAddNodeToolbar.bind(this),this.manipulationDOM.addEdgeSpan.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?this.manipulationDOM.editNodeSpan.onclick=this._editNode.bind(this):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.editEdgeSpan.onclick=this._createEditEdgeToolbar.bind(this)),0==this._selectionIsEmpty()&&(this.manipulationDOM.deleteSpan.onclick=this._deleteSelected.bind(this)),this.closeDiv.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{for(;this.editModeDiv.hasChildNodes();)this.editModeDiv.removeChild(this.editModeDiv.firstChild);this.manipulationDOM.editModeSpan=document.createElement("span"),this.manipulationDOM.editModeSpan.className="network-manipulationUI edit editmode",this.manipulationDOM.editModeLabelSpan=document.createElement("span"),this.manipulationDOM.editModeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editModeLabelSpan.innerHTML=t.edit,this.manipulationDOM.editModeSpan.appendChild(this.manipulationDOM.editModeLabelSpan),this.editModeDiv.appendChild(this.manipulationDOM.editModeSpan),this.manipulationDOM.editModeSpan.onclick=this._toggleEditMode.bind(this)}},e._createAddNodeToolbar=function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.addDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},e._createAddEdgeToolbar=function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0;var t=this.constants.locales[this.constants.locale];this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.edgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleDragEnd=this._handleDragEnd,this._handleTouch=this._handleConnect,this._manipulationReleaseOverload=function(){},this._handleDragStart=function(){},this._handleDragEnd=this._finishConnect,this._redraw()},e._createEditEdgeToolbar=function(){this._clearManipulatorBar(),this.controlNodesActive=!0,this.boundFunction&&this.off("select",this.boundFunction),this.edgeBeingEdited=this._getSelectedEdge(),this.edgeBeingEdited._enableControlNodes();var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.editEdgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleTap=this._handleTap,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleTouch=this._selectControlNode,this._handleTap=function(){},this._handleOnDrag=this._controlNodeDrag,this._handleDragStart=function(){},this._manipulationReleaseOverload=this._releaseControlNode,this._redraw()},e._selectControlNode=function(t){this.edgeBeingEdited.controlNodes.from.unselect(),this.edgeBeingEdited.controlNodes.to.unselect(),this.selectedControlNode=this.edgeBeingEdited._getSelectedControlNode(this._XconvertDOMtoCanvas(t.x),this._YconvertDOMtoCanvas(t.y)),null!==this.selectedControlNode&&(this.selectedControlNode.select(),this.freezeSimulation=!0),this._redraw()},e._controlNodeDrag=function(t){var e=this._getPointer(t.gesture.center);null!==this.selectedControlNode&&void 0!==this.selectedControlNode&&(this.selectedControlNode.x=this._XconvertDOMtoCanvas(e.x),this.selectedControlNode.y=this._YconvertDOMtoCanvas(e.y)),this._redraw()},e._releaseControlNode=function(t){var e=this._getNodeAt(t);null!==e?(1==this.edgeBeingEdited.controlNodes.from.selected&&(this._editEdge(e.id,this.edgeBeingEdited.to.id),this.edgeBeingEdited.controlNodes.from.unselect()),1==this.edgeBeingEdited.controlNodes.to.selected&&(this._editEdge(this.edgeBeingEdited.from.id,e.id),this.edgeBeingEdited.controlNodes.to.unselect())):this.edgeBeingEdited._restoreControlNodes(),this.freezeSimulation=!1,this._redraw()},e._handleConnect=function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);if(null!=e)if(e.clusterSize>1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=this.edges.connectionEdge;i.to.x=this._XconvertDOMtoCanvas(e.x),i.to.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start() -}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button");var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.existing.length){for(var t=0;t0){this.constants.hierarchicalLayout.levelSeparation="RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation<0?this.constants.hierarchicalLayout.levelSeparation:-1*this.constants.hierarchicalLayout.levelSeparation:Math.abs(this.constants.hierarchicalLayout.levelSeparation),"RL"==this.constants.hierarchicalLayout.direction||"LR"==this.constants.hierarchicalLayout.direction?1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="vertical"):1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="horizontal");var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s=0;s1&&o.hierarchyEnumerated===!1&&this._setLevelDirected(o.level,o.edges,o.id)}},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=a.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var i=document.getElementById("graph_physicsMethod1"),d=document.getElementById("graph_physicsMethod2"),l=document.getElementById("graph_physicsMethod3");d.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(l.checked=!0);var c=document.getElementById("graph_toggleSmooth"),p=document.getElementById("graph_repositionNodes"),u=document.getElementById("graph_generateOptions");c.onclick=s.bind(this),p.onclick=o.bind(this),u.onclick=n.bind(this),c.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),i.onchange=r.bind(this),d.onchange=r.bind(this),l.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=67},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=i,s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.thetaInverted){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=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")},e._placeInRegion=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)}},e._splitBranch=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)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=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()}},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}}])}); +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)}},s.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},s.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&&(this.step=e),this.autoScale=!1},s.prototype.setAutoScale=function(t){this.autoScale=t},s.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,o=36e5,n=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*s>t&&(this.scale="day",this.step=5),2*s>t&&(this.scale="day",this.step=2),s>t&&(this.scale="day",this.step=1),s/2>t&&(this.scale="weekday",this.step=1),4*o>t&&(this.scale="hour",this.step=4),o>t&&(this.scale="hour",this.step=1),15*n>t&&(this.scale="minute",this.step=15),10*n>t&&(this.scale="minute",this.step=10),5*n>t&&(this.scale="minute",this.step=5),n>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},s.prototype.snap=function(t){var e=new Date(t.valueOf());if("year"==this.scale){var i=e.getFullYear()+Math.round(e.getMonth()/12);e.setFullYear(Math.round(i/this.step)*this.step),e.setMonth(0),e.setDate(0),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("month"==this.scale)e.getDate()>15?(e.setDate(1),e.setMonth(e.getMonth()+1)):e.setDate(1),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);else if("day"==this.scale){switch(this.step){case 5:case 2:e.setHours(24*Math.round(e.getHours()/24));break;default:e.setHours(12*Math.round(e.getHours()/12))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("weekday"==this.scale){switch(this.step){case 5:case 2:e.setHours(12*Math.round(e.getHours()/12));break;default:e.setHours(6*Math.round(e.getHours()/6))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if("hour"==this.scale){switch(this.step){case 4:e.setMinutes(60*Math.round(e.getMinutes()/60));break;default:e.setMinutes(30*Math.round(e.getMinutes()/30))}e.setSeconds(0),e.setMilliseconds(0)}else if("minute"==this.scale){switch(this.step){case 15:case 10:e.setMinutes(5*Math.round(e.getMinutes()/5)),e.setSeconds(0);break;case 5:e.setSeconds(60*Math.round(e.getSeconds()/60));break;default:e.setSeconds(30*Math.round(e.getSeconds()/30))}e.setMilliseconds(0)}else if("second"==this.scale)switch(this.step){case 15:case 10:e.setSeconds(5*Math.round(e.getSeconds()/5)),e.setMilliseconds(0);break;case 5:e.setMilliseconds(1e3*Math.round(e.getMilliseconds()/1e3));break;default:e.setMilliseconds(500*Math.round(e.getMilliseconds()/500))}else if("millisecond"==this.scale){var s=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/s)*s)}return e},s.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}},s.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getClassName=function(){function t(t){return t/a%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(o().add(1,"day"),"day")?" tomorrow":t.isSame(o().add(-1,"day"),"day")?" yesterday":""}function i(t){return t.isSame(new Date,"week")?" current-week":""}function s(t){return t.isSame(new Date,"month")?" current-month":""}function n(t){return t.isSame(new Date,"year")?" current-year":""}var r=o(this.current).locale("en"),a=this.step;switch(this.scale){case"millisecond":return t(r.milliseconds()).trim();case"second":return t(r.seconds()).trim();case"minute":return t(r.minutes()).trim();case"hour":var h=r.hours();return 4==this.step&&(h=h+"-"+(h+4)),h+"h"+e(r)+t(r.hours());case"weekday":return r.format("dddd").toLowerCase()+e(r)+i(r)+t(r.date());case"day":var d=r.date(),l=r.format("MMMM").toLowerCase();return"day"+d+" "+l+s(r)+t(d-1);case"month":return r.format("MMMM").toLowerCase()+s(r)+t(r.month());case"year":var c=r.year();return"year"+c+n(r)+t(c);default:return""}},t.exports=s},function(t){function e(){this.options=null,this.props=null}e.prototype.setOptions=function(t){t&&util.extend(this.options,t)},e.prototype.redraw=function(){return!1},e.prototype.destroy=function(){},e.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=e},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=o.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var o=i(1),n=i(20),r=i(44),a=i(48);s.prototype=new n,s.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},s.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},s.prototype.setOptions=function(t){t&&o.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},s.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),s=this.options.locales[this.options.locale],o=s.current+" "+s.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=i+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},s.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},s.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},s.prototype.setCurrentTime=function(t){var e=o.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},s.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en"},this.options=n.extend({},this.defaultOptions),this.customTime=new Date,this.eventParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(20),a=i(44),h=i(48);s.prototype=new r,s.prototype.setOptions=function(t){t&&n.selectiveExtend(["showCustomTime","locale","locales"],this.options,t)},s.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=o(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},s.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},s.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],s=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=e+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},s.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},s.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},s.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},s.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.body.util.toScreen(this.eventParams.customTime)+e,s=this.body.util.toTime(i);this.setCustomTime(s),this.body.emitter.emit("timechange",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},s.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=s},function(t,e,i){function s(t,e,i,s){this.id=o.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=o.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var o=i(1),n=i(2),r=i(20),a=i(16);s.prototype=new r,s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];o.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},s.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)},s.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,s=4,o=s+.5*i;t="left"==this.options.orientation?s:this.width-e-s;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,o,this.svgElements,this.svg,e,i),o+=i+s));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},s.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},s.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},s.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},s.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n)}return t},s.prototype._redrawLabels=function(){var t=!1;n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var e=this.options.orientation,i=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,s=new a(this.range.start,this.range.end,i,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=s;var o=(this.dom.frame.offsetHeight-s.deadSpace*(this.dom.frame.offsetHeight/s.marginRange))/((s.marginRange-s.deadSpace)/s.step);this.stepPixels=o;var r=this.height/o,h=0;if(0==this.master){o=this.stepPixelsForced,h=Math.round(this.dom.frame.offsetHeight/o-r);for(var d=0;.5*h>d;d++)s.previous();if(r=this.height/o,-1!=this.zeroCrossing&&1==this.options.alignZeros){var l=s.marginEnd/s.step-this.zeroCrossing;if(l>0)for(var d=0;l>d;d++)s.next();else if(0>l)for(var d=0;-l>d;d++)s.previous()}}else r+=.25;this.valueAtZero=s.marginEnd;var c,p=0,u=1;void 0!==this.options.format[e]&&(c=this.options.format[e].decimals),this.maxLabelSize=0;for(var m=0;u=0&&this._redrawLabel(m-2,s.getCurrent(c),e,"yAxis major",this.props.majorCharHeight),this._redrawLine(m,e,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(m,e,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==s.current&&(this.zeroCrossing=u),u++}this.conversionFactor=0==this.master?m/(this.valueAtZero-s.current):this.dom.frame.offsetHeight/s.marginRange;var g=0;void 0!==this.options.title[e]&&void 0!==this.options.title[e].text&&(g=this.props.titleCharHeight);var v=1==this.options.icons?Math.max(this.options.iconWidth,g)+this.options.labelOffsetX+15:g+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-v&&1==this.options.visible?(this.width=this.maxLabelSize+v,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+v),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),t=!1),t},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,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*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSized;d++){var c=this.visibleItems[d];c.repositionY(e)}return s},s.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var s=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(o.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(s.subgroups[t.data.subgroup].height=Math.max(s.subgroups[t.data.subgroup].height,t.height),s.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,o.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=t.axis+t.item.vertical;return e=Math.max(e,this.props.label.height)},s.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)},s.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 s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},s.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)}},s.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!o(n));r--)void 0===s[n.id]&&(s[n.id]=!0,i.push(n));for(r=t+1;rs;s++){var n=this.visibleItems[s];n.repositionY(e)}return i},s.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(3),a=i(4),h=i(20),d=i(25),l=i(26),c=i(33),p=i(34),u=i(35),m=i(32),f="__ungrouped__",g="__background__";s.prototype=new h,s.types={background:m,box:c,range:u,point:p},s.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new l(g,null,this);r.show(),this.groups[g]=r,this.hammer=o(this.body.dom.centerContainer,{preventDefault:!0}),this.hammer.on("touch",this._onTouch.bind(this)),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("hold",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},s.prototype.setOptions=function(t){if(t){var e=["type","align","orientation","padding","stack","selectable","groupOrder","dataAttributes","template","hide"];n.selectiveExtend(e,this.options,t),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},s.prototype.markDirty=function(){this.groupIds=[],this.stackDirty=!0},s.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},s.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)},s.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)},s.prototype.setSelection=function(t){var e,i,s,o;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)s=this.selection[e],o=this.items[s],o&&o.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],o=this.items[s],o&&(this.selection.push(s),o.select())},s.prototype.getSelection=function(){return this.selection.concat([])},s.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),s=[];for(var o in this.groups)if(this.groups.hasOwnProperty(o))for(var n=this.groups[o],r=n.visibleItems,a=0;ae&&s.push(h.id)}return s},s.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},s.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,s=this.options,o=s.orientation,r=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,p=this._firstGroup(),u={item:t.item,axis:t.axis},m={item:t.item,axis:t.item.vertical/2},f=0,v=t.axis+t.item.vertical;return this.groups[g].redraw(e,m,c),n.forEach(this.groups,function(t){var i=t==p?u:m,s=t.redraw(e,i,c);r=s||r,f+=t.height}),f=Math.max(f,v),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==o?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},s.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[f];return i||null},s.prototype._updateUngrouped=function(){{var t,e,i=this.groups[f];this.groups[g]}if(this.groupsData){if(i){i.hide(),delete this.groups[f];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var s=this._getGroupId(t.data),o=this.groups[s];o&&o.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new d(n,r,this),this.groups[f]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},s.prototype.getLabelSet=function(){return this.dom.labelSet},s.prototype.setItems=function(t){var e,i=this,s=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(s&&(n.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,o)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},s.prototype.getItems=function(){return this.itemsData},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},s.prototype.getGroups=function(){return this.groupsData},s.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)})},s.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},s.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:f},s.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=e._getType(i),r=s.types[n];if(o&&(r&&o instanceof r?e._updateItem(o,i):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');o=new r(i,e.conversion,e.options),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},s.prototype._onAdd=s.prototype._onUpdate,s.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},s.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},s.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},s.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==f||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);n.extend(o,{height:null}),s=new d(t,i,e),e.groups[t]=s;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change",{queue:!0})},s.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})},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},s.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)}},s.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)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||o.length>0)&&this.body.emitter.emit("select",{items:a})}},s.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.body.util.snap||null,o=s.itemFromTarget(t);if(o){var r=e.itemsData.get(o.id);this.options.onUpdate(r,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var a=n.getAbsoluteLeft(this.dom.frame),h=t.gesture.center.pageX-a,d=this.body.util.toTime(h),l={start:i?i(d):d,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(h+this.props.width/5);l.end=i?i(c):c}l[this.itemsData._fieldId]=n.randomUUID();var p=s.groupFromTarget(t);p&&(l.group=p.groupId),this.options.onAdd(l,function(t){t&&e.itemsData.getDataSet().add(t)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=s.itemFromTarget(t);if(i){e=this.getSelection();var o=t.gesture.touches[0]&&t.gesture.touches[0].shiftKey||!1;if(o){e.push(i.id);var n=s._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},s._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}},s.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},s.groupFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-group"))return e["timeline-group"];e=e.parentNode}return null},s.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},t.exports=s},function(t,e,i){function s(t,e,i,s){this.body=t,this.defaultOptions={enabled:!0,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-left"}},this.side=i,this.options=o.extend({},this.defaultOptions),this.linegraphOptions=s,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.setOptions(e)}var o=i(1),n=i(2),r=i(20);s.prototype=new r,s.prototype.clear=function(){this.groups={},this.amountOfGroups=0},s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="legendText",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},s.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];o.selectiveDeepExtend(e,this.options,t)},s.prototype.redraw=function(){var t=0;for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||t++);if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var i=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+i+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());var s="";for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||(s+=this.groups[e].content+"
"));this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},s.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,s=this.options.iconSize,o=.75*this.options.iconSize,r=e+.5*o+3;this.svg.style.width=s+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,s,o),r+=o+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=s},function(t,e,i){function s(t,e){this.id=o.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=o.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var o=i(1),n=i(2),r=i(3),a=i(4),h=i(20),d=i(23),l=i(24),c=i(28),p=i(50),u="__ungrouped__";s.prototype=new h,s.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},s.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?this.updateSVGheight=!0:void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;eu&&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;rs){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var s=0;s0){var n=1,r=o.length,a=this.body.util.toGlobalScreen(o[o.length-1].x)-this.body.util.toGlobalScreen(o[0].x),h=r/a;n=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=n)d.push(o[l]);e[t[s]]=d}}},s.prototype._getYRanges=function(t,e,i){var s,o,n,r,a=[],h=[];if(t.length>0){for(n=0;n0&&(o=this.groups[t[n]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(o.getYRange(s)):h=h.concat(o.getYRange(s)):i[t[n]]=o.getYRange(s,t[n]));p.getStackedBarYRange(a,i,t,"__barchartLeft","left"),p.getStackedBarYRange(h,i,t,"__barchartRight","right")}},s.prototype._updateYAxis=function(t,e){var i,s,o=!1,n=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=s>d?s:d):(r=!0,h=h>i?i:h,l=s>l?s:l));1==n&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return o=this._toggleAxisVisiblity(n,this.yAxisLeft)||o,o=this._toggleAxisVisiblity(r,this.yAxisRight)||o,1==r&&1==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,o=this.yAxisLeft.redraw()||o,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,o=this.yAxisRight.redraw()||o):o=this.yAxisRight.redraw()||o,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),o},s.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},s.prototype._convertXcoordinates=function(t){for(var e,i,s=[],o=this.body.util.toScreen,n=0;ny;)y++,l=h.getCurrent(),c=h.isMajor(),u=h.getClassName(),f=m,m=this.body.util.toScreen(l),g=m-f,p&&(p.style.width=g+"px"),this.options.showMinorLabels&&this._repaintMinorText(m,h.getLabelMinor(),t,u),c&&this.options.showMajorLabels?(m>0&&(void 0==v&&(v=m),this._repaintMajorText(m,h.getLabelMajor(),t,u)),p=this._repaintMajorLine(m,t,u)):p=this._repaintMinorLine(m,t,u),h.next();if(this.options.showMajorLabels){var b=this.body.util.toTime(0),_=h.getLabelMajor(b),x=_.length*(this.props.majorCharWidth||10)+10;(void 0==v||v>x)&&this._repaintMajorText(0,_,t,u)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i,s){var o=this.dom.redundant.minorTexts.shift();if(!o){var n=document.createTextNode("");o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.minorTexts.push(o),o.childNodes[0].nodeValue=e,o.style.top="top"==i?this.props.majorLabelHeight+"px":"0",o.style.left=t+"px",o.className="text minor "+s},s.prototype._repaintMajorText=function(t,e,i,s){var o=this.dom.redundant.majorTexts.shift();if(!o){var n=document.createTextNode(e);o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.majorTexts.push(o),o.childNodes[0].nodeValue=e,o.className="text major "+s,o.style.top="top"==i?"0":this.props.minorLabelHeight+"px",o.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?o.majorLabelHeight+"px":this.body.domProps.top.height+"px",s.style.height=o.minorLineHeight+"px",s.style.left=t-o.minorLineWidth/2+"px",s.className="grid vertical minor "+i,s},s.prototype._repaintMajorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?"0":this.body.domProps.top.height+"px",s.style.left=t-o.majorLineWidth/2+"px",s.style.height=o.majorLineHeight+"px",s.className="grid vertical major "+i,s},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},s.prototype.snap=function(t){return this.step.snap(t)},t.exports=s},function(t,e,i){function s(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 o=i(45),n=i(1);s.prototype.stack=!0,s.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setData=function(t){this.data=t,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},s.prototype.isVisible=function(){return!1},s.prototype.show=function(){return!1},s.prototype.hide=function(){return!1},s.prototype.redraw=function(){},s.prototype.repositionX=function(){},s.prototype.repositionY=function(){},s.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",o(i,{preventDefault:!0}).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)},s.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},s.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},s.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},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},s.prototype.show=r.prototype.show,s.prototype.hide=r.prototype.hide,s.prototype.repositionX=r.prototype.repositionX,s.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var s=this.data.subgroup,o=this.parent.subgroups,r=o[s].index;if(1==e){i=this.parent.subgroups[s].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in o)o.hasOwnProperty(h)&&1==o[h].visible&&o[h].indexr&&(a+=o[h].height+t.item.vertical);i=this.parent.subgroups[s].height+t.item.vertical,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=s},function(t,e,i){function s(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);o.call(this,t,e,i)}{var o=i(31);i(1)}s.prototype=new o(null,null,null),s.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},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},s.prototype.show=function(){this.displayed||this.redraw()},s.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},s.prototype.repositionX=function(){var t,e,i=this.parent.width,s=this.conversion.toScreen(this.data.start),o=this.conversion.toScreen(this.data.end);-i>s&&(s=-i),o>2*i&&(o=2*i);var n=Math.max(o-s,1);switch(this.overflow?(this.left=s,this.width=n+this.props.content.width,e=this.props.content.width):(this.left=s,this.width=n,e=Math.min(o-s-2*this.options.padding,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(n-e-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((n-e-2*this.options.padding)/2,0)+"px";break;default:t=this.overflow?o>0?Math.max(-s,0):-e:0>s?Math.min(-s,o-s-e-2*this.options.padding):0,this.dom.content.style.left=t+"px"}},s.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},s.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),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)},s.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),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=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._determineBrowserMethod(),this._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=0,this.physicsTime=0,this.runDoubleSpeed=!1,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null},this.defaultOptions={nodes:{mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from"},configurePhysics:!1,physics:{barnesHut:{enabled:!0,thetaInverted:2,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{enabled:!1,centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},damping:null,centralGravity:null,springLength:null,springConstant:null},clustering:{enabled:!1,initialMaxNodes:100,clusterThreshold:500,reduceToNodes:300,chainThreshold:.4,clusterEdgeThreshold:20,sectorThreshold:100,screenSizeThreshold:.2,fontSizeMultiplier:4,maxFontSize:1e3,forceAmplification:.1,distanceAmplification:.1,edgeGrowth:20,nodeScaling:{width:1,height:1,radius:1},maxNodeSizeIncrements:600,activeAreaBoxSize:80,clusterLevelDifference:2},navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02}},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150,nodeSpacing:100,direction:"UD",layout:"hubsize"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},maxVelocity:30,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,zoomExtentOnStabilize:!0,locale:"en",locales:_,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0},this.constants=a.extend({},this.defaultOptions),this.pixelRatio=1,this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers={existing:[],_new:[]},this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0;var o=this;this.groups=new u,this.images=new m,this.images.setOnloadCallback(function(){o._redraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadPhysicsSystem(),this._create(),this._loadSectorSystem(),this._loadClusterSystem(),this._loadSelectionSystem(),this._loadHierarchySystem(),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1),this.setOptions(i),this.freezeSimulation=!1,this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.calculationNodes={},this.calculationNodeIndices=[],this.nodeIndices=[],this.nodes={},this.edges={},this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.pointerPosition={x:0,y:0},this.areaCenter={},this.scale=1,this.previousScale=this.scale,this.nodesData=null,this.edgesData=null,this.nodesListeners={add:function(t,e){o._addNodes(e.items),o.start()},update:function(t,e){o._updateNodes(e.items,e.data),o.start()},remove:function(t,e){o._removeNodes(e.items),o.start()}},this.edgesListeners={add:function(t,e){o._addEdges(e.items),o.start()},update:function(t,e){o._updateEdges(e.items),o.start()},remove:function(t,e){o._removeEdges(e.items),o.start()}},this.moving=!0,this.timer=void 0,this.setData(e,this.constants.clustering.enabled||this.constants.hierarchicalLayout.enabled),this.initializing=!1,1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent(void 0,!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(56),n=i(45),r=i(59),a=i(1),h=i(47),d=i(3),l=i(4),c=i(42),p=i(43),u=i(38),m=i(39),f=i(40),g=i(37),v=i(41),y=i(54),b=i(55),_=i(52);i(53),o(s.prototype),s.prototype._determineBrowserMethod=function(){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)},s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;et.boundingBox.left&&(s=t.boundingBox.left),ot.boundingBox.bottom&&(e=t.boundingBox.bottom),i=this.constants.clustering.initialMaxNodes?49.07548/(n+142.05338)+91444e-8:12.662/(n+7.4147)+.0964822:1==this.constants.clustering.enabled&&n>=this.constants.clustering.initialMaxNodes?77.5271985/(n+187.266146)+476710517e-13:30.5062972/(n+19.93597763)+.08413486;var r=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);s*=r}else{var a=1.1*Math.abs(o.maxX-o.minX),h=1.1*Math.abs(o.maxY-o.minY),d=this.frame.canvas.clientWidth/a,l=this.frame.canvas.clientHeight/h;s=l>=d?d:l}s>1&&(s=1);var c=this._findCenter(o);if(0==i){var p={position:c,scale:s,animation:t};this.moveTo(p),this.moving=!0,this.start()}else c.x*=s,c.y*=s,c.x-=.5*this.frame.canvas.clientWidth,c.y-=.5*this.frame.canvas.clientHeight,this._setScale(s),this._setTranslation(-c.x,-c.y)},s.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},s.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=c.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var s=p.parseGephi(t.gephi);return void this.setData(s) +}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this._putDataInSector(),0==e&&(1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):this.constants.stabilize&&this._stabilize(),this.start()),this.initializing=!1},s.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","clustering","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(a.selectiveNotDeepExtend(i,this.constants,t),a.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),a.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),t.physics&&(a.mergeOptions(this.constants.physics,t.physics,"barnesHut"),a.mergeOptions(this.constants.physics,t.physics,"repulsion"),t.physics.hierarchicalRepulsion)){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),a.mergeOptions(this.constants,t,"smoothCurves"),a.mergeOptions(this.constants,t,"hierarchicalLayout"),a.mergeOptions(this.constants,t,"clustering"),a.mergeOptions(this.constants,t,"navigation"),a.mergeOptions(this.constants,t,"keyboard"),a.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(a.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover)),this.constants.edges.inheritColor=!1),t.edges.fontColor||void 0!==t.edges.color&&(a.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var s=a.parseColor(t.nodes.color);this.constants.nodes.color.background=s.background,this.constants.nodes.color.border=s.border,this.constants.nodes.color.highlight.background=s.highlight.background,this.constants.nodes.color.highlight.border=s.highlight.border,this.constants.nodes.color.hover.background=s.hover.background,this.constants.nodes.color.hover.border=s.hover.border}if(t.groups)for(var o in t.groups)if(t.groups.hasOwnProperty(o)){var n=t.groups[o];this.groups.add(o,n)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=a.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new b(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.');this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._createKeyBinds(),this.setSize(this.constants.width,this.constants.height),this.moving=!0,this.start()}},s.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}var i=this;this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",i._onTap.bind(i)),this.hammer.on("doubletap",i._onDoubleTap.bind(i)),this.hammer.on("hold",i._onHold.bind(i)),this.hammer.on("pinch",i._onPinch.bind(i)),this.hammer.on("touch",i._onTouch.bind(i)),this.hammer.on("dragstart",i._onDragStart.bind(i)),this.hammer.on("drag",i._onDrag.bind(i)),this.hammer.on("dragend",i._onDragEnd.bind(i)),this.hammer.on("mousewheel",i._onMouseWheel.bind(i)),this.hammer.on("DOMMouseScroll",i._onMouseWheel.bind(i)),this.hammer.on("mousemove",i._onMouseMoveTitle.bind(i)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",i._onRelease.bind(i)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=r(),this.keycharm.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.keycharm.bind("up",this._moveUp.bind(t),"keydown"),this.keycharm.bind("up",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("down",this._moveDown.bind(t),"keydown"),this.keycharm.bind("down",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("left",this._moveLeft.bind(t),"keydown"),this.keycharm.bind("left",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("right",this._moveRight.bind(t),"keydown"),this.keycharm.bind("right",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("=",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("=",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num+",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("num+",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("num-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("[",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("[",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("]",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("]",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pageup",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("pageup",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.keycharm.bind("esc",this._createManipulatorBar.bind(t)),this.keycharm.bind("delete",this._deleteSelected.bind(t)))},s.prototype.destroy=function(){for(this.start=function(){},this.redraw=function(){},this.timer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off();this.frame.hasChildNodes();)this.frame.removeChild(this.frame.firstChild);for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild)},s.prototype._getPointer=function(t){return{x:t.pageX-a.getAbsoluteLeft(this.frame.canvas),y:t.pageY-a.getAbsoluteTop(this.frame.canvas)}},s.prototype._onTouch=function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this.touchTime=(new Date).valueOf(),this._handleTouch(this.drag.pointer))},s.prototype._onDragStart=function(){this._handleDragStart()},s.prototype._handleDragStart=function(){var t=this.drag,e=this._getNodeAt(t.pointer);if(t.dragging=!0,t.selection=[],t.translation=this._getTranslation(),t.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1),this.emit("dragStart",{nodeIds:this.getSelection().nodes});for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],o={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,t.selection.push(o)}}},s.prototype._onDrag=function(t){this._handleOnDrag(t)},s.prototype._handleOnDrag=function(t){if(!this.drag.pinched){this.releaseNode();var e=this._getPointer(t.gesture.center),i=this,s=this.drag,o=s.selection;if(o&&o.length&&1==this.constants.dragNodes){var n=e.x-s.pointer.x,r=e.y-s.pointer.y;o.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+n)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.dragNetwork){var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw()}}},s.prototype._onDragEnd=function(t){this._handleDragEnd(t)},s.prototype._handleDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.length?(t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed}),this.moving=!0,this.start()):this._redraw(),0==this.draggingNodes?this.emit("dragEnd",{nodeIds:[]}):this.emit("dragEnd",{nodeIds:this.getSelection().nodes})},s.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},s.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},s.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},s.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},s.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},s.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=null;void 0!==this.drag&&1==this.drag.dragging&&(s=this.DOMtoCanvas(this.drag.pointer));var o=this._getTranslation(),n=t/i,r=(1-n)*e.x+o.x*n,a=(1-n)*e.y+o.y*n;if(this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(r,a),this.updateClustersDefault(),null!=s){var h=this.canvasToDOM(s);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}return this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},s.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var o=h.fakeGesture(this,t),n=this._getPointer(o.center);this._zoom(i,n)}t.preventDefault()},s.prototype._onMouseMoveTitle=function(t){var e=h.fakeGesture(this,t),i=this._getPointer(e.center);this.popupObj&&this._checkHidePopup(i);var s=this,o=function(){s._checkShowPopup(i)};if(this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(o,this.constants.tooltip.delay)),1==this.constants.hover){for(var n in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(n)&&(this.hoverObj.edges[n].hover=!1,delete this.hoverObj.edges[n]);var r=this._getNodeAt(i);null==r&&(r=this._getEdgeAt(i)),null!=r&&this._hoverObject(r);for(var a in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(a)&&(r instanceof f&&r.id!=a||r instanceof g||null==r)&&(this._blurObject(this.hoverObj.nodes[a]),delete this.hoverObj.nodes[a]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj,o=!1;if(void 0==this.popupObj){var n=this.nodes;for(e in n)if(n.hasOwnProperty(e)){var r=n[e];if(r.isOverlappingWith(i)){if(void 0!==r.getTitle()){this.popupObj=r;break}o=!0}}}if(void 0===this.popupObj&&0==o){var a=this.edges;for(e in a)if(a.hasOwnProperty(e)){var h=a[e];if(h.connected&&void 0!==h.getTitle()&&h.isOverlappingWith(i)){this.popupObj=h;break}}}if(this.popupObj){if(this.popupObj!=s){var d=this;d.popup||(d.popup=new v(d.frame,d.constants.tooltip)),d.popup.setPosition(t.x-3,t.y-3),d.popup.setText(d.popupObj.getTitle()),d.popup.show()}}else this.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},s.prototype.setSize=function(t,e){var i=!1,s=this.frame.canvas.width,o=this.frame.canvas.height;t!=this.constants.width||e!=this.constants.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.constants.width=t,this.constants.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),1==i&&this.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:s*this.pixelRatio,oldHeight:o*this.pixelRatio})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(Array.isArray(t))this.nodesData=new d,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new d}if(e&&a.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;a.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},s.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var o=this.nodesData.get(e),n=new f(o,this.images,this.groups,this.constants);if(this.nodes[e]=n,!(0!=n.xFixed&&0!=n.yFixed||null!==n.x&&null!==n.y)){var r=1*t.length+10,a=2*Math.PI*Math.random();0==n.xFixed&&(n.x=r*Math.cos(a)),0==n.yFixed&&(n.y=r*Math.sin(a))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},s.prototype._updateNodes=function(t,e){for(var i=this.nodes,s=0,o=t.length;o>s;s++){var n=t[s],r=i[n],a=e[s];r?r.setProperties(a,this.constants):(r=new f(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i)},s.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++){var o=t[i];delete e[o]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},s.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof d||t instanceof l)this.edgesData=t;else if(Array.isArray(t))this.edgesData=new d,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new d}if(e&&a.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;a.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},s.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n];r&&r.disconnect();var a=i.get(n,{showInternalIds:!0});e[n]=new g(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},s.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new g(r,this,this.constants),this.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},s.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++){var o=t[i],n=e[o];n&&(null!=n.via&&delete this.sectors.support.nodes[n.via.id],n.disconnect(),delete e[o])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},s.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[],e[t].dynamicEdges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},s.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0;for(e in t)if(t.hasOwnProperty(e)){var o=t[e].getValue();void 0!==o&&(i=void 0===i?o:Math.min(o,i),s=void 0===s?o:Math.max(o,s))}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s)},s.prototype.redraw=function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},s.prototype._redraw=function(t){var e=this.frame.canvas.getContext("2d");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.frame.canvas.width*this.pixelRatio,s=this.frame.canvas.height*this.pixelRatio;e.clearRect(0,0,i,s),e.save(),e.translate(this.translation.x,this.translation.y),e.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth*this.pixelRatio),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight*this.pixelRatio)},1!=t&&(this._doInAllSectors("_drawAllSectorNodes",e),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",e)),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",e,!1),1!=t&&1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",e),e.restore(),1==t&&e.clearRect(0,0,i,s)},s.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},s.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},s.prototype._setScale=function(t){this.scale=t},s.prototype._getScale=function(){return this.scale},s.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},s.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},s.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},s.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},s.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},s.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},s.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var o in i)i.hasOwnProperty(o)&&(i[o].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[o].isSelected()?s.push(o):(i[o].inArea()||e)&&i[o].draw(t));for(var n=0,r=s.length;r>n;n++)(i[s[n]].inArea()||e)&&i[s[n]].draw(t)},s.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},s.prototype._drawControlNodes=function(t){var e=this.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},s.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var o=this.constants.minVelocity/Math.max(this.scale,.05);return o>.5*this.constants.maxVelocity?!0:this._isMoving(o)}return!1},s.prototype._revertPhysicsState=function(){var t=this.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].revertPosition()},s.prototype._revertPhysicsTick=function(){this._doInAllActiveSectors("_revertPhysicsState"),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&this._doInSupportSector("_revertPhysicsState")},s.prototype._physicsTick=function(){if(!this.freezeSimulation&&1==this.moving){var t=!1,e=!1;this._doInAllActiveSectors("_initializeForceCalculation");var i=this._doInAllActiveSectors("_discreteStepNodes");1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&(e=this._doInSupportSector("_discreteStepNodes"));for(var s=0;s2*e||1==this.runDoubleSpeed)&&1==this.moving&&(this._physicsTick(),0!=this.renderTime&&(this.runDoubleSpeed=!0));var i=Date.now();this._redraw(),this.renderTime=Date.now()-i,this.start()},"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),s.prototype.start=function(){if(1==this.moving||0!=this.xIncrement||0!=this.yIncrement||0!=this.zoomIncrement)this.timer||(this.timer=1==this.requiresTimeout?window.setTimeout(this._animationStep.bind(this),this.renderTimestep):window.requestAnimationFrame(this._animationStep.bind(this)));else if(this._redraw(),this.stabilizationIterations>1){var t=this,e={iterations:t.stabilizationIterations};this.stabilizationIterations=0,this.startedStabilization=!1,setTimeout(function(){t.emit("stabilized",e)},0)}else this.stabilizationIterations=0},s.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},s.prototype.toggleFreeze=function(){0==this.freezeSimulation?this.freezeSimulation=!0:(this.freezeSimulation=!1,this.start())},s.prototype._configureSmoothCurves=function(t){if(void 0===t&&(t=!0),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes();for(var e in this.sectors.support.nodes)this.sectors.support.nodes.hasOwnProperty(e)&&void 0===this.edges[this.sectors.support.nodes[e].parentEdgeId]&&delete this.sectors.support.nodes[e]}else{this.sectors.support.nodes={};for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.edges[i].via=null)}this._updateCalculationNodes(),t||(this.moving=!0,this.start())},s.prototype._createBezierNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic)for(var t in this.edges)if(this.edges.hasOwnProperty(t)){var e=this.edges[t];if(null==e.via){var i="edgeId:".concat(e.id);this.sectors.support.nodes[i]=new f({id:i,mass:1,shape:"circle",image:"",internalMultiplier:1},{},{},this.constants),e.via=this.sectors.support.nodes[i],e.via.parentEdgeId=e.id,e.positionBezierNode()}}},s.prototype._initializeMixinLoaders=function(){for(var t in y)y.hasOwnProperty(t)&&(s.prototype[t]=y[t])},s.prototype.storePosition=function(){console.log("storePosition is depricated: use .storePositions() from now on."),this.storePositions()},s.prototype.storePositions=function(){var t=[];for(var e in this.nodes)if(this.nodes.hasOwnProperty(e)){var i=this.nodes[e],s=!this.nodes.xFixed,o=!this.nodes.yFixed;(this.nodesData._data[e].x!=Math.round(i.x)||this.nodesData._data[e].y!=Math.round(i.y))&&t.push({id:e,x:Math.round(i.x),y:Math.round(i.y),allowedToMoveX:s,allowedToMoveY:o})}this.nodesData.update(t)},s.prototype.getPositions=function(t){var e={};if(void 0!==t){if(1==Array.isArray(t)){for(var i=0;i=1&&(this.easingTime=0,this._redraw=null!=this.lockedOnNodeId?this._lockedRedraw:this._classicRedraw,this.emit("animationFinished"))},s.prototype._classicRedraw=function(){},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.setScale=function(){return this._setScale()},s.prototype.getScale=function(){return this._getScale()},s.prototype.getCenterCoordinates=function(){return this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight})},s.prototype.getBoundingBox=function(t){return void 0!==this.nodes[t]?this.nodes[t].boundingBox:void 0},t.exports=s},function(t,e,i){function s(t,e,i){if(!e)throw"No network provided";var s=["edges","physics"],n=o.selectiveBridgeObject(s,i);this.options=n.edges,this.physics=n.physics,this.options.smoothCurves=i.smoothCurves,this.network=e,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.title=void 0,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.value=void 0,this.selected=!1,this.hover=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.dirtyLabel=!0,this.from=null,this.to=null,this.via=null,this.fromBackup=null,this.toBackup=null,this.originalFromId=[],this.originalToId=[],this.connected=!1,this.widthFixed=!1,this.lengthFixed=!1,this.setProperties(t),this.controlNodesEnabled=!1,this.controlNodes={from:null,to:null,positions:{}},this.connectedNode=null}var o=i(1),n=i(40);s.prototype.setProperties=function(t){if(t){var e=["style","fontSize","fontFace","fontColor","fontFill","width","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","inheritColor"];switch(o.selectiveDeepExtend(e,this.options,t),void 0!==t.from&&(this.fromId=t.from),void 0!==t.to&&(this.toId=t.to),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.dirtyLabel=!0),void 0!==t.title&&(this.title=t.title),void 0!==t.value&&(this.value=t.value),void 0!==t.length&&(this.physics.springLength=t.length),void 0!==t.color&&(this.options.inheritColor=!1,o.isString(t.color)?(this.options.color.color=t.color,this.options.color.highlight=t.color):(void 0!==t.color.color&&(this.options.color.color=t.color.color),void 0!==t.color.highlight&&(this.options.color.highlight=t.color.highlight),void 0!==t.color.hover&&(this.options.color.hover=t.color.hover))),this.connect(),this.widthFixed=this.widthFixed||void 0!==t.width,this.lengthFixed=this.lengthFixed||void 0!==t.length,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.options.style){case"line":this.draw=this._drawLine; +break;case"arrow":this.draw=this._drawArrow;break;case"arrow-center":this.draw=this._drawArrowCenter;break;case"dash-line":this.draw=this._drawDashLine;break;default:this.draw=this._drawLine}}},s.prototype.connect=function(){this.disconnect(),this.from=this.network.nodes[this.fromId]||null,this.to=this.network.nodes[this.toId]||null,this.connected=this.from&&this.to,this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this))},s.prototype.disconnect=function(){this.from&&(this.from.detachEdge(this),this.from=null),this.to&&(this.to.detachEdge(this),this.to=null),this.connected=!1},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.getValue=function(){return this.value},s.prototype.setValueRange=function(t,e){if(!this.widthFixed&&void 0!==this.value){var i=(this.options.widthMax-this.options.widthMin)/(e-t);this.options.width=(this.value-t)*i+this.options.widthMin,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier}},s.prototype.draw=function(){throw"Method draw not initialized in edge"},s.prototype.isOverlappingWith=function(t){if(this.connected){var e=10,i=this.from.x,s=this.from.y,o=this.to.x,n=this.to.y,r=t.left,a=t.top,h=this._getDistanceToEdge(i,s,o,n,r,a);return e>h}return!1},s.prototype._getColor=function(){var t=this.options.color;return"to"==this.options.inheritColor?t={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:this.to.options.color.border}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(t={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:this.from.options.color.border}),1==this.selected?t.highlight:1==this.hover?t.hover:t.color},s.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var s=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),o=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:s,y:o}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},s.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},s.prototype._getViaCoordinates=function(){var t=null,e=null,i=this.options.smoothCurves.roundness,s=this.options.smoothCurves.type,o=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);return"discrete"==s||"diagonalCross"==s?Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==s&&(t=i*n>o?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*o,e=this.from.y-i*o):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o)),"discrete"==s&&(e=i*o>n?this.from.y:e)):"straightCross"==s?Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,p=i-h/2,u=s-c/2;this.labelDimensions={top:u,left:p,width:h,height:c,yLine:o}}void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)),t.fillStyle=this.options.fontColor||"black",t.textAlign="center",t.textBaseline="middle",o=this.labelDimensions.yLine;for(var d=0;r>d;d++)t.fillText(n[d],i,o),o+=a}},s.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.mozDash||void 0!==t.setLineDash){var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],"undefined"!=typeof t.setLineDash?(t.setLineDash(i),t.lineDashOffset=0):(t.mozDash=i,t.mozDashOffset=0),e=this._line(t),"undefined"!=typeof t.setLineDash?(t.setLineDash([0]),t.lineDashOffset=0):(t.mozDash=[0],t.mozDashOffset=0)}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var s;if(1==this.options.smoothCurves.enabled&&null!=e){var o=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));s={x:o,y:n}}else s=this._pointOnLine(.5);this._label(t,this.label,s.x,s.y)}},s.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},s.prototype._pointOnCircle=function(t,e,i,s){var o=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}},s.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),s=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var s=.2*Math.PI,o=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var s,o=this.to.x-this.from.x,n=this.to.y-this.from.y,r=Math.sqrt(o*o+n*n),a=this.from.distanceToBorder(t,e+Math.PI),h=(r-a)/r,d=h*this.from.x+(1-h)*this.to.x,l=h*this.from.y+(1-h)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?s=this.via:1==this.options.smoothCurves.enabled&&(s=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=s.x&&(e=Math.atan2(this.to.y-s.y,this.to.x-s.x),o=this.to.x-s.x,n=this.to.y-s.y,r=Math.sqrt(o*o+n*n));var c,p,u=this.to.distanceToBorder(t,e),m=(r-u)/r;if(1==this.options.smoothCurves.enabled&&null!=s.x?(c=(1-m)*s.x+m*this.to.x,p=(1-m)*s.y+m*this.to.y):(c=(1-m)*this.from.x+m*this.to.x,p=(1-m)*this.from.y+m*this.to.y),t.beginPath(),t.moveTo(d,l),1==this.options.smoothCurves.enabled&&null!=s.x?t.quadraticCurveTo(s.x,s.y,c,p):t.lineTo(c,p),t.stroke(),i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(c,p,e,i),t.fill(),t.stroke(),this.label){var f;if(1==this.options.smoothCurves.enabled&&null!=s){var g=.5*(.5*(this.from.x+s.x)+.5*(this.to.x+s.x)),v=.5*(.5*(this.from.y+s.y)+.5*(this.to.y+s.y));f={x:g,y:v}}else f=this._pointOnLine(.5);this._label(t,this.label,f.x,f.y)}}else{var y,b,_,x=this.from,w=.25*Math.max(100,this.physics.springLength);x.width||x.resize(t),x.width>x.height?(y=x.x+.5*x.width,b=x.y-w,_={x:y,y:x.y,angle:.9*Math.PI}):(y=x.x+w,b=x.y-.5*x.height,_={x:x.x,y:b,angle:.6*Math.PI}),t.beginPath(),t.arc(y,b,w,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(_.x,_.y,_.angle,i),t.fill(),t.stroke(),this.label&&(f=this._pointOnCircle(y,b,w,.5),this._label(t,this.label,f.x,f.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,p,u,m,f,g,v=1e9;for(c=0;10>c;c++)p=.1*c,u=Math.pow(1-p,2)*t+2*p*(1-p)*a+Math.pow(p,2)*i,m=Math.pow(1-p,2)*e+2*p*(1-p)*h+Math.pow(p,2)*s,c>0&&(l=this._getDistanceToLine(f,g,u,m,o,n),v=v>l?l:v),f=u,g=m;r=v}else r=this._getDistanceToLine(t,e,i,s,o,n);else{var u,m,y,b,_=.25*this.physics.springLength,x=this.from;x.width>x.height?(u=x.x+.5*x.width,m=x.y-_):(u=x.x+_,m=x.y-.5*x.height),y=u-o,b=m-n,r=Math.abs(Math.sqrt(y*y+b*b)-_)}return this.labelDimensions.lefto&&this.labelDimensions.topn?0:r},s.prototype._getDistanceToLine=function(t,e,i,s,o,n){var r=i-t,a=s-e,h=r*r+a*a,d=((o-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,p=l-o,u=c-n;return Math.sqrt(p*p+u*u)},s.prototype.setScale=function(t){this.networkScaleInv=1/t},s.prototype.select=function(){this.selected=!0},s.prototype.unselect=function(){this.selected=!1},s.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):(this.via.x=0,this.via.y=0)},s.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),s={nodes:{group:"",radius:8},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s)}0==this.controlNodes.from.selected&&0==this.controlNodes.to.selected&&(this.controlNodes.positions=this.getControlNodePositions(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y,this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},s.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},s.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,s=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),o=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>s?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>o?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},s.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},s.prototype.getControlNodePositions=function(t){var e,i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n,h=a*this.from.x+(1-a)*this.to.x,d=a*this.from.y+(1-a)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?e=this.via:1==this.options.smoothCurves.enabled&&(e=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=e.x&&(i=Math.atan2(this.to.y-e.y,this.to.x-e.x),s=this.to.x-e.x,o=this.to.y-e.y,n=Math.sqrt(s*s+o*o));var l,c,p=this.to.distanceToBorder(t,i),u=(n-p)/n;return 1==this.options.smoothCurves.enabled&&null!=e.x?(l=(1-u)*e.x+u*this.to.x,c=(1-u)*e.y+u*this.to.y):(l=(1-u)*this.from.x+u*this.to.x,c=(1-u)*this.from.y+u*this.to.y),{from:{x:h,y:d},to:{x:l,y:c}}},t.exports=s},function(t,e,i){function s(){this.clear(),this.defaultIndex=0}i(1);s.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}}],s.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},s.prototype.get=function(t){var e=this.groups[t];if(void 0==e){var i=this.defaultIndex%s.DEFAULT.length;this.defaultIndex++,e={},e.color=s.DEFAULT[i],this.groups[t]=e}return e},s.prototype.add=function(t,e){return this.groups[t]=e,e},t.exports=s},function(t){function e(){this.images={},this.callback=void 0}e.prototype.setOnloadCallback=function(t){this.callback=t},e.prototype.load=function(t,e){if(void 0==this.images[t]){var i=this,s=new Image;s.onload=function(){0==this.width&&(document.body.appendChild(this),this.width=this.offsetWidth,this.height=this.offsetHeight,document.body.removeChild(this)),i.callback&&(i.images[t]=s,i.callback(this))},s.onerror=function(){void 0===e?(console.error("Could not load image:",t),delete this.src,i.callback&&i.callback(this)):this.src=e},s.src=t}return s},t.exports=e},function(t,e,i){function s(t,e,i,s){var n=o.selectiveBridgeObject(["nodes"],s);this.options=n.nodes,this.selected=!1,this.hover=!1,this.edges=[],this.dynamicEdges=[],this.reroutedEdges={},this.fontDrawThreshold=3,this.id=void 0,this.allowedToMoveX=!1,this.allowedToMoveY=!1,this.xFixed=!1,this.yFixed=!1,this.horizontalAlignLeft=!0,this.verticalAlignTop=!0,this.baseRadiusValue=s.nodes.radius,this.radiusFixed=!1,this.level=-1,this.preassignedLevel=!1,this.hierarchyEnumerated=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.boundingBox={top:0,left:0,right:0,bottom:0},this.imagelist=e,this.grouplist=i,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.x=null,this.y=null,this.previousState={vx:0,vy:0,x:0,y:0},this.damping=s.physics.damping,this.fixedData={x:null,y:null},this.setProperties(t,n),this.resetCluster(),this.dynamicEdgesLength=0,this.clusterSession=0,this.clusterSizeWidthFactor=s.clustering.nodeScaling.width,this.clusterSizeHeightFactor=s.clustering.nodeScaling.height,this.clusterSizeRadiusFactor=s.clustering.nodeScaling.radius,this.maxNodeSizeIncrements=s.clustering.maxNodeSizeIncrements,this.growthIndicator=0,this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var o=i(1);s.prototype.revertPosition=function(){this.x=this.previousState.x,this.y=this.previousState.y,this.vx=this.previousState.vx,this.vy=this.previousState.vy},s.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},s.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),e=this.dynamicEdges.indexOf(t),-1!=e&&this.dynamicEdges.splice(e,1),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.setProperties=function(t,e){if(t){var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","group","mass"];if(o.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof this.options.group||"string"==typeof this.options.group&&""!=this.options.group){var s=this.grouplist.get(this.options.group);o.deepExtend(this.options,s),this.options.color=o.parseColor(this.options.color)}else void 0===t.color&&(this.options.color=e.nodes.color);if(void 0!==t.radius&&(this.baseRadiusValue=this.options.radius),void 0!==t.color&&(this.options.color=o.parseColor(t.color)),void 0!==this.options.image&&""!=this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage)}switch(void 0!==t.allowedToMoveX?(this.xFixed=!t.allowedToMoveX,this.allowedToMoveX=t.allowedToMoveX):void 0!==t.x&&0==this.allowedToMoveX&&(this.xFixed=!0),void 0!==t.allowedToMoveY?(this.yFixed=!t.allowedToMoveY,this.allowedToMoveY=t.allowedToMoveY):void 0!==t.y&&0==this.allowedToMoveY&&(this.yFixed=!0),this.radiusFixed=this.radiusFixed||void 0!==t.radius,"image"==this.options.shape&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},s.prototype.select=function(){this.selected=!0,this._reset()},s.prototype.unselect=function(){this.selected=!1,this._reset()},s.prototype.clearSizeCache=function(){this._reset()},s.prototype._reset=function(){this.width=void 0,this.height=void 0},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var s=this.width/2,o=this.height/2,n=Math.sin(e)*s,r=Math.cos(e)*o;return s*o/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},s.prototype._setForce=function(t,e){this.fx=t,this.fy=e},s.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},s.prototype.storeState=function(){this.previousState.x=this.x,this.previousState.y=this.y,this.previousState.vx=this.vx,this.previousState.vy=this.vy},s.prototype.discreteStep=function(t){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var e=this.damping*this.vx,i=(this.fx-e)/this.options.mass;this.vx+=i*t,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var s=this.damping*this.vy,o=(this.fy-s)/this.options.mass;this.vy+=o*t,this.y+=this.vy*t}},s.prototype.discreteStepLimited=function(t,e){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.options.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.options.radius=(this.options.radiusMin+this.options.radiusMax)/2;else{var i=(this.options.radiusMax-this.options.radiusMin)/(e-t);this.options.radius=(this.value-t)*i+this.options.radiusMin}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.networkScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,e,void 0,"top"),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.options.radius),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},s.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(this.x,this.y,this.options.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},s.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._drawDot=function(t){this._drawShape(t,"circle")},s.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},s.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},s.prototype._drawSquare=function(t){this._drawShape(t,"square")},s.prototype._drawStar=function(t){this._drawShape(t,"star")},s.prototype._resizeShape=function(){if(!this.width){this.options.radius=this.baseRadiusValue;var t=2*this.options.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},s.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=this.options.borderWidth,o=this.options.borderWidthSelected||2*this.options.borderWidth,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t[e](this.x,this.y,this.options.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t[e](this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this.label&&(this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height))},s.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height},s.prototype._label=function(t,e,i,s,o,n,r){if(e&&Number(this.options.fontSize)*this.networkScale>this.fontDrawThreshold){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;var a=e.split("\n"),h=a.length,d=Number(this.options.fontSize)+4,l=s+(1-h)/2*d;1==r&&(l=s+(1-h)/(2*d));for(var c=t.measureText(a[0]).width,p=1;h>p;p++){var u=t.measureText(a[p]).width;c=u>c?u:c}var m=this.options.fontSize*h,f=i-c/2,g=s-m/2;"top"==n&&(g+=.5*d),this.labelDimensions={top:g,left:f,width:c,height:m,yLine:l},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(f,g,c,m)),t.fillStyle=this.options.fontColor||"black",t.textAlign=o||"center",t.textBaseline=n||"middle";for(var p=0;h>p;p++)t.fillText(a[p],i,l),l+=d}},s.prototype.getTextSize=function(t){if(void 0!==this.label){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;for(var e=this.label.split("\n"),i=(Number(this.options.fontSize)+4)*e.length,s=0,o=0,n=e.length;n>o;o++)s=Math.max(s,t.measureText(e[o]).width);return{width:s,height:i}}return{width:0,height:0}},s.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.ys&&(n=s-e-this.padding),no&&(r=o-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){o=r.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=a(o.attr,t.node))),i=n.length-1;i>=0;i--){var h=n[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(o)&&h.nodes.push(o)}e.attr&&(o.attr=a(o.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,s,o){var n={from:e,to:i,type:s};return t.edge&&(n.attr=a({},t.edge)),n.attr=a(n.attr||{},o),n}function p(){for(N=S.NULL,k="";" "==E||" "==E||"\n"==E||"\r"==E;)o();do{var t=!1;if("#"==E){for(var e=O-1;" "==T.charAt(e)||" "==T.charAt(e);)e--;if("\n"==T.charAt(e)||""==T.charAt(e)){for(;""!=E&&"\n"!=E;)o();t=!0}}if("/"==E&&"/"==n()){for(;""!=E&&"\n"!=E;)o();t=!0}if("/"==E&&"*"==n()){for(;""!=E;){if("*"==E&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==E||" "==E||"\n"==E||"\r"==E;)o()}while(t);if(""==E)return void(N=S.DELIMITER);var i=E+n();if(C[i])return N=S.DELIMITER,k=i,o(),void o();if(C[E])return N=S.DELIMITER,k=E,void o();if(r(E)||"-"==E){for(k+=E,o();r(E);)k+=E,o();return"false"==k?k=!1:"true"==k?k=!0:isNaN(Number(k))||(k=Number(k)),void(N=S.IDENTIFIER)}if('"'==E){for(o();""!=E&&('"'!=E||'"'==E&&'"'==n());)k+=E,'"'==E&&o(),o();if('"'!=E)throw x('End of string " expected');return o(),void(N=S.IDENTIFIER)}for(N=S.UNKNOWN;""!=E;)k+=E,o();throw new SyntaxError('Syntax error in part "'+w(k,30)+'"')}function u(){var t={};if(s(),p(),"strict"==k&&(t.strict=!0,p()),("graph"==k||"digraph"==k)&&(t.type=k,p()),N==S.IDENTIFIER&&(t.id=k,p()),"{"!=k)throw x("Angle bracket { expected");if(p(),m(t),"}"!=k)throw x("Angle bracket } expected");if(p(),""!==k)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==k&&"}"!=k;)f(t),";"==k&&p()}function f(t){var e=g(t);if(e)return void b(t,e);var i=v(t);if(!i){if(N!=S.IDENTIFIER)throw x("Identifier expected");var s=k;if(p(),"="==k){if(p(),N!=S.IDENTIFIER)throw x("Identifier expected");t[s]=k,p()}else y(t,s)}}function g(t){var e=null;if("subgraph"==k&&(e={},e.type="subgraph",p(),N==S.IDENTIFIER&&(e.id=k,p())),"{"==k){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=k)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 v(t){return"node"==k?(p(),t.node=_(),"node"):"edge"==k?(p(),t.edge=_(),"edge"):"graph"==k?(p(),t.graph=_(),"graph"):null}function y(t,e){var i={id:e},s=_();s&&(i.attr=s),d(t,i),b(t,e)}function b(t,e){for(;"->"==k||"--"==k;){var i,s=k;p();var o=g(t);if(o)i=o;else{if(N!=S.IDENTIFIER)throw x("Identifier or subgraph expected");i=k,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==k;){for(p(),t={};""!==k&&"]"!=k;){if(N!=S.IDENTIFIER)throw x("Attribute name expected");var e=k;if(p(),"="!=k)throw x("Equal sign = expected");if(p(),N!=S.IDENTIFIER)throw x("Attribute value expected");var i=k;h(t,e,i),p(),","==k&&p()}if("]"!=k)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(k,30)+'" (char '+O+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function D(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 M(t){var e=i(t),s={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),s.nodes.push(e)}),e.edges){var o=function(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=o(t);s.edges.push(e)}),D(e,i,function(e,i){var n=c(s,e.id,i.id,t.type,t.attr),r=o(n);s.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=o(t);s.edges.push(e)})})}return e.attr&&(s.options=e.attr),s}var S={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},C={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},T="",O=0,E="",k="",N=S.NULL,L=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=M},function(t,e){function i(t,e){var i=[],s=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var o=t.edges,n=t.nodes,r=0;r=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}return{start:e,end:i}},s.prototype.setWindow=function(t,e,i){var s=i&&void 0!==i.animate?i.animate:!0;if(1==arguments.length){var o=arguments[0];this.range.setRange(o.start,o.end,s)}else this.range.setRange(t,e,s)},s.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,s=r.convert(t,"Date").valueOf(),o=s-i/2,n=s+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(o,n,a)},s.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},s.prototype.redraw=function(){var t=!1,e=this.options,i=this.props,s=this.dom;if(s){h.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(s.root,"top"),r.removeClassName(s.root,"bottom")):(r.removeClassName(s.root,"top"),r.addClassName(s.root,"bottom")),s.root.style.maxHeight=r.option.asSize(e.maxHeight,""),s.root.style.minHeight=r.option.asSize(e.minHeight,""),s.root.style.width=r.option.asSize(e.width,""),i.border.left=(s.centerContainer.offsetWidth-s.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(s.centerContainer.offsetHeight-s.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var o=s.root.offsetHeight-s.root.clientHeight,n=s.root.offsetWidth-s.root.clientWidth;0===s.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===s.root.clientHeight&&(n=o),i.center.height=s.center.offsetHeight,i.left.height=s.left.offsetHeight,i.right.height=s.right.offsetHeight,i.top.height=s.top.clientHeight||-i.border.top,i.bottom.height=s.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom;s.root.style.height=r.option.asSize(e.height,d+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var l=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=s.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=s.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=s.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,s.background.style.height=i.background.height+"px",s.backgroundVertical.style.height=i.background.height+"px",s.backgroundHorizontal.style.height=i.centerContainer.height+"px",s.centerContainer.style.height=i.centerContainer.height+"px",s.leftContainer.style.height=i.leftContainer.height+"px",s.rightContainer.style.height=i.rightContainer.height+"px",s.background.style.width=i.background.width+"px",s.backgroundVertical.style.width=i.centerContainer.width+"px",s.backgroundHorizontal.style.width=i.background.width+"px",s.centerContainer.style.width=i.center.width+"px",s.top.style.width=i.top.width+"px",s.bottom.style.width=i.bottom.width+"px",s.background.style.left="0",s.background.style.top="0",s.backgroundVertical.style.left=i.left.width+i.border.left+"px",s.backgroundVertical.style.top="0",s.backgroundHorizontal.style.left="0",s.backgroundHorizontal.style.top=i.top.height+"px",s.centerContainer.style.left=i.left.width+"px",s.centerContainer.style.top=i.top.height+"px",s.leftContainer.style.left="0",s.leftContainer.style.top=i.top.height+"px",s.rightContainer.style.left=i.left.width+i.center.width+"px",s.rightContainer.style.top=i.top.height+"px",s.top.style.left=i.left.width+"px",s.top.style.top="0",s.bottom.style.left=i.left.width+"px",s.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"bottom"==e.orientation&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=p+"px",s.left.style.left="0",s.left.style.top=p+"px",s.right.style.left="0",s.right.style.top=p+"px";var u=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(s.shadowTop.style.visibility=u,s.shadowBottom.style.visibility=m,s.shadowTopLeft.style.visibility=u,s.shadowBottomLeft.style.visibility=m,s.shadowTopRight.style.visibility=u,s.shadowBottomRight.style.visibility=m,this.components.forEach(function(e){t=e.redraw()||t}),t){var f=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTopt[s].y?t[s].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=o.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?s._catmullRom(t,e):s._linear(t),1==e.options.shaded.enabled){var d,l=o.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},s._catmullRomUniform=function(t){for(var e,i,s,o,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],s=t[l+1],o=d>l+2?t[l+2]:s,n={x:(-e.x+6*i.x+s.x)*h,y:(-e.y+6*i.y+s.y)*h},r={x:(i.x+6*s.x-o.x)*h,y:(i.y+6*s.y-o.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+s.x+","+s.y+" ";return a},s._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var s,o,n,r,a,h,d,l,c,p,u,m,f,g,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",D=t.length,M=0;D-1>M;M++)s=0==M?t[0]:t[M-1],o=t[M],n=t[M+1],r=D>M+2?t[M+2]:n,d=Math.sqrt(Math.pow(s.x-o.x,2)+Math.pow(s.y-o.y,2)),l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),c=Math.sqrt(Math.pow(n.x-r.x,2)+Math.pow(n.y-r.y,2)),g=Math.pow(c,i),y=Math.pow(c,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),x=Math.pow(d,i),_=Math.pow(d,2*i),p=2*_+3*x*v+b,u=2*y+3*g*v+b,m=3*x*(x+v),m>0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={x:(-b*s.x+p*o.x+_*n.x)*m,y:(-b*s.y+p*o.y+_*n.y)*m},h={x:(y*o.x+u*n.x-b*r.x)*f,y:(y*o.y+u*n.y-b*r.y)*f},0==a.x&&0==a.y&&(a=o),0==h.x&&0==h.y&&(h=n),w+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+n.x+","+n.y+" ";return w},s._linear=function(t){for(var e="",i=0;it[s].y?t[s].y:e,i=i0&&(n=Math.min(n,Math.abs(c[d-1].x-r))),a=s._getSafeDrawData(n,h,m);else{var g=d+(p[r].amount-p[r].resolved),v=d-(p[r].resolved+1);g0&&(n=Math.min(n,Math.abs(c[v].x-r))),a=s._getSafeDrawData(n,h,m),p[r].resolved+=1,"stack"==h.options.barChart.handleOverlap?(f=p[r].accumulated,p[r].accumulated+=h.zeroPosition-c[d].y):"sideBySide"==h.options.barChart.handleOverlap&&(a.width=a.width/p[r].amount,a.offset+=p[r].resolved*a.width-.5*a.width*(p[r].amount+1),"left"==h.options.barChart.align?a.offset-=.5*a.width:"right"==h.options.barChart.align&&(a.offset+=.5*a.width))}o.drawBar(c[d].x+a.offset,c[d].y-f,a.width,h.zeroPosition-c[d].y,h.className+" bar",i.svgElements,i.svg),1==h.options.drawPoints.enabled&&o.drawPoint(c[d].x+a.offset,c[d].y,h,i.svgElements,i.svg)}},s._getDataIntersections=function(t,e){for(var i,s=0;s0&&(i=Math.min(i,Math.abs(e[s-1].x-e[s].x))),0==i&&(void 0===t[e[s].x]&&(t[e[s].x]={amount:0,resolved:0,accumulated:0}),t[e[s].x].amount+=1) +},s._getSafeDrawData=function(t,e,i){var s,o;return t0?(s=i>t?i:t,o=0,"left"==e.options.barChart.align?o-=.5*t:"right"==e.options.barChart.align&&(o+=.5*t)):(s=e.options.barChart.width,o=0,"left"==e.options.barChart.align?o-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(o+=.5*e.options.barChart.width)),{width:s,offset:o}},s.getStackedBarYRange=function(t,e,i,o,n){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};s._getDataIntersections(r,t),e[o]=s._getStackedBarYRange(r,t),e[o].yAxisOrientation=n,i.push(o)}},s._getStackedBarYRange=function(t,e){for(var i,s=e[0].y,o=e[0].y,n=0;ne[n].y?e[n].y:s,o=ot[r].accumulated?t[r].accumulated:s,o=ot[s].y?t[s].y:e,i=is;s++){var o=s%2===0?1.3*i:.5*i;this.lineTo(t+o*Math.sin(2*s*Math.PI/10),e-o*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,o){var n=Math.PI/180;0>i-2*o&&(o=i/2),0>s-2*o&&(o=s/2),this.beginPath(),this.moveTo(t+o,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,270*n,360*n,!1),this.lineTo(t+i,e+s-o),this.arc(t+i-o,e+s-o,o,0,90*n,!1),this.lineTo(t+o,e+s),this.arc(t+o,e+s-o,o,90*n,180*n,!1),this.lineTo(t,e+o),this.arc(t+o,e+o,o,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var o=.5522848,n=i/2*o,r=s/2*o,a=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var o=1/3,n=i,r=s*o,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,p=t+n/2,u=e+r/2,m=e+(s-r/2),f=e+s;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,p+h,c,p,c),this.bezierCurveTo(p-h,c,t,u+d,t,u),this.bezierCurveTo(t,u-d,p-h,e,p,e),this.bezierCurveTo(p+h,e,l,u-d,l,u),this.lineTo(l,m),this.bezierCurveTo(l,m+d,p+h,f,p,f),this.bezierCurveTo(p-h,f,t,m+d,t,m),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var o=t-s*Math.cos(i),n=e-s*Math.sin(i),r=t-.9*s*Math.cos(i),a=e-.9*s*Math.sin(i),h=o+s/3*Math.cos(i+.5*Math.PI),d=n+s/3*Math.sin(i+.5*Math.PI),l=o+s/3*Math.cos(i-.5*Math.PI),c=n+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,o){o||(o=[10,5]),0==p&&(p=.001);var n=o.length;this.moveTo(t,e);for(var r=i-t,a=s-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var p=o[l++%n];p>d&&(p=d);var u=Math.sqrt(p*p/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[c?"lineTo":"moveTo"](t,e),d-=p,c=!c}})},function(t,e,i){var s=i(66),o=i(60),n=i(61),r=i(62),a=i(63),h=i(64),d=i(65);e._loadMixin=function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=t[e])},e._clearMixin=function(t){for(var e in t)t.hasOwnProperty(e)&&(this[e]=void 0)},e._loadPhysicsSystem=function(){this._loadMixin(s),this._loadSelectedForceSolver(),1==this.constants.configurePhysics?this._loadPhysicsConfiguration():this._cleanupPhysicsConfiguration()},e._loadClusterSystem=function(){this.clusterSession=0,this.hubThreshold=5,this._loadMixin(o)},e._loadSectorSystem=function(){this.sectors={},this.activeSector=["default"],this.sectors.active={},this.sectors.active["default"]={nodes:{},edges:{},nodeIndices:[],formationScale:1,drawingNode:void 0},this.sectors.frozen={},this.sectors.support={nodes:{},edges:{},nodeIndices:[],formationScale:1,drawingNode:void 0},this.nodeIndices=this.sectors.active["default"].nodeIndices,this._loadMixin(n)},e._loadSelectionSystem=function(){this.selectionObj={nodes:{},edges:{}},this._loadMixin(r)},e._loadManipulationSystem=function(){this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,1==this.constants.dataManipulation.enabled?(void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="network-manipulationDiv",this.manipulationDiv.style.display=1==this.editMode?"block":"none",this.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="network-manipulation-editMode",this.editModeDiv.style.display=1==this.editMode?"none":"block",this.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="network-manipulation-closeDiv",this.closeDiv.style.display=this.manipulationDiv.style.display,this.frame.appendChild(this.closeDiv)),this._loadMixin(a),this._createManipulatorBar()):void 0!==this.manipulationDiv&&(this._createManipulatorBar(),this.frame.removeChild(this.manipulationDiv),this.frame.removeChild(this.editModeDiv),this.frame.removeChild(this.closeDiv),this.manipulationDiv=void 0,this.editModeDiv=void 0,this.closeDiv=void 0,this._clearMixin(a))},e._loadNavigationControls=function(){this._loadMixin(h),this._cleanNavigation(),1==this.constants.navigation.enabled&&this._loadNavigationElements()},e._loadHierarchySystem=function(){this._loadMixin(d)}},function(t,e,i){function s(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay,{prevent_default:!1}),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["touch","pinch","doubletap","hold","dragstart","drag","dragend","mousewheel","DOMMouseScroll"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),this.windowHammer=a(window,{prevent_default:!1}),this.windowHammer.on("tap",function(i){o(i.target,t)||e.deactivate()}),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=n(),this.escListener=this.deactivate.bind(this)}function o(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var n=i(59),r=i(56),a=i(45),h=i(1);r(s.prototype),s.current=null,s.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.hammer=null,this.windowHammer=null},s.prototype.activate=function(){s.current&&s.current.deactivate(),s.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)},s.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")},s.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=s},function(t){function e(t){return t?i(t):void 0}function i(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}t.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){s.off(t,i),e.apply(this,arguments)}var s=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var s,o=0;os;++s)i[s].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){var s;(function(t,o){(function(n){function r(t,e,i){switch(arguments.length){case 2:return null!=t?t:e;case 3:return null!=t?t:null!=e?e:i;default:throw new Error("Implement me")}}function a(t,e){return ke.call(t,e)}function h(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function d(t){Me.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function l(t,e){var i=!0;return v(function(){return i&&(d(t),i=!1),e.apply(this,arguments)},e)}function c(t,e){xi[t]||(d(e),xi[t]=!0)}function p(t,e){return function(i){return _(t.call(this,i),e)}}function u(t,e){return function(i){return this.localeData().ordinal(t.call(this,i),e)}}function m(){}function f(t,e){e!==!1&&A(t),y(this,t),this._d=new Date(+t._d)}function g(t){var e=E(t),i=e.year||0,s=e.quarter||0,o=e.month||0,n=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*a,this._days=+r+7*n,this._months=+o+3*s+12*i,this._data={},this._locale=Me.localeData(),this._bubble()}function v(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function y(t,e){var i,s,o;if("undefined"!=typeof e._isAMomentObject&&(t._isAMomentObject=e._isAMomentObject),"undefined"!=typeof e._i&&(t._i=e._i),"undefined"!=typeof e._f&&(t._f=e._f),"undefined"!=typeof e._l&&(t._l=e._l),"undefined"!=typeof e._strict&&(t._strict=e._strict),"undefined"!=typeof e._tzm&&(t._tzm=e._tzm),"undefined"!=typeof e._isUTC&&(t._isUTC=e._isUTC),"undefined"!=typeof e._offset&&(t._offset=e._offset),"undefined"!=typeof e._pf&&(t._pf=e._pf),"undefined"!=typeof e._locale&&(t._locale=e._locale),He.length>0)for(i in He)s=He[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function b(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&N(t[s])!==N(e[s]))&&r++;return r+n}function O(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=mi[t]||fi[e]||e}return t}function E(t){var e,i,s={};for(i in t)a(t,i)&&(e=O(i),e&&(s[e]=t[i]));return s}function k(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}Me[t]=function(s,o){var r,a,h=Me._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=Me().utc().set(i,t);return h.call(Me._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function N(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function L(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function I(t,e,i){return pe(Me([t,11,31+e-i]),e,i).week}function z(t){return P(t)?366:365}function P(t){return t%4===0&&t%100!==0||t%400===0}function A(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Le]<0||t._a[Le]>11?Le:t._a[Ie]<1||t._a[Ie]>L(t._a[Ne],t._a[Le])?Ie:t._a[ze]<0||t._a[ze]>24||24===t._a[ze]&&(0!==t._a[Pe]||0!==t._a[Ae]||0!==t._a[Re])?ze:t._a[Pe]<0||t._a[Pe]>59?Pe:t._a[Ae]<0||t._a[Ae]>59?Ae:t._a[Re]<0||t._a[Re]>999?Re:-1,t._pf._overflowDayOfYear&&(Ne>e||e>Ie)&&(e=Ie),t._pf.overflow=e)}function R(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length&&t._pf.bigHour===n)),t._isValid}function F(t){return t?t.toLowerCase().replace("_","-"):t}function H(t){for(var e,i,s,o,n=0;n0;){if(s=B(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&T(o,i,!0)>=e-1)break;e--}n++}return null}function B(t){var e=null;if(!Fe[t]&&Be)try{e=Me.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Me.locale(e)}catch(i){}return Fe[t]}function Y(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(Me.isMoment(t)||C(t)?+t:+Me(t))-+i,i._d.setTime(+i._d+s),Me.updateOffset(i,!1),i):Me(t).local()}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,i,s=t.match(je);for(e=0,i=s.length;i>e;e++)s[e]=_i[s[e]]?_i[s[e]]:W(s[e]);return function(o){var n="";for(e=0;i>e;e++)n+=s[e]instanceof Function?s[e].call(o,t):s[e];return n}}function j(t,e){return t.isValid()?(e=V(e,t.localeData()),gi[e]||(gi[e]=G(e)),gi[e](t)):t.localeData().invalidDate()}function V(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Ve.lastIndex=0;s>=0&&Ve.test(t);)t=t.replace(Ve,i),Ve.lastIndex=0,s-=1;return t}function U(t,e){var i,s=e._strict;switch(t){case"Q":return ii;case"DDDD":return oi;case"YYYY":case"GGGG":case"gggg":return s?ni:qe;case"Y":case"G":case"g":return ai;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?ri:Ze;case"S":if(s)return ii;case"SS":if(s)return si;case"SSS":if(s)return oi;case"DDD":return Xe;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ke;case"a":case"A":return e._locale._meridiemParse;case"x":return ti;case"X":return ei;case"Z":case"ZZ":return $e;case"T":return Je;case"SSSS":return Qe;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?si:Ue;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ue;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(ee(te(t.replace("\\","")),"i"))}}function X(t){t=t||"";var e=t.match($e)||[],i=e[e.length-1]||[],s=(i+"").match(pi)||["-",0,0],o=+(60*s[1])+N(s[2]);return"+"===s[0]?-o:o}function q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Le]=3*(N(e)-1));break;case"M":case"MM":null!=e&&(o[Le]=N(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[Le]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ie]=N(e));break;case"Do":null!=e&&(o[Ie]=N(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=N(e));break;case"YY":o[Ne]=Me.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Ne]=N(e);break;case"a":case"A":i._isPm=i._locale.isPM(e);break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[ze]=N(e);break;case"m":case"mm":o[Pe]=N(e);break;case"s":case"ss":o[Ae]=N(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Re]=N(1e3*("0."+e));break;case"x":i._d=new Date(N(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=X(e);break;case"dd":case"ddd":case"dddd":s=i._locale.weekdaysParse(e),null!=s?(i._w=i._w||{},i._w.d=s):i._pf.invalidWeekday=e;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":t=t.substr(0,1);case"gggg":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=N(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=Me.parseTwoDigitYear(e)}}function Z(t){var e,i,s,o,n,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Ne],pe(Me(),1,4).year),s=r(e.W,1),o=r(e.E,1)):(n=t._locale._week.dow,a=t._locale._week.doy,i=r(e.gg,t._a[Ne],pe(Me(),n,a).year),s=r(e.w,1),null!=e.d?(o=e.d,n>o&&++s):o=null!=e.e?e.e+n:n),h=ue(i,s,o,a,n),t._a[Ne]=h.year,t._dayOfYear=h.dayOfYear}function Q(t){var e,i,s,o,n=[];if(!t._d){for(s=$(t),t._w&&null==t._a[Ie]&&null==t._a[Le]&&Z(t),t._dayOfYear&&(o=r(t._a[Ne],s[Ne]),t._dayOfYear>z(o)&&(t._pf._overflowDayOfYear=!0),i=he(o,0,t._dayOfYear),t._a[Le]=i.getUTCMonth(),t._a[Ie]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[ze]&&0===t._a[Pe]&&0===t._a[Ae]&&0===t._a[Re]&&(t._nextDay=!0,t._a[ze]=0),t._d=(t._useUTC?he:ae).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm),t._nextDay&&(t._a[ze]=24)}}function K(t){var e;t._d||(e=E(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],Q(t))}function $(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function J(t){if(t._f===Me.ISO_8601)return void se(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=V(t._f,t._locale).match(je)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),_i[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),q(o,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(o);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[ze]<=12&&(t._pf.bigHour=n),t._isPm&&t._a[ze]<12&&(t._a[ze]+=12),t._isPm===!1&&12===t._a[ze]&&(t._a[ze]=0),Q(t),A(t)}function te(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function ee(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(t){var e,i,s,o,n;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(o=0;on)&&(s=n,i=e));v(t,i||e)}function se(t){var e,i,s=t._i,o=hi.exec(s);if(o){for(t._pf.iso=!0,e=0,i=li.length;i>e;e++)if(li[e][1].exec(s)){t._f=li[e][0]+(o[6]||" ");break}for(e=0,i=ci.length;i>e;e++)if(ci[e][1].exec(s)){t._f+=ci[e][0];break}s.match($e)&&(t._f+="Z"),J(t)}else t._isValid=!1}function oe(t){se(t),t._isValid===!1&&(delete t._isValid,Me.createFromInputFallback(t))}function ne(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function he(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function de(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function le(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ce(t,e,i){var s=Me.duration(t).abs(),o=Ee(s.as("s")),n=Ee(s.as("m")),r=Ee(s.as("h")),a=Ee(s.as("d")),h=Ee(s.as("M")),d=Ee(s.as("y")),l=o0,l[4]=i,le.apply({},l)}function pe(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=Me(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ue(t,e,i,s,o){var n,r,a=he(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:z(t-1)+r}}function me(t){var e,i=t._i,s=t._f;return t._locale=t._locale||Me.localeData(t._l),null===i||s===n&&""===i?Me.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),Me.isMoment(i)?new f(i,!0):(s?S(s)?ie(t):J(t):re(t),e=new f(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function fe(t,e){var i,s;if(1===e.length&&S(e[0])&&(e=e[0]),!e.length)return Me();for(i=e[0],s=1;s=0?"+":"-";return e+_(Math.abs(t),6)},gg:function(){return _(this.weekYear()%100,2)},gggg:function(){return _(this.weekYear(),4)},ggggg:function(){return _(this.weekYear(),5)},GG:function(){return _(this.isoWeekYear()%100,2)},GGGG:function(){return _(this.isoWeekYear(),4)},GGGGG:function(){return _(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return N(this.milliseconds()/100)},SS:function(){return _(N(this.milliseconds()/10),2)},SSS:function(){return _(this.milliseconds(),3)},SSSS:function(){return _(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(N(t/60),2)+":"+_(N(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(N(t/60),2)+_(N(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},xi={},wi=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];yi.length;)Ce=yi.pop(),_i[Ce+"o"]=u(_i[Ce],Ce);for(;bi.length;)Ce=bi.pop(),_i[Ce+Ce]=p(_i[Ce],2);_i.DDDD=p(_i.DDD,3),v(m.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var s,o,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;12>s;s++){if(o=Me.utc([2e3,s]),i&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),i||this._monthsParse[s]||(n="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[s]=new RegExp(n.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[s].test(t))return s;if(i&&"MMM"===e&&this._shortMonthsParse[s].test(t))return s;if(!i&&this._monthsParse[s].test(t))return s}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=Me([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e,i){var s=this._calendar[t];return"function"==typeof s?s.apply(e,[i]):s},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,s){var o=this._relativeTime[i];return"function"==typeof o?o(t,e,i,s):o.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(t){return t},postformat:function(t){return t},week:function(t){return pe(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),Me=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._i=t,o._f=e,o._l=i,o._strict=s,o._isUTC=!1,o._pf=h(),me(o)},Me.suppressDeprecationWarnings=!1,Me.createFromInputFallback=l("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),Me.min=function(){var t=[].slice.call(arguments,0);return fe("isBefore",t)},Me.max=function(){var t=[].slice.call(arguments,0);return fe("isAfter",t)},Me.utc=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._useUTC=!0,o._isUTC=!0,o._l=i,o._i=t,o._f=e,o._strict=s,o._pf=h(),me(o).utc() +},Me.unix=function(t){return Me(1e3*t)},Me.duration=function(t,e){var i,s,o,n,r=t,h=null;return Me.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=We.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:N(h[Ie])*i,h:N(h[ze])*i,m:N(h[Pe])*i,s:N(h[Ae])*i,ms:N(h[Re])*i}):(h=Ge.exec(t))?(i="-"===h[1]?-1:1,o=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},r={y:o(h[2]),M:o(h[3]),d:o(h[4]),h:o(h[5]),m:o(h[6]),s:o(h[7]),w:o(h[8])}):"object"==typeof r&&("from"in r||"to"in r)&&(n=w(Me(r.from),Me(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new g(r),Me.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},Me.version=Te,Me.defaultFormat=di,Me.ISO_8601=function(){},Me.momentProperties=He,Me.updateOffset=function(){},Me.relativeTimeThreshold=function(t,e){return vi[t]===n?!1:e===n?vi[t]:(vi[t]=e,!0)},Me.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return Me.locale(t,e)}),Me.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?Me.defineLocale(t,e):Me.localeData(t),i&&(Me.duration._locale=Me._locale=i)),Me._locale._abbr},Me.defineLocale=function(t,e){return null!==e?(e.abbr=t,Fe[t]||(Fe[t]=new m),Fe[t].set(e),Me.locale(t),Fe[t]):(delete Fe[t],null)},Me.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return Me.localeData(t)}),Me.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Me._locale;if(!S(t)){if(e=B(t))return e;t=[t]}return H(t)},Me.isMoment=function(t){return t instanceof f||null!=t&&a(t,"_isAMomentObject")},Me.isDuration=function(t){return t instanceof g};for(Ce=wi.length-1;Ce>=0;--Ce)k(wi[Ce]);Me.normalizeUnits=function(t){return O(t)},Me.invalid=function(t){var e=Me.utc(0/0);return null!=t?v(e._pf,t):e._pf.userInvalidated=!0,e},Me.parseZone=function(){return Me.apply(null,arguments).parseZone()},Me.parseTwoDigitYear=function(t){return N(t)+(N(t)>68?1900:2e3)},v(Me.fn=f.prototype,{clone:function(){return Me(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=Me(this).utc();return 00:!1},parsingFlags:function(){return v({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.zone(0,t)},local:function(t){return this._isUTC&&(this.zone(0,t),this._isUTC=!1,t&&this.add(this._dateTzOffset(),"m")),this},format:function(t){var e=j(this,t||Me.defaultFormat);return this.localeData().postformat(e)},add:D(1,"add"),subtract:D(-1,"subtract"),diff:function(t,e,i){var s,o,n,r=Y(t,this),a=6e4*(this.zone()-r.zone());return e=O(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+r.daysInMonth()),o=12*(this.year()-r.year())+(this.month()-r.month()),n=this-Me(this).startOf("month")-(r-Me(r).startOf("month")),n-=6e4*(this.zone()-Me(this).startOf("month").zone()-(r.zone()-Me(r).startOf("month").zone())),o+=n/s,"year"===e&&(o/=12)):(s=this-r,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?o:b(o)},from:function(t,e){return Me.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(Me(),t)},calendar:function(t){var e=t||Me(),i=Y(e,this).startOf("day"),s=this.diff(i,"days",!0),o=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse";return this.format(this.localeData().calendar(o,this,Me(e)))},isLeapYear:function(){return P(this.year())},isDST:function(){return this.zone()+t):(i=Me.isMoment(t)?+t:+Me(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=O("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Me.isMoment(t)?t:Me(t),+t>+this):(i=Me.isMoment(t)?+t:+Me(t),+this.clone().endOf(e)t?this:t}),max:l("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(t){return t=Me.apply(null,arguments),t>this?this:t}),zone:function(t,e){var i,s=this._offset||0;return null==t?this._isUTC?s:this._dateTzOffset():("string"==typeof t&&(t=X(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateTzOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.subtract(i,"m"),s!==t&&(!e||this._changeInProgress?M(this,Me.duration(s-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,Me.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?Me(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return L(this.year(),this.month())},dayOfYear:function(t){var e=Ee((Me(this).startOf("day")-Me(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=pe(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=pe(this,1,4).year;return null==t?e:this.add(t-e,"y")},week:function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},isoWeek:function(t){var e=pe(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},weekday:function(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return I(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return I(this.year(),t.dow,t.doy)},get:function(t){return t=O(t),this[t]()},set:function(t,e){return t=O(t),"function"==typeof this[t]&&this[t](e),this},locale:function(t){var e;return t===n?this._locale._abbr:(e=Me.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),Me.fn.millisecond=Me.fn.milliseconds=be("Milliseconds",!1),Me.fn.second=Me.fn.seconds=be("Seconds",!1),Me.fn.minute=Me.fn.minutes=be("Minutes",!1),Me.fn.hour=Me.fn.hours=be("Hours",!0),Me.fn.date=be("Date",!0),Me.fn.dates=l("dates accessor is deprecated. Use date instead.",be("Date",!0)),Me.fn.year=be("FullYear",!0),Me.fn.years=l("years accessor is deprecated. Use year instead.",be("FullYear",!0)),Me.fn.days=Me.fn.day,Me.fn.months=Me.fn.month,Me.fn.weeks=Me.fn.week,Me.fn.isoWeeks=Me.fn.isoWeek,Me.fn.quarters=Me.fn.quarter,Me.fn.toJSON=Me.fn.toISOString,v(Me.duration.fn=g.prototype,{_bubble:function(){var t,e,i,s=this._milliseconds,o=this._days,n=this._months,r=this._data,a=0;r.milliseconds=s%1e3,t=b(s/1e3),r.seconds=t%60,e=b(t/60),r.minutes=e%60,i=b(e/60),r.hours=i%24,o+=b(i/24),a=b(_e(o)),o-=b(xe(a)),n+=b(o/30),o%=30,a+=b(n/12),n%=12,r.days=o,r.months=n,r.years=a},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return b(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*N(this._months/12)},humanize:function(t){var e=ce(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=Me.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=Me.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=O(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=O(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*_e(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xe(this._months/12)),t){case"week":return e/7+this._milliseconds/6048e5;case"day":return e+this._milliseconds/864e5;case"hour":return 24*e+this._milliseconds/36e5;case"minute":return 24*e*60+this._milliseconds/6e4;case"second":return 24*e*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+t)}},lang:Me.fn.lang,locale:Me.fn.locale,toIsoString:l("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),s=Math.abs(this.hours()),o=Math.abs(this.minutes()),n=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||o||n?"T":"")+(s?s+"H":"")+(o?o+"M":"")+(n?n+"S":""):"P0D"},localeData:function(){return this._locale}}),Me.duration.fn.toString=Me.duration.fn.toISOString;for(Ce in ui)a(ui,Ce)&&we(Ce.toLowerCase());Me.duration.fn.asMilliseconds=function(){return this.as("ms")},Me.duration.fn.asSeconds=function(){return this.as("s")},Me.duration.fn.asMinutes=function(){return this.as("m")},Me.duration.fn.asHours=function(){return this.as("h")},Me.duration.fn.asDays=function(){return this.as("d")},Me.duration.fn.asWeeks=function(){return this.as("weeks")},Me.duration.fn.asMonths=function(){return this.as("M")},Me.duration.fn.asYears=function(){return this.as("y")},Me.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===N(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Be?o.exports=Me:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(Oe.moment=Se),Me}.call(e,i,e,o),!(s!==n&&(o.exports=s)),De(!0))}).call(this)}).call(e,function(){return this}(),i(71)(t))},function(t,e,i){var s;!function(o,n){function r(){a.READY||(w.determineEventTypes(),x.each(a.gestures,function(t){M.register(t)}),w.onTouch(a.DOCUMENT,v,M.detect),w.onTouch(a.DOCUMENT,y,M.detect),a.READY=!0)}var a=function S(t,e){return new S.Instance(t,e||{})};a.VERSION="1.1.3",a.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},a.DOCUMENT=document,a.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,a.HAS_TOUCHEVENTS="ontouchstart"in o,a.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),a.NO_MOUSEEVENTS=a.HAS_TOUCHEVENTS&&a.IS_MOBILE||a.HAS_POINTEREVENTS,a.CALCULATE_INTERVAL=25;var h={},d=a.DIRECTION_DOWN="down",l=a.DIRECTION_LEFT="left",c=a.DIRECTION_UP="up",p=a.DIRECTION_RIGHT="right",u=a.POINTER_MOUSE="mouse",m=a.POINTER_TOUCH="touch",f=a.POINTER_PEN="pen",g=a.EVENT_START="start",v=a.EVENT_MOVE="move",y=a.EVENT_END="end",b=a.EVENT_RELEASE="release",_=a.EVENT_TOUCH="touch";a.READY=!1,a.plugins=a.plugins||{},a.gestures=a.gestures||{};var x=a.utils={extend:function(t,e,i){for(var s in e)!e.hasOwnProperty(s)||t[s]!==n&&i||(t[s]=e[s]);return t},on:function(t,e,i){t.addEventListener(e,i,!1)},off:function(t,e,i){t.removeEventListener(e,i,!1)},each:function(t,e,i){var s,o;if("forEach"in t)t.forEach(e,i);else if(t.length!==n){for(s=0,o=t.length;o>s;s++)if(e.call(i,t[s],s,t)===!1)return}else for(s in t)if(t.hasOwnProperty(s)&&e.call(i,t[s],s,t)===!1)return},inStr:function(t,e){return t.indexOf(e)>-1},inArray:function(t,e){if(t.indexOf){var i=t.indexOf(e);return-1===i?!1:i}for(var s=0,o=t.length;o>s;s++)if(t[s]===e)return s;return!1},toArray:function(t){return Array.prototype.slice.call(t,0)},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){var e=[],i=[],s=[],o=[],n=Math.min,r=Math.max;return 1===t.length?{pageX:t[0].pageX,pageY:t[0].pageY,clientX:t[0].clientX,clientY:t[0].clientY}:(x.each(t,function(t){e.push(t.pageX),i.push(t.pageY),s.push(t.clientX),o.push(t.clientY)}),{pageX:(n.apply(Math,e)+r.apply(Math,e))/2,pageY:(n.apply(Math,i)+r.apply(Math,i))/2,clientX:(n.apply(Math,s)+r.apply(Math,s))/2,clientY:(n.apply(Math,o)+r.apply(Math,o))/2})},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return 180*Math.atan2(s,i)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.clientX-e.clientX),s=Math.abs(t.clientY-e.clientY);return i>=s?t.clientX-e.clientX>0?l:p:t.clientY-e.clientY>0?c:d},getDistance:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==c||t==d},setPrefixedCss:function(t,e,i,s){var o=["","Webkit","Moz","O","ms"];e=x.toCamelCase(e);for(var n=0;n0&&this.started&&(r=v),this.started=!0;var d=this.collectEventData(i,r,o,t);return e!=y&&s.call(M,d),a&&(d.changedLength=h,d.eventType=a,s.call(M,d),d.eventType=r,delete d.changedLength),r==y&&(s.call(M,d),this.started=!1),r},determineEventTypes:function(){var t;return t=a.HAS_POINTEREVENTS?o.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:a.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],h[g]=t[0],h[v]=t[1],h[y]=t[2],h},getTouchList:function(t,e){if(a.HAS_POINTEREVENTS)return D.getTouchList();if(t.touches){if(e==v)return t.touches;var i=[],s=[].concat(x.toArray(t.touches),x.toArray(t.changedTouches)),o=[];return x.each(s,function(t){x.inArray(i,t.identifier)===!1&&o.push(t),i.push(t.identifier)}),o}return t.identifier=1,[t]},collectEventData:function(t,e,i,s){var o=m;return x.inStr(s.type,"mouse")||D.matchType(u,s)?o=u:D.matchType(f,s)&&(o=f),{center:x.getCenter(i),timeStamp:Date.now(),target:s.target,touches:i,eventType:e,pointerType:o,srcEvent:s,preventDefault:function(){var t=this.srcEvent;t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return M.stopDetect()}}}},D=a.PointerEvent={pointers:{},getTouchList:function(){var t=[];return x.each(this.pointers,function(e){t.push(e)}),t},updatePointer:function(t,e){t==y||t!=y&&1!==e.buttons?delete this.pointers[e.pointerId]:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e)},matchType:function(t,e){if(!e.pointerType)return!1;var i=e.pointerType,s={};return s[u]=i===(e.MSPOINTER_TYPE_MOUSE||u),s[m]=i===(e.MSPOINTER_TYPE_TOUCH||m),s[f]=i===(e.MSPOINTER_TYPE_PEN||f),s[t]},reset:function(){this.pointers={}}},M=a.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startEvent:x.extend({},e),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendEventData(t);var e=this.current.inst,i=e.options;return x.each(this.gestures,function(s){!this.stopped&&e.enabled&&i[s.name]&&s.handler.call(s,t,e)},this),this.current&&(this.current.lastEvent=t),t.eventType==y&&this.stopDetect(),t}},stopDetect:function(){this.previous=x.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(t,e,i,s,o){var n=this.current,r=!1,h=n.lastCalcEvent,d=n.lastCalcData;h&&t.timeStamp-h.timeStamp>a.CALCULATE_INTERVAL&&(e=h.center,i=t.timeStamp-h.timeStamp,s=t.center.clientX-h.center.clientX,o=t.center.clientY-h.center.clientY,r=!0),(t.eventType==_||t.eventType==b)&&(n.futureCalcEvent=t),(!n.lastCalcEvent||r)&&(d.velocity=x.getVelocity(i,s,o),d.angle=x.getAngle(e,t.center),d.direction=x.getDirection(e,t.center),n.lastCalcEvent=n.futureCalcEvent||t,n.futureCalcEvent=t),t.velocityX=d.velocity.x,t.velocityY=d.velocity.y,t.interimAngle=d.angle,t.interimDirection=d.direction},extendEventData:function(t){var e=this.current,i=e.startEvent,s=e.lastEvent||i;(t.eventType==_||t.eventType==b)&&(i.touches=[],x.each(t.touches,function(t){i.touches.push({clientX:t.clientX,clientY:t.clientY})}));var o=t.timeStamp-i.timeStamp,n=t.center.clientX-i.center.clientX,r=t.center.clientY-i.center.clientY;return this.getCalculatedData(t,s.center,o,n,r),x.extend(t,{startEvent:i,deltaTime:o,deltaX:n,deltaY:r,distance:x.getDistance(i.center,t.center),angle:x.getAngle(i.center,t.center),direction:x.getDirection(i.center,t.center),scale:x.getScale(i.touches,t.touches),rotation:x.getRotation(i.touches,t.touches)}),t},register:function(t){var e=t.defaults||{};return e[t.name]===n&&(e[t.name]=!0),x.extend(a.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}};a.Instance=function(t,e){var i=this;r(),this.element=t,this.enabled=!0,x.each(e,function(t,i){delete e[i],e[x.toCamelCase(i)]=t}),this.options=x.extend(x.extend({},a.defaults),e||{}),this.options.behavior&&x.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=w.onTouch(t,g,function(t){i.enabled&&t.eventType==g?M.startDetect(i,t):t.eventType==_&&M.detect(t)}),this.eventHandlers=[]},a.Instance.prototype={on:function(t,e){var i=this;return w.on(i.element,t,e,function(t){i.eventHandlers.push({gesture:t,handler:e})}),i},off:function(t,e){var i=this;return w.off(i.element,t,e,function(t){var s=x.inArray({gesture:t,handler:e});s!==!1&&i.eventHandlers.splice(s,1)}),i},trigger:function(t,e){e||(e={});var i=a.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e;var s=this.element;return x.hasParent(e.target,s)&&(s=e.target),s.dispatchEvent(i),this},enable:function(t){return this.enabled=t,this},dispose:function(){var t,e;for(x.toggleBehavior(this.element,this.options.behavior,!1),t=-1;e=this.eventHandlers[++t];)x.off(this.element,e.gesture,e.handler);return this.eventHandlers=[],w.off(this.element,h[g],this.eventStartHandler),null}},function(t){function e(e,s){var o=M.current;if(!(s.options.dragMaxTouches>0&&e.touches.length>s.options.dragMaxTouches))switch(e.eventType){case g:i=!1;break;case v:if(e.distance0)){var r=Math.abs(s.options.dragMinDistance/e.distance);n.pageX+=e.deltaX*r,n.pageY+=e.deltaY*r,n.clientX+=e.deltaX*r,n.clientY+=e.deltaY*r,e=M.extendEventData(e)}(o.lastEvent.dragLockToAxis||s.options.dragLockToAxis&&s.options.dragLockMinDistance<=e.distance)&&(e.dragLockToAxis=!0);var a=o.lastEvent.direction;e.dragLockToAxis&&a!==e.direction&&(e.direction=x.isVertical(a)?e.deltaY<0?c:d:e.deltaX<0?l:p),i||(s.trigger(t+"start",e),i=!0),s.trigger(t,e),s.trigger(t+e.direction,e);var h=x.isVertical(e.direction);(s.options.dragBlockVertical&&h||s.options.dragBlockHorizontal&&!h)&&e.preventDefault();break;case b:i&&e.changedLength<=s.options.dragMaxTouches&&(s.trigger(t+"end",e),i=!1);break;case y:i=!1}}var i=!1;a.gestures.Drag={name:t,index:50,handler:e,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),a.gestures.Gesture={name:"gesture",index:1337,handler:function(t,e){e.trigger(this.name,t)}},function(t){function e(e,s){var o=s.options,n=M.current;switch(e.eventType){case g:clearTimeout(i),n.name=t,i=setTimeout(function(){n&&n.name==t&&s.trigger(t,e)},o.holdTimeout);break;case v:e.distance>o.holdThreshold&&clearTimeout(i);break;case b:clearTimeout(i)}}var i;a.gestures.Hold={name:t,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:e}}("hold"),a.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==b&&e.trigger(this.name,t)}},a.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(t,e){if(t.eventType==b){var i=t.touches.length,s=e.options;if(is.swipeMaxTouches)return;(t.velocityX>s.swipeVelocityX||t.velocityY>s.swipeVelocityY)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},function(t){function e(e,s){var o,n,r=s.options,a=M.current,h=M.previous;switch(e.eventType){case g:i=!1;break;case v:i=i||e.distance>r.tapMaxDistance;break;case y:!x.inStr(e.srcEvent.type,"cancel")&&e.deltaTimes.options.transformMinRotation&&s.trigger("rotate",e),o>s.options.transformMinScale&&(s.trigger("pinch",e),s.trigger("pinch"+(e.scale<1?"in":"out"),e));break;case b:i&&e.changedLength<2&&(s.trigger(t+"end",e),i=!1)}}var i=!1;a.gestures.Transform={name:t,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:e}}("transform"),s=function(){return a}.call(e,i,e,t),!(s!==n&&(t.exports=s))}(window)},function(t,e){var i,s,o;!function(n,r){s=[],i=r,o="function"==typeof i?i.apply(e,s):i,!(void 0!==o&&(t.exports=o))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,s=t&&t.container||window,o={},n={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==n[e][t.keyCode]){for(var s=n[e][t.keyCode],o=0;ot&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(t.clusterSizei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdgesLength?this._addToCluster(r,a,!1):1==r.dynamicEdgesLength&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e)for(c=0;l>c;c++)if(p=this.edges[d[c]],void 0!==p){var u=this.nodes[p.fromId==t.id?p.toId:p.fromId];u.dynamicEdges.length<=this.hubThreshold+s&&u.id!=t.id&&this._addToCluster(t,u,e)}}},e._addToCluster=function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdgesLength),t+=n.dynamicEdgesLength,e+=Math.pow(n.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37);e._clearManipulatorBar=function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM={},this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1},e._restoreOverloadedFunctions=function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},e._toggleEditMode=function(){this.editMode=!this.editMode;var t=this.manipulationDiv,e=this.closeDiv,i=this.editModeDiv;1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},e._createManipulatorBar=function(){this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];if(void 0!==this.edgeBeingEdited&&(this.edgeBeingEdited._disableControlNodes(),this.edgeBeingEdited=void 0,this.selectedControlNode=null,this.controlNodesActive=!1,this._redraw()),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,this.manipulationDOM={},1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM.addNodeSpan=document.createElement("span"),this.manipulationDOM.addNodeSpan.className="network-manipulationUI add",this.manipulationDOM.addNodeLabelSpan=document.createElement("span"),this.manipulationDOM.addNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addNodeLabelSpan.innerHTML=t.addNode,this.manipulationDOM.addNodeSpan.appendChild(this.manipulationDOM.addNodeLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.addEdgeSpan=document.createElement("span"),this.manipulationDOM.addEdgeSpan.className="network-manipulationUI connect",this.manipulationDOM.addEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.addEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addEdgeLabelSpan.innerHTML=t.addEdge,this.manipulationDOM.addEdgeSpan.appendChild(this.manipulationDOM.addEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.addNodeSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.addEdgeSpan),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?(this.manipulationDOM.seperatorLineDiv2=document.createElement("div"),this.manipulationDOM.seperatorLineDiv2.className="network-seperatorLine",this.manipulationDOM.editNodeSpan=document.createElement("span"),this.manipulationDOM.editNodeSpan.className="network-manipulationUI edit",this.manipulationDOM.editNodeLabelSpan=document.createElement("span"),this.manipulationDOM.editNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editNodeLabelSpan.innerHTML=t.editNode,this.manipulationDOM.editNodeSpan.appendChild(this.manipulationDOM.editNodeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv2),this.manipulationDiv.appendChild(this.manipulationDOM.editNodeSpan)):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.seperatorLineDiv3=document.createElement("div"),this.manipulationDOM.seperatorLineDiv3.className="network-seperatorLine",this.manipulationDOM.editEdgeSpan=document.createElement("span"),this.manipulationDOM.editEdgeSpan.className="network-manipulationUI edit",this.manipulationDOM.editEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.editEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editEdgeLabelSpan.innerHTML=t.editEdge,this.manipulationDOM.editEdgeSpan.appendChild(this.manipulationDOM.editEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv3),this.manipulationDiv.appendChild(this.manipulationDOM.editEdgeSpan)),0==this._selectionIsEmpty()&&(this.manipulationDOM.seperatorLineDiv4=document.createElement("div"),this.manipulationDOM.seperatorLineDiv4.className="network-seperatorLine",this.manipulationDOM.deleteSpan=document.createElement("span"),this.manipulationDOM.deleteSpan.className="network-manipulationUI delete",this.manipulationDOM.deleteLabelSpan=document.createElement("span"),this.manipulationDOM.deleteLabelSpan.className="network-manipulationLabel",this.manipulationDOM.deleteLabelSpan.innerHTML=t.del,this.manipulationDOM.deleteSpan.appendChild(this.manipulationDOM.deleteLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv4),this.manipulationDiv.appendChild(this.manipulationDOM.deleteSpan)),this.manipulationDOM.addNodeSpan.onclick=this._createAddNodeToolbar.bind(this),this.manipulationDOM.addEdgeSpan.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?this.manipulationDOM.editNodeSpan.onclick=this._editNode.bind(this):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.editEdgeSpan.onclick=this._createEditEdgeToolbar.bind(this)),0==this._selectionIsEmpty()&&(this.manipulationDOM.deleteSpan.onclick=this._deleteSelected.bind(this)),this.closeDiv.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{for(;this.editModeDiv.hasChildNodes();)this.editModeDiv.removeChild(this.editModeDiv.firstChild);this.manipulationDOM.editModeSpan=document.createElement("span"),this.manipulationDOM.editModeSpan.className="network-manipulationUI edit editmode",this.manipulationDOM.editModeLabelSpan=document.createElement("span"),this.manipulationDOM.editModeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editModeLabelSpan.innerHTML=t.edit,this.manipulationDOM.editModeSpan.appendChild(this.manipulationDOM.editModeLabelSpan),this.editModeDiv.appendChild(this.manipulationDOM.editModeSpan),this.manipulationDOM.editModeSpan.onclick=this._toggleEditMode.bind(this)}},e._createAddNodeToolbar=function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.addDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},e._createAddEdgeToolbar=function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0;var t=this.constants.locales[this.constants.locale];this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.edgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleDragEnd=this._handleDragEnd,this._handleTouch=this._handleConnect,this._manipulationReleaseOverload=function(){},this._handleDragStart=function(){},this._handleDragEnd=this._finishConnect,this._redraw()},e._createEditEdgeToolbar=function(){this._clearManipulatorBar(),this.controlNodesActive=!0,this.boundFunction&&this.off("select",this.boundFunction),this.edgeBeingEdited=this._getSelectedEdge(),this.edgeBeingEdited._enableControlNodes();var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.editEdgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleTap=this._handleTap,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleTouch=this._selectControlNode,this._handleTap=function(){},this._handleOnDrag=this._controlNodeDrag,this._handleDragStart=function(){},this._manipulationReleaseOverload=this._releaseControlNode,this._redraw() +},e._selectControlNode=function(t){this.edgeBeingEdited.controlNodes.from.unselect(),this.edgeBeingEdited.controlNodes.to.unselect(),this.selectedControlNode=this.edgeBeingEdited._getSelectedControlNode(this._XconvertDOMtoCanvas(t.x),this._YconvertDOMtoCanvas(t.y)),null!==this.selectedControlNode&&(this.selectedControlNode.select(),this.freezeSimulation=!0),this._redraw()},e._controlNodeDrag=function(t){var e=this._getPointer(t.gesture.center);null!==this.selectedControlNode&&void 0!==this.selectedControlNode&&(this.selectedControlNode.x=this._XconvertDOMtoCanvas(e.x),this.selectedControlNode.y=this._YconvertDOMtoCanvas(e.y)),this._redraw()},e._releaseControlNode=function(t){var e=this._getNodeAt(t);null!==e?(1==this.edgeBeingEdited.controlNodes.from.selected&&(this._editEdge(e.id,this.edgeBeingEdited.to.id),this.edgeBeingEdited.controlNodes.from.unselect()),1==this.edgeBeingEdited.controlNodes.to.selected&&(this._editEdge(this.edgeBeingEdited.from.id,e.id),this.edgeBeingEdited.controlNodes.to.unselect())):this.edgeBeingEdited._restoreControlNodes(),this.freezeSimulation=!1,this._redraw()},e._handleConnect=function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);if(null!=e)if(e.clusterSize>1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=this.edges.connectionEdge;i.to.x=this._XconvertDOMtoCanvas(e.x),i.to.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start()}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button");var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.existing.length){for(var t=0;t0){this.constants.hierarchicalLayout.levelSeparation="RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation<0?this.constants.hierarchicalLayout.levelSeparation:-1*this.constants.hierarchicalLayout.levelSeparation:Math.abs(this.constants.hierarchicalLayout.levelSeparation),"RL"==this.constants.hierarchicalLayout.direction||"LR"==this.constants.hierarchicalLayout.direction?1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="vertical"):1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="horizontal");var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s=0;s1&&o.hierarchyEnumerated===!1&&this._setLevelDirected(o.level,o.edges,o.id)}},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=a.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing"); +var i=document.getElementById("graph_physicsMethod1"),d=document.getElementById("graph_physicsMethod2"),l=document.getElementById("graph_physicsMethod3");d.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(l.checked=!0);var c=document.getElementById("graph_toggleSmooth"),p=document.getElementById("graph_repositionNodes"),u=document.getElementById("graph_generateOptions");c.onclick=s.bind(this),p.onclick=o.bind(this),u.onclick=n.bind(this),c.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),i.onchange=r.bind(this),d.onchange=r.bind(this),l.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=67},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=Math.max(i,.01*g),s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.thetaInverted){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=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")},e._placeInRegion=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)}},e._splitBranch=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)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=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()}},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}}])}); //# sourceMappingURL=vis.map diff --git a/docs/network.html b/docs/network.html index 4d729591..7054abe4 100644 --- a/docs/network.html +++ b/docs/network.html @@ -940,11 +940,11 @@ All options defined per-node override these global settings. Define the shape for the node. Choose from ellipse (default), circle, box, - database, image, label, dot, + database, image, circularImage, label, dot, star, triangle, triangleDown, and square.

- In case of image, a property with name image must + In case of image and circularImage, a property with name image must be provided, containing image urls.

diff --git a/docs/timeline.html b/docs/timeline.html index 4491a6e1..92e4536c 100644 --- a/docs/timeline.html +++ b/docs/timeline.html @@ -1326,6 +1326,67 @@ To load a locale into the Timeline not supported by default, one can add a new l </style> +

Grid Backgrounds

+

+ The background grid of the time axis can be styled, for example to highlight + weekends or to create grids with an alternating white/lightgray background. +

+

+ Depending on the zoom level, the grids get certain css classes attached. + The following classes are available: +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Descriptionvalues
Alternating columnseven, odd
Current datetoday, tomorrow, yesterday, current-week, current-month, current-year
Hours0h, 1h, ..., 23h
Grouped hours0-4h to 20-24h
Weekdaymonday, tuesday, wednesday, thursday, friday, saturday, sunday
Daysdate1, date2, ..., date31
Monthsjanuari, februari, march, april, may, june, july, august, september, october, november, december
Yearsyear2014, year2015, ...
+ +

Examples:

+ +
<style>
+  /* alternating column backgrounds */
+  .vis.timeline .timeaxis .grid.odd {
+    background: #f5f5f5;
+  }
+
+  /* gray background in weekends, white text color */
+  .vis.timeline .timeaxis .grid.saturday,
+  .vis.timeline .timeaxis .grid.sunday {
+    background: gray;
+  }
+  .vis.timeline .timeaxis .text.saturday,
+  .vis.timeline .timeaxis .text.sunday {
+    color: white;
+  }
+</style>
+
+ +

Data Policy

All code and data is processed and rendered in the browser. diff --git a/examples/network/34_circular_images.html b/examples/network/34_circular_images.html new file mode 100644 index 00000000..0201718e --- /dev/null +++ b/examples/network/34_circular_images.html @@ -0,0 +1,103 @@ + + + + Network | Scalable images + + + + + + + + + + +

+ +
+ + diff --git a/examples/network/img/indonesia/1.png b/examples/network/img/indonesia/1.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb55fadb8876ac4bdb9999d96216ccd902de8ff GIT binary patch literal 31035 zcmeHwby(C}*Y=2@grw39Qqs*J-5`y04luyb(j_30(k)#Af*{?E3JM4Ug3{e0DIMQ{ z%HeQ4@5B3kaeaRF``&A>9iwA_ysS7fA|4_D06>=N)NKI({DPC8YdU!01ONb{3`AI1Uf#sY&dS!r%9=z{SeV4x#>xm{4h8_6 z29uN=)grgC_{O%us47BVSBqlJp8&|n^Wfj3si&hw06^Yo7y|En{1H{|V4^2VD8KdU zLzGDJpG>8$G!}g3uMw!M#r2(dIJ@kz%gXZd{+IpQxx~4HPUkLEPjn2*@Y!@z08r6~ zhx;pWsGP*x4|Sd}m=fc#Bxtkk&Bk!=0D#r&&Q9)jh5QHC3akJy0P8-6yBMt#$4{%} zDOCX^;ec^6j5(xhVTyqF3=iMm0ldcn6e^V%A_AfS0CQ(IAu>QNGT_^$Bp)2$Yfj`a zHsEVIK@L11_!=ONTKq1IKn*}o`H3POOk*=3HBW$y0k-k=HBa?&7I7HQIyitsh*}t` zfF8gzPKd4pK*9wB5GK0)@j8k0^;D*whVdL-YoAJqYkT;^GgRo1LDRHJUSD*?gCNWVUKW z#z(p~c2pY#0}DWt?OGYsotf#sZrysV(7wSeM-wop0x%id)n*++NYz06$cHKHUo5!Nsx2;92c$b%+yW7?AdF%2h1 z5cgpt_gC1m!s~dc=-08vfWcY#K(QVJK0-M3Eq+(lt(VtJI`Nr_04DRih%ZtF%$+(r2i zF)fQoN)g5)i6m(zF(g6%Lg@ux4;my9p!=Qf*tJjKTZ zEaCPS^cj7h;vvS6Z4<@?yK01yr$nN$pJIE==5H>{Ej-Hh7rvjtrG1XJ(v4X*;bjq&p8+A z;VWg-S2`+>v&583Dh2spzN}D&M7`n^CWO=(T5nT7xkOw8|Ay_a}K%;)(`40+bm-(FAc8PTPF!5(Ix%h zw&32jN2ungR;c!=9b5A4O2{*`WGP9`>Zjxbzv zW-f!(jxd9Hv*(b??p5!Jm+0*#)!}bVGP)%*s46MH`x#HMJ7Mz~t0vq^;7({Sf0>_<|JEVF zV(iZ3olu${njcD*gUsI!z9D{#|8`>;xCPpx*s|E_BJ3c*AndWYl1Q1{ z&t&m_=&j~>UAwCuHyy*>z&rIM~da>~O(wH8&V<@nH(xLO@n0wu!WA#9qhW zHDDb!ri<^!Y=ck2)WF|k>Y$V+>PHXp?SdaebGORcm0sv5hxZ>BH}|h3hTz6w?>@dm zbB`sLVNsz}$?lQeHeG+-wEDhrUC3H!PEghTA=7dj2je_bb47E5ZwZy2mAREqocwk~ z*J3g3Zr?>%4w!!X^(}9}lr7Ahc|2?4bo|2@JA>CV!|7GnvkRT=$&Nhg?CN1|Tt3e+ zVvG4_o{|X3Gvdh2WLwG*-d^`k@R1X(PY+I4D5|KG;)$3|Qiic+bRFPRzcA z6+ups);SzEqKbS&Mn$B5G_Pym(EvR#DlsZCLlGGgQ%d`Vse-yf&WM&a5_#Hr)}jqR z(ywiMnta!GV+hmSN4h(sRPnVu3YIkEOIjyQ98IT6i8=|5&#YrcM~l1UNM2ZObzz0_ zm4zi=E1lHW#>pB)Yp}=zm9QNdn6(wF4V@sXJ&)T>+KXcje4@z;W9@O3SuM(xsEOn-!YEdAK_@j5$* zeOa@kJa1?{jU!{rCCNj(UF9(URYm;(0L?8dK z?D_6B5{jpfU)?b4K2j;}DEBTo)HT!f=9cKnlBu1Q`EWr)LotGdB1bTh1h@4}f~VDB z!g9Q0nYG3}lxD%1CaSS4H`gio`LxbA!*4#0#d%cxfM1eurtRTwu+O8&nzH|)GEeGq4+t)N|J zEZmjMk8Sr|xrYZ==S@w@b}wo9l}!9o4t z;o{9b)J2cdqatvl#rTe1qh8k=b<`CU1i$2?sN-J0i5~F|@jh}f^5D=UVq$z`yt;M6 z&d7=E;_Ta9ZSE?^&P%qh=Ee>u_aAhr9eiCy+70Y#cma{#=fxwacM)#gUYxXC(ZN53TqXWim?~Q$mo)lI9Kw=K^P|Z$F zMw;8e%7Ou8Xr&KkaI&z5ZbJb89)2flkbxQ4jzk}946)=TTd8RvBY_z5lBu%GFv(a8 zgH0e3E;e8#7ukmfE@lQmLo$9oL>?z@r~wPG9f-uq!rao9+liO#)Gjx)d?IEfBRN&E zGvg%_JaI^(CL>QGY-Ix`VQ1i=H(+9BBjE%xFtc-T0y*hOSfJ00Ok9jCO!Q1ZZgy5~ zCKi%kFETzvXo<(h(1=@6MC_M4=o2rQiJhG_HzT8?qa%YOD}$AdF(We&2xMepVPs*U zhicH08;`@sg39I68a%>X(J}nIlWv zU)(`iWOM>qGcq$UG5!ezvWL>~t95?^ft?^mrzoh#ACcC-H~)XepH=^>Yv`!R$ov`n zyTuk3e{^kYC+Ywt;ZM!}jkJB}Yz<~q1lwBK+ZcdF9l(}$zVHee|Jw+%LWCJuULu7^xq+^j%uR<57k&*@x1%Rr~3A;=E&8~rwA58GEF|g9JFf*`|SXlg}eVR6Y&Ssty z3xd|rv$PY$0?MM8m4Usj2*lP7WN85AV`e#V{S)}FN*COUnS*Rigsm*Bp*?^GfR!a5 zwEaI#{IlvJ7Gh)J2(p1XX87$^?6>Hg>e*c9J{h#1Lu+^vKmQ#2Kdb)Hmavt%l?^n? zz9t0*o+A}K1&!3^Z!pl4x#_WCa~=k(6mIn7DjB2dy# zX04T}$o&_XlZA=Nkd?)V9>{6LM9<6&W~1lgWChU!IoMeZIP}>$K>9!9 zTt?=+v41#{wEQ`+P)AVD3=pUjE*4HE4nuZBdM+@Ki5_IY#!L@l#>6JXF32P#CL}B(EGopr zCidIxAE5s*F98inD;wu?k$aM5PF5%-@T0#=e^;18PFFB%kc}<)Bs=qx{Z7y4Gu6*& zaDq9_^4uVU)0njdIe-m$82={wt5Fw0kbm;ZYRJya%E4qr&j#Y+qGtxNvD0(0K})Pa zAczZO#LCRZ!SdVwIrzW(a5Mp1{#QBjXH!qL{@sYJm66@a1QRrdhTCP*)K9B_hyA;G z0~3&?G1!og@psRD3ob%<7*B@I9P)o*z zp)r`z)EaC|VrTX1$=cHRcc0Fw|3B=OA=n1;-wDZctvq9d_%bT7vDGY_3+ zp1*|W?3`@axg}4Ml`6#0&V-K*x=Z9?yeR!60J^<2h9aPQ%fBIhi7!HgAa=I$U>hZn zg|#{OTw708&Hu0j^Fj9||8=VWpKJU%d{6uTZ!P9It(8AHNxAEi`+mrFVLm*CmOopJ4K(DUDW?c;t8Gd5GSzt$zJmmb5VW~r!K57Y$I=F z3pr`$$+7BpQ~yzM5vg{v?J>7M?H@B2bi{w1B7Tqj`TC1k_5Xl9Uw;w%7gX62Vt3Zw z3*w6?8IT#6PZ(rrW%-MkQ^7y9pxbowpK2tMYRXC^EG$eU5=y@zr?uxWCudY{QRpuf z=pui5Bw=BNcK;vZi;&X;i#5dQ40d`NI)z=Vx(GczHYh>wkD!N{U!Km1{;6#N4MJO6 zu;H)B{S_Q1C#O?)CkLuOC|tC23R4q-Ku;5={p4W#g}+$wN1*z@0nb%j1fHD09zy*= zWBzpi|L0@aX&?TfdeN4sleLwtz0IjTK4wN}te%b0xr&P@FEr~lm}&uP7qiM<^(1)a7^1!QgyJ$*6( z8CjvT`(LUrc1h40y4!`4_7lv)#la3_2AMLfmH$AW?7N}q?DX8t{>v%!O6D)&Ma1dEyX?;6v=7iL1n8MW z3}kK#{v95tlD{mUEM%vuieM;}&>M?idcPk3pm^He--C4e@CPL^d&{4v$-nvjE&KyO z5o{>x3_dk?9&%3n7wC6aPOe+d#qrO6K(BE?=D$|+vm2z}h;w!4%>AV5q)y%(WC=dM zDx7RApf5%iw%_UG)c!y8{@vR7b>d{xabk^`>vxd-W$nD)zgxSog!~?czsy`vxM)e~ zBs)T54s2&)1-&==#mnEN7cpYcziOg%dbxYDWdDk*GtotDVSDIxg@q#65_)Wd#@_FE zx*)!Y`aRiB1K>C2Z^DZRRTGFESO^3iFz7n-8}T>cMT7`6P1}LYHLRe`JK43I?iv|? zZXHj1^$&%M7L*LYmSAC!^-0n>xmP*!`;Ur$AWwL=gE&C!oKJzjqv@3SbMjxfpIP3G(RD_} zWeQhxU52GIoh!P|sJKkwimuDBbf$Af*BKR;DO}NY8J5m;uIM_W;xdIRx-P@gna&km zXH;CKa7EW;SUS_WqU(%`%M`BYx(rKaI#+a^QE{2V6mnmG)bs3hpOo z>oP2z>0HruM#W_cS9D#5r8Au?y3VM$OyP>I%dm8&b4Aw~6_+XemvkZi_3cH_e}%wH z<_P_6qBoCppF_Xbh{QlbQ3e2Tp#T6pp8^28$I$l$0KlFJ09e!m0Jxz#*j5p`@5G>A z$!RYsBKXj0@NQLWLDqtEiu0J9%SNnRh`p?`>U{3v!;x=qNhlRCWZ-&>!Od*u9k+}? z1vf_VpTEEb{_XQ8T_k~Xxb!Wwd8;~pNpSp)09gLZ+?5unuh?=9HC}odi zbpby<8pu0r<#(Z5ipw!&&`0+bO;#k^vptl(ucyU|{&?>Qd%%3w?~!u6R z1cXKYH>k-3VGWvqUhmQKnG=PkcU#hIRjk_((%ve-mUd?2AYj|yaC5pLw=JDp`C-9a zXahZfE2qV9`}&Za^^X}8%l?}c+u3iTcV~h>3Z||0^t7!pyI0;%Ye^*F$@I7HW0Q&N zdgd4Uo!@!gaIPDq+y|zavaA_de&{^W$Sg=h<*ks26&>zC6F@EmpUQ!Pj!pnm7>YF7sS-*HoLFP(3O&mAP6tou4eqntQ2v` z{VU?DTDJbhw(;!(OQsOLal5G9_Z6=B&rLoDTLjs^CFzSYmAdt)MMD?9Ted>dbaqp^Kq^_;U32hY~0!EqdYa) z>4;;s&NX$+uc-nhIoDKRN$Zi zZ0bQiNodLj-lL5}OJsg&Hx;CPYayW`S$Akuv1GVkCMj#c+Q!9&ha-1F3n&gO63d1- z@I@QaF5UP>osze`Cv{uh39vSwLVU0(gGwhzg? z+)-VYQ{8g5a;-@}Vn(ElTQ|BVkF5_~iTM+sJqKny`Owreyl_;+(Gv=b?9|XZ`+4f^ zHU<&p#HO8=k&oiDM@`-F#g;tcuR9%eT|lnZQ}Jb3d1aXjK0F@f4X$(Fzc&e{$!I8N zJ6E|u5PH@R)cARMN@WS7jfr*!y}2W8@xQeZAC!O2;vS;RXaD<(W@K=7MDbkp3aXeZ>Xu?-RQPD;3uxF8Gv+&8T7FY&!OKPo^t<2I&sHo z2)l8_oUKpHPcrHw%ij8;fEn+DS8(XHKMrPnmJ-T8m;*&Ka-#k1YllOGIozuqIcSLz zW#-Cf3+k$!IAUlIlf&jk-y$)`LUdxMHndXJ8;H>QrL$3u`}Vzb)z; z?B;q;GxT#4_SQmCgLQP3%&R;ltf;86MTTa_diS;6gbga!H=%qk{R`rv92r_2jC3?P z>vk%$KC4gPy?gfp|Mrvduu%=o#22{t%6a)6*CzGvkeCF+0_bc^6$VQpyWH0oh#U5u zbmJ;2<~l0zLf*5rt8&ij?CrH3V6HTm?Q&XK9L+j%H2mlq{pzysJoh}62vc#kb>!Gd zpnqXAB`-2FhQ>GFaecnw<)m){!^4S&x|_7dPGC_sO^JR0L1i4Bj6&7&^3lrC=#1=x z+Ks7^lJM{Lz|4DH4?211qgS~ErF(Pw@A+TfYqs%Vc_kc9x25smklOl2g0Cmry?i;; zmrr*l13zpO5T+y@=x5{Xo>$T@hABVGe zVJkq5(OjYqZhX9)Kc{oN-g0=qWZT^tJ2hyE!a;z z3*5}2#1qJ!oW6TM$!<1gUo$o`unSeEW_QSHSi@$k4Yi>Dkg>p?ks?Xwf!W|oclv#G z!S;h%w%ZW=p*tw0wpfHzV5M5U(&YT3l)3Mwe&+SFoY-CUeCR8@+IvpCx}KdQl}acuqrCksU>@Hkf_d*2-@n+?KRl$XJ?yH;H!K;<;MZzw-#0H7_$ftG!@MkAU!{9l zr#<{7VQYVGE(f?bF)3-J-qs1UzrHntnPC$h`fUw;$)ff^PFJmtdDO#BwKEUW2)T#j z)eh7hH_z`tU0fGfLeC5#xo+?Yp&?l=MRnro+PEs{FbRq0Yd><-LFA0<13J@4svJ!z zF>KW7X zp0OXSRG@JXO4zM1&Y;c2*TuCG)f2G|<<z(Xhk12@Xq4=BZXXtiwtc*PJ)?mhKn!g2{X2V5y)(>UpjSQ7bQG|H?2BnzsImSYA{cz z^V)_vPu>uiOr19GtV(|$$h4(f-*>cH*V|e%rNh`^j63nXbf^<=&*Naoqp%#$N|$I8 z`)QNnea3H24_%_VvV6=J^&ksd(udi{ZYzOL#cd0G(umXJ+V*NYvOCeT*(rvQ(owW_L4!w5esd)pxf`y`VWT7PQnRaj5(O%$)$B zfkO(C@-cZ-KSMxTDhz3@;*m3c@F0m+^`^%fG5>uoo^@V$O@xeLh`7hjea14^QN2!M zQgt<*N*m{JCe{Z(cAa(Z^O&q|eb2*N>eF0nMkWFO>2<&G?8bq;!b zqnT^oN6CbAlV{|ijy`G`Z>_|1MZ~=vQ`%n#2>z({P;GAiGVzVU!Odww(~Z z@AKyko@e292k* zqoPJ5V@0B~+aso&Bge;UDA?#jj5c3-*jMqX(l(C6+b&KGxfzTY|JB!19C?n-d|GmT zyLp^!4ry4k{|BxpMyaKKO(-P7^RU^b|C{we9`_M)ocK^mOP_0b)h!_gE89nodY^%DM%DllTz{ji^_xMPQj z^r;@^mb>KrAjJ@$$0$Kkk+BzbJ6JzHD41WqIW^(L0_5u2NR(zNag8_jd1dz4nnhS( z#Dwa{cD={cA`;Ro-=9ak&M5Y!)Fy42oB=^ftC<%BWzcf7U3aP zZuHKNpbxv?mvh(Z!0Nmi1s!4^yK*1BUwMqo-C?eko14neA{$ScA@(FUbrk=e^DF^c zPdR0U3+(GG=mg;Zc(k8 z;3wT}j?o?xfmjVQ$pGfP7vVLpi7*!s9>oa|N3B)13ZNnD<-HPr_dVsqw?Gr>NJqTS z+B=)#tK+yLk1O|a5BxklY*t&l4`{6yEWTO^BCm?2TkYAO8e#c+v+828M#^z1G7e5R!h%dB$hVutZ`Pp-=iQcAX&NBy z(Dg3%auuIjtJxiPdb~T<08Jp1 z1dOqnH5Nje`>oV!!o8A)k%1xpR9#o+l9(49T$x$^bbXyAZ`15!ZsxUptyH{bP!*B$ zT7)A#H>i70Ll%zBt1KLmm3Ld6sd7sWr1Et^m|Ja?D6!nb4JPIZ(5nPps}5m){OBon za$@^&D~HL7B_>6@SE_NGFAUg^P45jlnkg8bl2+V=6DmM;b(QZ*9r9ZGaxf~&B?~&B z;oqN%Ct0tuuspvh=9D39p}VmZUoUE|{7FEGUy8IF73{Z*~ad?vM=q!0m(dQFr4 zLHmTe%_paAs%4YTmDbJax5*(}J+-DgVkv_3hXy3cHy^z6ME>Ru>(^T7nm(oPX0Q33 zNS9i7d-3c3yPMPBTeI8e8uoe+EQ(B8qI2wC&}c`^p!a~JyKpVkDUh*ZNJ$`4w+jNS zj#@CW#BY_Qd9jGUTuGVxv3zsi=X0I~3_~ND1x#*t9ByVXaYUOD){+j_O6cO&6s7ya z)!ydYIP@`_3uy_#ExjLtoYOzbHFDFFKeK4{O1jR)50|fJF?3ks0f$6~GT=6Ny^Yl4 zM(%y}(cO|*eiYaAWn@|RJk{%6d0mxij+E3T;-0A0%M5QY$%B<|zkv5|^~+GLFKv@W z@#`t+D}*N?2r3cV@K>~aFoi=d!tMo7Hl==U125i}CrgE$ycK~sKh=}`8K@A_uAp!~ z30Xhd)^?g{19O93xP_eqCC_x#ZW^1&T-P&Jr|FBX-Y5?~^28>Q+oqD!fxLQkjW$Je zN)lBKe?T*Tc!G!LvvljA-N(w(C7WNXbW4W{oQ^2(HRL%&(=pv}T5V7!@y;esPRAaq+taoc3&a=W23Il4o?U1rs} zugS<4wBzxLivQ7r_Q+}1aF1Pz^uhjqf#$4SL)N}6PlU-ecJCK4#!|-q*A8_(teDFW zXEHy|2xbpG%a4Az6j{pEo(bW~j<2ew7K=318l_NmAJ8!Oda80*dEa>${~A+N{foQb zoYMVbYK%jTZceS?#0L}_m@W=0Ec@|=!mdSS+9L?g$E3X3iWqXo9NnXIo58Ovk~Ngs z&MuV0_KWsl~xr1(9KeEm>ziLUE(3d!Dic)dvT!M;lO>mQwxnCV62CVAcC#+T? zyE^-3Z5($@wvUgOvKx;35=H?*qGF}p_RI;?Npg-mN3H!@ZG0&y$YthkC1LiHc9Kf$ zw4qX7NF%8YwaK;BmCj6rD+Gxtgjju*MtK3vH@aD_)dSw^Wd>W-BR<7k<*hvi9_;GA zSpXV>l?<~#&OaUd`na4u$$&IcK|7Ir#(NLIAlXkHoZTzev%p-r-+v?gSf9FI%3hi= zPdlDTZia>A#Y-uggg~>yyJXpr{HWJP>LXE)h96?xY50 zbwq>}b1^-7u9c+ev{99buUd_tfYhZeJ9|G$;LBW{rxV}10{5F5NIR?LuA68c>zsv- z^Om)~-7JY6d2<8MK^lF=Pe)5N`NJnSECg+~41U6Ye%H1iq^v3y3a^}qN^Q4z@VtI) zv3;rH1`@5)mPy{N!+y=!a?Xea=dD#eBTqK4B=7yB;ixJ7W$@sO)H2Ji^vpFL0~HQq ziSTy;s3Gzuw--L-as#s&taL5jJ>?)Ec*F}qK5&31d$DtX?`ybG25 z73RkBz_JEQwAKq1{D|UpzICaPm}ij=MGw0i!BeHh&9qDAE5pvt=&oF>zr?;7 z)!Uqp8;j^Rf_;)*ft7?XzVLN9vD4&n18-8fS$~M#eXfMyT*~N;Cly%N*@^l0UQ`_D zxlUnb#e}JbFIP)7q_eAYB?cdxlR7ZS zUV<7!|4HghE-orvE{kh&j^YSB2}KzEQ9O%6H~)&MesACt}U_8cIZoi zLc%#Wk}P_~xxJnc(}w+qO**5oW!YNMO; z3=K6X<`c>@Np zH-;SJ?{~dlmRtYep}b4@y}@v9l;q8u?tyOz1~@Jj0%>LUUgda^rc-<};4$Lk&L^0I zMXM@o!4u*lzeUeg+C-sICDmUIMC^}<_ZGvH2*XKNz#uPs5u?--m1~Y}?1`J5*M1N8 znMqrG=-W-H8}0-CObh#UB~EYkb^J!%Q&-rg=6ZM9MCcQP;3ZRw>@y@O6$X4N=BjmB z^zBXWX55v?ULfE5PCfL%Yo>7t8q#lrx1Y-_hmGi6~g5}=;P;u4DIm4Oe)wPvH5>M&zRgD+rR4pN!_6hnu;ybB9(<>(c^p#;W*Ku9sW%DJJubM62k#J)rd<6chZm`AlwBUo25nJs)RJ?Omp%SW|b)Cv#KB zo9eiqQH{G5Kga8CI(lP$6~}#Z<4|f*M=FMCNm9I_AOhV%E9a*9 zCt?`qjw&7yA8qm-W~|gV23)_}f*#5&MMx@32K1F1mb4N zb_`r@e>9=zcJB*QrN4BZX&F%fNpWyGfJKPHQ~L9O0uU~{!UFTvfcG+TQouuxYxodC za$l~@rF5Jen+R)4`$s#QZrf=NAudEVsQEXL-fqKX3_md|ouGzA($u!8q&gls-r_rK zS{YvSEh0`Ui3b3<0Q!0D55BBF7Ly>Q_gv#*#qbGjp4wlDE#;uqHI?bI=VjIuq00{} z1YLu8O*sAhSJElVgWYfJmddyir{;_q9wa<(4jMY_)k0Q&|8`iT z16DypiR2UdC?0lj%gw>y=N0d2v0gr|n0GvcBPExG&&SV<3NHt`@RTXtem9It0x{^x zl<>5{6R(d#{?W{(g(%`D|C+GR2!Ek@>jC=V_lEi%NY!=*@rZ{TV@)Z?SV-Z$;A=4O z?Y3+0`jQgtLvr{=PtDDBJ8k;oJ5eA(Y7 z=hZiZKVm4nDyxn8VB=MfWyAi2T(7>wn9Ef9`f#VQAOG<|5&xX7dZHt&sSM9|QH32n zE1Q+IT{q62jlQ{zUR`(VJM{i9+9ieKNFTSQHub6(5%`Q)wz4qfyI1oA361a*wD}Dc zO--LDF{r?3!QsKs7K&E&eB50ykC|y(Sa1e%w+RZPu^N*;K&GNYlh%B2tKYf4v~I0A zaBNGWIV>cvPJh8>a3tViPm%2Xy~W9Bq)&D86ki&OidV~GAaSFnUkSS3L{2855+7A; z6CoS-buP%~74fta52p}>jC8*rcIRNzc+1U#EKUDyW=35-WW6{ln3RF=OIJwm%NbG9 zGLt6tF8v69y*|{6gC-4WjY)}q^^q4-8d==yPIqh=;3>ShV!`nobQ3~xM$WDanW_!_ z0V?4e;ZK0-$2Z2fh-5-y`&!!AQ;;-bKfa2!VxVJ4A~fVEOX26*TYa)*3+V%6lc^Zx$ESnPn5mq7y&K-rsy2irzva=r>P5W|X5r7vVGGus$3S zO3LC8|6%oe=a4XNsq35=AKeeGS3MiJ`+NAB?mTS^f{yZC8>&UU8g@=o(qtX>Ai= zZ<(hp4!Kh?z;rl(jmkJuZQdGklt6rRG*qCaPPpTpE9Zd9iH$Yt1bGmgi_O`8yjsKf zj*w9a&DkBY`9VEPs!z6=VSLoriDkEs z`A9yozvW<;s>}Vy=%G5VQO3YTs7JWC`%YP`?gmYpv^@`&mQF!poK#tTk((>k{(L9t z%!}B&teP=p>juYt?X&@2BU1`GQU;#rB%K;_QQbWnLJOG=;v6iD?K%~@xi_dcg8cfS znVi9}^qo^+uaC2bMO{T9TWhnL!rt`4LR0tjDi6|QR${wkGslQ`hH1q7;;sXm9SFX~ zkcR_i&Pe(FB?G(7F7I_}tJgcbw)yXmH8=woDDpvZ{P*$rx#AcK?0h3#=JaYSJm{3) zX$w%#B=f)O?enw{P3kUuzEldM(_hBcui*!ne>#so$$F!oL+q((Vwsjxv4ZzOb&k1b z)>6Rk*P7CJE!Rg7ch^9SYmG1cHtMPxhIc8H%V)NUM<4HL!H(4z+jJa&MoJO5^P6ZM zsK;)QnDuPv+o>_BKl}JVA>s}vXZm3{4=&9|Nvm;+Yr6wAp_Gar88?#@Q5{0?ETWkc z+D9rq@raYm<^h`lWbA!#i#DVy!r?0}-#VtGA&&SzAO;9RVD{=Eih08>RlHmUIt$B?Fm;<9uvXK3XHcurJ@ckFMcJcrg`Bb1~i` zh3`~b+zn9S*h-Zd=x$Pvj}1Z$RWvJQ#{wjljT3lfc*|RVCMEagT1w2wkD=&z@2k#9 zyt)*N&7i9W&m&|mi~#cp79Phq+xRW@T{3BrMA%g1uY=RKU(rnQkqRVW&^(G7%zDOq zu({Qw%g=YvbiCtg4lcUA#w52i>Qzx(&cP$KB!(WQ4yG?Y(lVY~XsSsWId1#duG`?g z<`zXk&y1UyZOp0*8$hghx8Z2C5vQ>K2?czjf^kwwh=M76Q43D~{cA&ND-5@|JG_+f zaN#ID5nf?pT-USUZmQ+dK{(+F8^lqX?i*L_pb_zP1EGGK(~*trx}8oS zt>5Pj+^5uvwC&xMFM+m!%m@pS1WX2zD#E>lzR8Q+m$CnD5+Ij*o%#=?rr93 zVJx6SX?9TIz!G3D>u%e28#8EOgM=F^e|)(LD_#goz@1(82+)b6_jcD^Au3G|Y5C=H zkwas880#c8RTPpuUY@8mES;jPw>VGNH4?#38tsGO{v@OwLO9jbzG6=-?c&!yQtTbf zpdNj{zISuXopcj$D}bDzFq_I)!%3$-W1~(D)_p-Mo--V&R166#QB&Yf4wFk zlc#?t(75z^7srhp-$FPs;LUj-4mm-kR&pj3PrUqYiF-oRFy`0ok^MiZi5>K2EY$R- g&=uqzZeIf+@1uBSGs5be{4aEpqOu~dh4j4s7uKQr7XSbN literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/10.png b/examples/network/img/indonesia/10.png new file mode 100644 index 0000000000000000000000000000000000000000..f0266c816f560f05a117c95cd41f5bf087f29aef GIT binary patch literal 29214 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 bZ2(Hc6KU`r?@jqW8aS?U5}m7Le*S*}>0FYf literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/11.png b/examples/network/img/indonesia/11.png new file mode 100644 index 0000000000000000000000000000000000000000..ecce3f9e98dd0ec10eb526794f1cd24eec5be38f GIT binary patch literal 28546 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 literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/12.png b/examples/network/img/indonesia/12.png new file mode 100644 index 0000000000000000000000000000000000000000..1c60cee6a6ee56df2d93a6cdeaea744975501e68 GIT binary patch literal 30019 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 oACSFiHgpSKnY=Cpp^~8(8L@J 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 literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/2.png b/examples/network/img/indonesia/2.png new file mode 100644 index 0000000000000000000000000000000000000000..f1da21ee6dbea192c74bd34f64ecccfaf5220d09 GIT binary patch literal 31437 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 BUnu|p literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/3.png b/examples/network/img/indonesia/3.png new file mode 100644 index 0000000000000000000000000000000000000000..f9713f361f1c0002bf66eb58675a80e3ddcf1d26 GIT binary patch literal 31941 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 literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/5.png b/examples/network/img/indonesia/5.png new file mode 100644 index 0000000000000000000000000000000000000000..397487b980d8d52e3bfc09991a18d8f3e11cc3b0 GIT binary patch literal 31461 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%0Dy}C0Py)503Z<$0MH?$t~M(J0IWr-igJ4H1LxlM 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 literal 0 HcmV?d00001 diff --git a/examples/network/img/indonesia/9.png b/examples/network/img/indonesia/9.png new file mode 100644 index 0000000000000000000000000000000000000000..ff9ebf2bf93640937e847d8af31d160b509a7b29 GIT binary patch literal 30693 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 T@`Mh6d`XJRiM$fhefYls(Iq_} literal 0 HcmV?d00001 diff --git a/examples/network/index.html b/examples/network/index.html index d3d4d6ad..ac8c7bdd 100644 --- a/examples/network/index.html +++ b/examples/network/index.html @@ -45,6 +45,7 @@

32_hierarchicaLayoutMethods.html

33_animation.html

+

34_circular_images.html

graphviz_gallery.html

diff --git a/examples/timeline/32_grid_styling.html b/examples/timeline/32_grid_styling.html new file mode 100644 index 00000000..ac4506c0 --- /dev/null +++ b/examples/timeline/32_grid_styling.html @@ -0,0 +1,53 @@ + + + + Timeline | Grid styling + + + + + + + +
+ + + + \ No newline at end of file diff --git a/examples/timeline/index.html b/examples/timeline/index.html index c02c1182..37912cd4 100644 --- a/examples/timeline/index.html +++ b/examples/timeline/index.html @@ -42,6 +42,7 @@

29_hiding_times.html

30_subgroups.html

31_background_areas_with_groups.html

+

32_grid_styling.html

requirejs_example.html

diff --git a/network_examples.html b/network_examples.html index c55629f6..0f2f4617 100644 --- a/network_examples.html +++ b/network_examples.html @@ -384,7 +384,7 @@
- +
circular images
diff --git a/timeline_examples.html b/timeline_examples.html index 650041f8..0c10477a 100644 --- a/timeline_examples.html +++ b/timeline_examples.html @@ -341,6 +341,7 @@
templates
+ +

31_localization.html