diff --git a/HISTORY.md b/HISTORY.md index b15d59bb..3736f185 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -8,6 +8,21 @@ http://visjs.org - reverted change in image class, fixed bug #552 - improved (not neccesarily fixed) the fontFill offset between different browsers. #365 +- Fixed dashed lines on firefox on Unix systems +- Altered the Manipulation Mixin to be succesfully destroyed from memory when calling destroy(); +- Improved drawing of arrowheads on smooth curves. #349 +- Caught case where click originated on external DOM element and drag progressed to vis. +- Added label stroke support to Nodes, Edges & Groups as per-object or global settings. Thank you @klmdb! +- Reverted patch that made nodes return to 'default' setting if no group was assigned to fix issue #561. The correct way to 'remove' a group from a node is to assign it a different one. +- Made the node/edge selected by the popup system the same as selected by the click-to-select system. Thank you @pavlos256! +- Improved edit edge control nodes positions, altered style a little. +- Fixed issue #564 by resetting state to initial when no callback is performed in the return function. +- Added condition to Repulsion similar to BarnesHut to ensure nodes do not overlap. + +### Timeline + +- Added byUser flag to options of the rangechange and rangechanged event. + ## 20145-01-09, version 3.8.0 diff --git a/dist/vis.js b/dist/vis.js index 480edc09..f759647e 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.8.1-SNAPSHOT - * @date 2015-01-13 + * @date 2015-01-14 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -12264,9 +12264,13 @@ return /******/ (function(modules) { // webpackBootstrap * If animate is a number, the * number is taken as duration * Default duration is 500 ms. + * @param {Boolean} [byUser=false] * */ - Range.prototype.setRange = function(start, end, animate) { + Range.prototype.setRange = function(start, end, animate, byUser) { + if (byUser !== true) { + byUser = false; + } var _start = start != undefined ? util.convert(start, 'Date').valueOf() : null; var _end = end != undefined ? util.convert(end, 'Date').valueOf() : null; this._cancelAnimation(); @@ -12291,12 +12295,12 @@ return /******/ (function(modules) { // webpackBootstrap DateUtil.updateHiddenDates(me.body, me.options.hiddenDates); anyChanged = anyChanged || changed; if (changed) { - me.body.emitter.emit('rangechange', {start: new Date(me.start), end: new Date(me.end)}); + me.body.emitter.emit('rangechange', {start: new Date(me.start), end: new Date(me.end), byUser:byUser}); } if (done) { if (anyChanged) { - me.body.emitter.emit('rangechanged', {start: new Date(me.start), end: new Date(me.end)}); + me.body.emitter.emit('rangechanged', {start: new Date(me.start), end: new Date(me.end), byUser:byUser}); } } else { @@ -12313,7 +12317,7 @@ return /******/ (function(modules) { // webpackBootstrap var changed = this._applyRange(_start, _end); DateUtil.updateHiddenDates(this.body, this.options.hiddenDates); if (changed) { - var params = {start: new Date(this.start), end: new Date(this.end)}; + var params = {start: new Date(this.start), end: new Date(this.end), byUser:byUser}; this.body.emitter.emit('rangechange', params); this.body.emitter.emit('rangechanged', params); } @@ -12564,7 +12568,8 @@ return /******/ (function(modules) { // webpackBootstrap // fire a rangechange event this.body.emitter.emit('rangechange', { start: new Date(this.start), - end: new Date(this.end) + end: new Date(this.end), + byUser: true }); }; @@ -12589,7 +12594,8 @@ return /******/ (function(modules) { // webpackBootstrap // fire a rangechanged event this.body.emitter.emit('rangechanged', { start: new Date(this.start), - end: new Date(this.end) + end: new Date(this.end), + byUser: true }); }; @@ -12704,7 +12710,7 @@ return /******/ (function(modules) { // webpackBootstrap newEnd = safeEnd; } - this.setRange(newStart, newEnd); + this.setRange(newStart, newEnd, false, true); this.startToFront = false; // revert to default this.endToFront = true; // revert to default @@ -12781,7 +12787,7 @@ return /******/ (function(modules) { // webpackBootstrap newEnd = safeEnd; } - this.setRange(newStart, newEnd); + this.setRange(newStart, newEnd, false, true); this.startToFront = false; // revert to default this.endToFront = true; // revert to default @@ -14012,8 +14018,7 @@ return /******/ (function(modules) { // webpackBootstrap this.redraw(); } else { - console.log('WARNING: infinite loop in redraw?') - throw new Error("bla") + console.log('WARNING: infinite loop in redraw?'); } this.redrawCount = 0; } @@ -22755,6 +22760,8 @@ return /******/ (function(modules) { // webpackBootstrap fontSize: 14, // px fontFace: 'verdana', fontFill: undefined, + fontStrokeWidth: 0, // px + fontStrokeColor: 'white', level: -1, color: { border: '#2B7CE9', @@ -22788,6 +22795,8 @@ return /******/ (function(modules) { // webpackBootstrap fontSize: 14, // px fontFace: 'arial', fontFill: 'white', + fontStrokeWidth: 0, // px + fontStrokeColor: 'white', arrowScaleFactor: 1, dash: { length: 10, @@ -22864,7 +22873,7 @@ return /******/ (function(modules) { // webpackBootstrap levelSeparation: 150, nodeSpacing: 100, direction: "UD", // UD, DU, LR, RL - layout: "hubsize" // hubsize, directed + layout: "hubsize" // hubsize, directed, uniqueDirected }, freezeForStabilization: false, smoothCurves: { @@ -23563,18 +23572,16 @@ return /******/ (function(modules) { // webpackBootstrap // clear events this.off(); - // remove all elements from the container element. - while (this.frame.hasChildNodes()) { - this.frame.removeChild(this.frame.firstChild); - } + this._recursiveDOMDelete(this.containerElement); + } - // remove all elements from the container element. - while (this.containerElement.hasChildNodes()) { - this.containerElement.removeChild(this.containerElement.firstChild); + Network.prototype._recursiveDOMDelete = function(DOMobject) { + while (DOMobject.hasChildNodes() == true) { + this._recursiveDOMDelete(DOMobject.firstChild); + DOMobject.removeChild(DOMobject.firstChild); } } - /** * Get the pointer location from a touch location * @param {{pageX: Number, pageY: Number}} touch @@ -23610,8 +23617,8 @@ return /******/ (function(modules) { // webpackBootstrap * handle drag start event * @private */ - Network.prototype._onDragStart = function () { - this._handleDragStart(); + Network.prototype._onDragStart = function (event) { + this._handleDragStart(event); }; @@ -23621,20 +23628,24 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ - Network.prototype._handleDragStart = function() { - var drag = this.drag; - var node = this._getNodeAt(drag.pointer); + Network.prototype._handleDragStart = function(event) { + // in case the touch event was triggered on an external div, do the initial touch now. + if (this.drag.pointer === undefined) { + this._onTouch(event); + } + + var node = this._getNodeAt(this.drag.pointer); // note: drag.pointer is set in _onTouch to get the initial touch location - drag.dragging = true; - drag.selection = []; - drag.translation = this._getTranslation(); - drag.nodeId = null; + this.drag.dragging = true; + this.drag.selection = []; + this.drag.translation = this._getTranslation(); + this.drag.nodeId = null; this.draggingNodes = false; if (node != null && this.constants.dragNodes == true) { this.draggingNodes = true; - drag.nodeId = node.id; + this.drag.nodeId = node.id; // select the clicked node if not yet selected if (!node.isSelected()) { this._selectObject(node,false); @@ -23660,7 +23671,7 @@ return /******/ (function(modules) { // webpackBootstrap object.xFixed = true; object.yFixed = true; - drag.selection.push(s); + this.drag.selection.push(s); } } } @@ -23720,8 +23731,13 @@ return /******/ (function(modules) { // webpackBootstrap } } else { + // move the network if (this.constants.dragNetwork == true) { - // move the network + // if the drag was not started properly because the click started outside the network div, start it now. + if (this.drag.pointer === undefined) { + this._handleDragStart(event); + return; + } var diffX = pointer.x - this.drag.pointer.x; var diffY = pointer.y - this.drag.pointer.y; @@ -23730,8 +23746,6 @@ return /******/ (function(modules) { // webpackBootstrap this.drag.translation.y + diffY ); this._redraw(); - // this.moving = true; - // this.start(); } } }; @@ -24014,34 +24028,44 @@ return /******/ (function(modules) { // webpackBootstrap if (this.popupObj == undefined) { // search the nodes for overlap, select the top one in case of multiple nodes var nodes = this.nodes; + var overlappingNodes = []; for (id in nodes) { if (nodes.hasOwnProperty(id)) { var node = nodes[id]; if (node.isOverlappingWith(obj)) { if (node.getTitle() !== undefined) { - this.popupObj = node; - break; + overlappingNodes.push(id); } - // if you hover over a node, the title of the edge is not supposed to be shown. - nodeUnderCursor = true; } } } + + if (overlappingNodes.length > 0) { + // if there are overlapping nodes, select the last one, this is the + // one which is drawn on top of the others + this.popupObj = this.nodes[overlappingNodes[overlappingNodes.length - 1]]; + // if you hover over a node, the title of the edge is not supposed to be shown. + nodeUnderCursor = true; + } } if (this.popupObj === undefined && nodeUnderCursor == false) { // search the edges for overlap var edges = this.edges; + var overlappingEdges = []; for (id in edges) { if (edges.hasOwnProperty(id)) { var edge = edges[id]; if (edge.connected && (edge.getTitle() !== undefined) && edge.isOverlappingWith(obj)) { - this.popupObj = edge; - break; + overlappingEdges.push(id); } } } + + if (overlappingEdges.length > 0) { + this.popupObj = this.edges[overlappingEdges[overlappingEdges.length - 1]]; + } } if (this.popupObj) { @@ -26595,7 +26619,7 @@ return /******/ (function(modules) { // webpackBootstrap } var fields = ['borderWidth','borderWidthSelected','shape','image','brokenImage','radius','fontColor', - 'fontSize','fontFace','fontFill','group','mass' + 'fontSize','fontFace','fontFill','fontStrokeWidth','fontStrokeColor','group','mass' ]; util.selectiveDeepExtend(fields, this.options, properties); @@ -26624,9 +26648,6 @@ return /******/ (function(modules) { // webpackBootstrap // the color object needs to be completely defined. Since groups can partially overwrite the colors, we parse it again, just in case. this.options.color = util.parseColor(this.options.color); } - else if (properties.color === undefined) { - this.options.color = constants.nodes.color; - } // individual shape properties if (properties.radius !== undefined) {this.baseRadiusValue = this.options.radius;} @@ -27466,7 +27487,15 @@ return /******/ (function(modules) { // webpackBootstrap ctx.fillStyle = this.options.fontColor || "black"; ctx.textAlign = align || "center"; ctx.textBaseline = baseline || "middle"; + if (this.options.fontStrokeWidth > 0){ + ctx.lineWidth = this.options.fontStrokeWidth; + ctx.strokeStyle = this.options.fontStrokeColor; + ctx.lineJoin = 'round'; + } for (var i = 0; i < lineCount; i++) { + if(this.options.fontStrokeWidth){ + ctx.strokeText(lines[i], x, yLine); + } ctx.fillText(lines[i], x, yLine); yLine += fontSize; } @@ -27657,7 +27686,7 @@ return /******/ (function(modules) { // webpackBootstrap return; } - var fields = ['style','fontSize','fontFace','fontColor','fontFill','width', + var fields = ['style','fontSize','fontFace','fontColor','fontFill','fontStrokeWidth','fontStrokeColor','width', 'widthSelectionMultiplier','hoverWidth','arrowScaleFactor','dash','inheritColor' ]; util.selectiveDeepExtend(fields, this.options, properties); @@ -27904,168 +27933,176 @@ return /******/ (function(modules) { // webpackBootstrap }; 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; + if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true ) { + return this.via; + } + else if (this.options.smoothCurves.enabled == false) { + return {x:0,y:0}; + } + else { + 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.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 (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 (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.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 * 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 (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 (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 if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; + else { + yVia = this.to.y + (1 - factor) * dy; } } - else if (this.from.y < this.to.y) { + 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.from.x + factor * dx; - yVia = this.from.y + factor * dx; + xVia = this.to.x - (1 - factor) * dx; } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; + else { + xVia = this.to.x + (1 - factor) * dx; } - } - if (type == "discrete") { - yVia = dy < factor * dx ? this.from.y : yVia; + yVia = this.from.y; } } - } - 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 if (type == 'horizontal') { + if (this.from.x < this.to.x) { + xVia = this.to.x - (1 - factor) * dx; } else { - yVia = this.to.y + (1-factor) * dy; + xVia = this.to.x + (1 - factor) * dx; } + yVia = this.from.y; } - 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 if (type == 'vertical') { + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1 - factor) * dy; } else { - xVia = this.to.x + (1-factor) * dx; + yVia = this.to.y + (1 - factor) * dy; } - yVia = this.from.y; - } - } - else if (type == 'horizontal') { - if (this.from.x < this.to.x) { - xVia = this.to.x - (1-factor) * dx; } - else { - xVia = this.to.x + (1-factor) * dx; - } - yVia = this.from.y; - } - else if (type == 'vertical') { - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1-factor) * dy; - } - else { - yVia = this.to.y + (1-factor) * dy; - } - } - else { // 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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}; + return {x: xVia, y: yVia}; + } }; /** @@ -28167,8 +28204,16 @@ return /******/ (function(modules) { // webpackBootstrap ctx.fillStyle = this.options.fontColor || "black"; ctx.textAlign = "center"; ctx.textBaseline = "middle"; + if (this.options.fontStrokeWidth > 0){ + ctx.lineWidth = this.options.fontStrokeWidth; + ctx.strokeStyle = this.options.fontStrokeColor; + ctx.lineJoin = 'round'; + } yLine = this.labelDimensions.yLine; for (var i = 0; i < lineCount; i++) { + if(this.options.fontStrokeWidth){ + ctx.strokeText(lines[i], x, yLine); + } ctx.fillText(lines[i], x, yLine); yLine += fontSize; } @@ -28354,7 +28399,69 @@ return /******/ (function(modules) { // webpackBootstrap } }; + Edge.prototype._pointOnBezier = function(t) { + var via = this._getViaCoordinates(); + + var x = Math.pow(1-t,2)*this.from.x + (2*t*(1 - t))*via.x + Math.pow(t,2)*this.to.x; + var y = Math.pow(1-t,2)*this.from.y + (2*t*(1 - t))*via.y + Math.pow(t,2)*this.to.y; + + return {x:x,y:y}; + } + + /** + * This function uses binary search to look for the point where the bezier curve crosses the border of the node. + * + * @param from + * @param ctx + * @returns {*} + * @private + */ + Edge.prototype._findBorderPosition = function(from,ctx) { + var maxIterations = 10; + var iteration = 0; + var low = 0; + var high = 1; + var pos,angle,distanceToBorder, distanceToNodes, difference; + var threshold = 0.2; + var node = this.to; + if (from == true) { + node = this.from; + } + + while (low <= high && iteration < maxIterations) { + var middle = (low + high) * 0.5; + + pos = this._pointOnBezier(middle); + angle = Math.atan2((node.y - pos.y), (node.x - pos.x)); + distanceToBorder = node.distanceToBorder(ctx,angle); + distanceToNodes = Math.sqrt(Math.pow(pos.x-node.x,2) + Math.pow(pos.y-node.y,2)); + difference = distanceToBorder - distanceToNodes; + if (Math.abs(difference) < threshold) { + break; // found + } + else if (difference < 0) { // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (from == false) { + low = middle; + } + else { + high = middle; + } + } + else { + if (from == false) { + high = middle; + } + else { + low = middle; + } + } + + iteration++; + } + pos.t = middle; + return pos; + }; /** * Redraw a edge as a line with an arrow @@ -28369,59 +28476,37 @@ return /******/ (function(modules) { // webpackBootstrap 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); + // set vars + var angle, length, arrowPos; - 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(); - } - - 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 not connected to itself + if (this.from != this.to) { + // draw line + this._line(ctx); - 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; + // draw arrow head + if (this.options.smoothCurves.enabled == true) { + var via = this._getViaCoordinates(); + arrowPos = this._findBorderPosition(false, ctx); + var guidePos = this._pointOnBezier(Math.max(0.0, arrowPos.t - 0.1)) + angle = Math.atan2((arrowPos.y - guidePos.y), (arrowPos.x - guidePos.x)); } else { - xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; - } + 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 toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; - ctx.beginPath(); - ctx.moveTo(xFrom,yFrom); - if (this.options.smoothCurves.enabled == true && via.x != null) { - ctx.quadraticCurveTo(via.x,via.y,xTo, yTo); + arrowPos = {}; + arrowPos.x = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + arrowPos.y = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; } - else { - ctx.lineTo(xTo, yTo); - } - ctx.stroke(); // draw arrow at the end of the line length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - ctx.arrow(xTo, yTo, angle, length); + ctx.arrow(arrowPos.x,arrowPos.y, angle, length); ctx.fill(); ctx.stroke(); @@ -28429,9 +28514,7 @@ return /******/ (function(modules) { // webpackBootstrap 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}; + point = this._pointOnBezier(0.5); } else { point = this._pointOnLine(0.5); @@ -28484,8 +28567,6 @@ return /******/ (function(modules) { // webpackBootstrap } }; - - /** * Calculate the distance between a point (x3,y3) and a line segment from * (x1,y1) to (x2,y2). @@ -28626,26 +28707,30 @@ return /******/ (function(modules) { // webpackBootstrap var nodeIdFrom = "edgeIdFrom:".concat(this.id); var nodeIdTo = "edgeIdTo:".concat(this.id); var constants = { - nodes:{group:'', radius:8}, + nodes:{group:'', radius:7, borderWidth:2, borderWidthSelected: 2}, physics:{damping:0}, clustering: {maxNodeSizeIncrements: 0 ,nodeScaling: {width:0, height: 0, radius:0}} }; this.controlNodes.from = new Node( {id:nodeIdFrom, shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + color:{background:'#ff0000', border:'#3c3c3c', highlight: {background:'#07f968'}} },{},{},constants); this.controlNodes.to = new Node( {id:nodeIdTo, shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + color:{background:'#ff0000', 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.positions = {}; + if (this.controlNodes.from.selected == false) { + this.controlNodes.positions.from = this.getControlNodeFromPosition(ctx); this.controlNodes.from.x = this.controlNodes.positions.from.x; this.controlNodes.from.y = this.controlNodes.positions.from.y; + } + if (this.controlNodes.to.selected == false) { + this.controlNodes.positions.to = this.getControlNodeToPosition(ctx); this.controlNodes.to.x = this.controlNodes.positions.to.x; this.controlNodes.to.y = this.controlNodes.positions.to.y; } @@ -28737,46 +28822,56 @@ return /******/ (function(modules) { // webpackBootstrap * 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: *}}} + * @returns {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(); + Edge.prototype.getControlNodeFromPosition = function(ctx) { + // draw arrow head + var controlnodeFromPos; + if (this.options.smoothCurves.enabled == true) { + controlnodeFromPos = this._findBorderPosition(true, ctx); } + else { + 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); - 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 fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); + var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; + controlnodeFromPos = {}; + controlnodeFromPos.x = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; + controlnodeFromPos.y = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; } - var toBorderDist = this.to.distanceToBorder(ctx, angle); - var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; - 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; + return controlnodeFromPos; + }; + + /** + * 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.getControlNodeToPosition = function(ctx) { + // draw arrow head + var controlnodeFromPos,controlnodeToPos; + if (this.options.smoothCurves.enabled == true) { + controlnodeToPos = this._findBorderPosition(false, ctx); } else { - xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; + 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 toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + + controlnodeToPos = {}; + controlnodeToPos.x = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + controlnodeToPos.y = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; } - return {from:{x:xFrom,y:yFrom},to:{x:xTo,y:yTo}}; + return controlnodeToPos; }; module.exports = Edge; @@ -29895,6 +29990,12 @@ return /******/ (function(modules) { // webpackBootstrap dy = node2.y - node1.y; distance = Math.sqrt(dx * dx + dy * dy); + // same condition as BarnesHut, making sure nodes are never 100% overlapping. + if (distance == 0) { + distance = 0.1*Math.random(); + dx = distance; + } + minimumDistance = (combinedClusterSize == 0) ? nodeDistance : (nodeDistance * (1 + combinedClusterSize * this.constants.clustering.distanceAmplification)); var a = a_base / minimumDistance; if (distance < 2 * minimumDistance) { @@ -29904,13 +30005,13 @@ return /******/ (function(modules) { // webpackBootstrap else { repulsingForce = a * distance + b; // linear approx of 1 / (1 + Math.exp((distance / minimumDistance - 1) * steepness)) } + // amplify the repulsion for clusters. repulsingForce *= (combinedClusterSize == 0) ? 1 : 1 + combinedClusterSize * this.constants.clustering.forceAmplification; repulsingForce = repulsingForce / Math.max(distance,0.01*minimumDistance); fx = dx * repulsingForce; fy = dy * repulsingForce; - node1.fx -= fx; node1.fy -= fy; node2.fx += fx; @@ -32916,9 +33017,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ exports._clearManipulatorBar = function() { - while (this.manipulationDiv.hasChildNodes()) { - this.manipulationDiv.removeChild(this.manipulationDiv.firstChild); - } + this._recursiveDOMDelete(this.manipulationDiv); this.manipulationDOM = {}; this._manipulationReleaseOverload = function () {}; @@ -32938,6 +33037,7 @@ return /******/ (function(modules) { // webpackBootstrap for (var functionName in this.cachedFunctions) { if (this.cachedFunctions.hasOwnProperty(functionName)) { this[functionName] = this.cachedFunctions[functionName]; + delete this.cachedFunctions[functionName]; } } }; @@ -33083,7 +33183,8 @@ return /******/ (function(modules) { // webpackBootstrap } this.closeDiv.onclick = this._toggleEditMode.bind(this); - this.boundFunction = this._createManipulatorBar.bind(this); + var me = this; + this.boundFunction = me._createManipulatorBar; this.on('select', this.boundFunction); } else { @@ -33146,7 +33247,8 @@ return /******/ (function(modules) { // webpackBootstrap this.manipulationDOM['backSpan'].onclick = this._createManipulatorBar.bind(this); // we use the boundFunction so we can reference it when we unbind it from the "select" event. - this.boundFunction = this._addNode.bind(this); + var me = this; + this.boundFunction = me._addNode; this.on('select', this.boundFunction); }; @@ -33162,12 +33264,12 @@ return /******/ (function(modules) { // webpackBootstrap this._unselectAll(true); this.freezeSimulation = true; - var locale = this.constants.locales[this.constants.locale]; - if (this.boundFunction) { this.off('select', this.boundFunction); } + var locale = this.constants.locales[this.constants.locale]; + this._unselectAll(); this.forceAppendSelection = false; this.blockConnectingEdgeSelection = true; @@ -33198,7 +33300,8 @@ return /******/ (function(modules) { // webpackBootstrap this.manipulationDOM['backSpan'].onclick = this._createManipulatorBar.bind(this); // we use the boundFunction so we can reference it when we unbind it from the "select" event. - this.boundFunction = this._handleConnect.bind(this); + var me = this; + this.boundFunction = me._handleConnect; this.on('select', this.boundFunction); // temporarily overload functions @@ -33309,14 +33412,22 @@ return /******/ (function(modules) { // webpackBootstrap this._redraw(); }; + + /** + * + * @param pointer + * @private + */ exports._releaseControlNode = function(pointer) { var newNode = this._getNodeAt(pointer); if (newNode !== null) { if (this.edgeBeingEdited.controlNodes.from.selected == true) { + this.edgeBeingEdited._restoreControlNodes(); this._editEdge(newNode.id, this.edgeBeingEdited.to.id); this.edgeBeingEdited.controlNodes.from.unselect(); } if (this.edgeBeingEdited.controlNodes.to.selected == true) { + this.edgeBeingEdited._restoreControlNodes(); this._editEdge(this.edgeBeingEdited.from.id, newNode.id); this.edgeBeingEdited.controlNodes.to.unselect(); } @@ -33992,36 +34103,24 @@ return /******/ (function(modules) { // webpackBootstrap } }; + + /** - * this function allocates nodes in levels based on the recursive branching from the largest hubs. + * this function allocates nodes in levels based on the direction of the edges * * @param hubsize * @private */ exports._determineLevelsDirected = function() { - var nodeId, node; + var nodeId, node, firstNode; + var minLevel = 10000; // set first node to source - for (nodeId in this.nodes) { - if (this.nodes.hasOwnProperty(nodeId)) { - this.nodes[nodeId].level = 10000; - break; - } - } + firstNode = this.nodes[this.nodeIndices[0]]; + firstNode.level = minLevel; + this._setLevelDirected(minLevel,firstNode.edges,firstNode.id); - // branch from hubs - for (nodeId in this.nodes) { - if (this.nodes.hasOwnProperty(nodeId)) { - node = this.nodes[nodeId]; - if (node.level == 10000) { - this._setLevelDirected(10000,node.edges,node.id); - } - } - } - - - // branch from hubs - var minLevel = 10000; + // get the minimum level for (nodeId in this.nodes) { if (this.nodes.hasOwnProperty(nodeId)) { node = this.nodes[nodeId]; @@ -34029,7 +34128,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - // branch from hubs + // subtract the minimum from the set so we have a range starting from 0 for (nodeId in this.nodes) { if (this.nodes.hasOwnProperty(nodeId)) { node = this.nodes[nodeId]; @@ -34135,7 +34234,7 @@ return /******/ (function(modules) { // webpackBootstrap /** - * this function is called recursively to enumerate the barnches of the largest hubs and give each node a level. + * this function is called recursively to enumerate the branched of the first node and give each node a level based on edge direction * * @param level * @param edges diff --git a/dist/vis.map b/dist/vis.map index 1ea034a9..1a7fee29 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","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","lang","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","updateSVGheightOnResize","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","majorTexts","minorTexts","lineTop","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","_drawCircularImage","_resizeCircularImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","_setForce","_addForce","storeState","isFixed","velocity","getDistance","_drawImageAtPosition","globalAlpha","drawImage","_drawImageLabel","centerX","centerY","_drawRawCircle","circle","clip","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","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_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","monthDiff","anchor2","adjust","wholeMonthDiff","meridiemFixWrap","meridiem","isPm","meridiemHour","isPM","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","updateInProgress","updateOffset","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","_milliseconds","_days","_months","_locale","_bubble","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","targetLength","forceSign","output","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","setTime","rawSetter","rawGetter","rawMonthSetter","input","compareArrays","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","getter","results","utc","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","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","utcOffsetFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_meridiem","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dateFromConfig","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","getUTCFullYear","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","makeDateFromInput","aspNetJsonRegex","ms","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","relativeTimeThresholds","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","dayOfMonth","unit","makeAccessor","keepTime","daysToYears","yearsToDays","makeDurationGetter","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","SS","SSS","SSSS","Z","utcOffset","ZZ","zoneAbbr","zz","zoneName","unix","lists","DDDD","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","firstDayOfYear","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","relativeTimeThreshold","threshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateUtcOffset","inputString","asFloat","that","zoneDiff","humanize","fromNow","sod","startOf","isDST","getDay","endOf","inputMs","isBetween","zone","localAdjust","_changeInProgress","isLocal","isUtcOffset","isUtc","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","isUTC","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","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","_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","__WEBPACK_AMD_DEFINE_RESULT__","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","console","warn","deprecate","fn","firstTime","apply","deprecateSimple","name","deprecations","padToken","func","count","leftZeroFill","ordinalizeToken","period","localeData","ordinal","monthDiff","anchor2","adjust","wholeMonthDiff","year","month","anchor","clone","add","meridiemFixWrap","locale","hour","meridiem","isPm","meridiemHour","isPM","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","_d","updateInProgress","updateOffset","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","day","hours","minutes","minute","seconds","second","milliseconds","millisecond","_milliseconds","_days","_months","_data","_locale","_bubble","to","from","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","ceil","targetLength","forceSign","output","abs","sign","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","direction","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","setTime","rawSetter","rawGetter","rawMonthSetter","input","prototype","compareArrays","array1","array2","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","toLowerCase","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","format","getter","method","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","j","next","loadLocale","slice","oldLocale","locales","hasModule","code","model","diff","local","removeFormattingTokens","makeFormatFunction","formattingTokens","formatTokenFunctions","Function","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","getParseRegexForToken","token","strict","parseTokenOneDigit","parseTokenThreeDigits","parseTokenFourDigits","parseTokenOneToFourDigits","parseTokenSignedNumber","parseTokenSixDigits","parseTokenOneToSixDigits","parseTokenTwoDigits","parseTokenOneToThreeDigits","parseTokenWord","_meridiemParse","parseTokenOffsetMs","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","_ordinalParse","_ordinalParseLenient","RegExp","regexpEscape","unescapeFormat","utcOffsetFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","parseInt","_dayOfYear","parseTwoDigitYear","_meridiem","parseFloat","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","w","weekYear","weekday","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dayOfYear","dateFromConfig","date","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","now","getUTCFullYear","getFullYear","getMonth","getDate","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p1","p2","p3","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","arr","makeDateFromInput","aspNetJsonRegex","obj","y","M","ms","setFullYear","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","round","as","args","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","A","H","S","SS","SSS","SSSS","Z","utcOffset","ZZ","z","zoneAbbr","zz","zoneName","x","X","unix","lists","pop","DDDD","source","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","charAt","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","firstDayOfYear","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","defaultFormat","relativeTimeThreshold","threshold","limit","lang","values","data","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","subtract","_dateUtcOffset","inputString","asFloat","that","zoneDiff","time","humanize","fromNow","sod","startOf","isDST","getDay","endOf","inputMs","isBetween","isSame","zone","localAdjust","offset","_changeInProgress","isLocal","isUtcOffset","isUtc","hasAlignedHourOffset","isoWeeksInYear","weekInfo","get","newLocaleData","getTimezoneOffset","dates","isoWeeks","toJSON","isUTC","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","webpackContext","req","resolve","webpackPolyfill","paths","children","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","group","point","drawPoints","setAttributeNS","size","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","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","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","result","getIds","getDataSet","mappedItems","filteredItem","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","context","entry","clearTimeout","setTimeout","_ids","_onEvent","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","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","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","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","textAlign","textBaseline","fillText","label","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xOffset","yOffset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","V","R","G","B","C","Hi","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","content","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","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","setup","Hammer","READY","Event","determineEventTypes","Utils","each","gestures","gesture","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","src","merge","handler","iterator","inStr","find","inArray","hasParent","node","parent","getCenter","touches","pageX","pageY","touch","getVelocity","deltaTime","deltaX","deltaY","getAngle","touch1","touch2","atan2","getDirection","getDistance","getScale","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","eventType","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","reset","touchList","getTouchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","collectEventData","identifiers","identifier","pointerType","timeStamp","srcEvent","preventManipulation","stopPropagation","stopDetect","pointers","touchlist","pointer","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","current","previous","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","cur","recalc","calcEv","calcData","velocity","angle","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","enable","state","dispose","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","factor","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","timer","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","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","hammerUtil","byUser","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","fakeGesture","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","centerContainer","totalRange","pixelTime","startDate","endDate","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","newValue","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","Activator","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","properties","_redrawTimer","events","isActive","scrollTop","scrollTopMin","redrawCount","clickToUse","activator","_initAutoResize","component","active","_stopAutoResize","setCustomTime","getCustomTime","getVisibleItems","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","MAX_REDRAWS","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrder","selectable","editable","updateTime","updateGroup","onAdd","onUpdate","onMove","onRemove","onMoving","axis","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","box","foreground","labelSet","_updateUngrouped","backgroundGroup","show","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","markDirty","hide","ii","unselect","select","groupId","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","_removeItem","groupData","groupOptions","oldGroupId","oldGroup","_constructByEndArray","endArray","itemFromTarget","selected","dragLeftItem","dragRightItem","initialX","itemProps","offsetLeft","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","itemSetFromTarget","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","title","getLabelWidth","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","displayed","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","subgroup","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","repositionX","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","force","iMax","collidingItem","jj","collision","newTop","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","deleteButton","template","removeAttribute","dataAttributes","attributes","setAttribute","itemSetHeight","marginLeft","emptyContent","onTop","itemSubgroup","overlay","prevent_default","_onTapOverlay","windowHammer","_hasParent","deactivate","keycharm","escListener","activate","display","unbind","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","lines","majorTexts","minorTexts","minimumStep","lineTop","showMinorLabels","showMajorLabels","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","setFormat","isMajor","prevLine","xPrev","xFirstMajorLabel","first","hasNext","getClassName","_repaintMinorText","getLabelMinor","_repaintMajorText","getLabelMajor","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","majorCharWidth","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","autoScale","FORMAT","minorLabels","majorLabels","setMinimumStep","roundToMinor","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","setScale","newScale","newStep","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","even","today","currentWeek","currentMonth","currentYear","showCurrentTime","currentTimeTimer","custom","showCustomTime","eventParams","drag","linegraph","getLegend","isGroupVisible","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","handleOverlap","catmullRom","parametrization","alpha","dataAxis","icons","alignZeros","customRange","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","svgElements","groupsUsingDefaultStyles","COUNTER","svg","framework","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","removeGroup","addGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","draw","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","barCombinedDataLeft","barCombinedDataRight","getYRange","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","lineOffset","stepPixelsForced","stepPixels","zeroCrossing","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","convertValue","setZeroPosition","linegraphOptions","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","decimals","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","deadSpace","marginRange","amountOfSteps","stepDifference","zeroStepDifference","marginEnd","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","stepIndex","marginStart","majorSteps","minorSteps","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","rounded","exp","cnt","usingDefaultStyle","zeroPosition","Line","Bar","Points","SVGcontainer","path","fillPath","fillHeight","outline","barWidth","bar1Height","bar2Height","icon","_catmullRom","_linear","dFill","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","paddingTop","_determineBrowserMethod","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","physicsTime","runDoubleSpeed","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","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","_setupHierarchicalLayout","zoomExtent","startWithClustering","MixinLoader","browserType","requiresTimeout","_getScriptPath","scripts","getElementsByTagName","_getRange","minY","maxY","minX","maxX","nodeId","boundingBox","_findCenter","animationOptions","initialZoom","disableStart","zoomLevel","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_cleanupPhysicsConfiguration","_recursiveDOMDelete","DOMobject","_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","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","changedData","setProperties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","setValueRange","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","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","getCenterCoordinates","getBoundingBox","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","gNode","defaultIndex","DEFAULT","load","url","brokenUrl","img","Image","onload","onerror","error","imagelist","grouplist","networkConstants","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","labelDimensions","yLine","fx","fy","vx","vy","previousState","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScaleInv","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","attachEdge","detachEdge","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","resize","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawCircularImage","_resizeCircularImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","distanceToBorder","_setForce","_addForce","storeState","isFixed","_drawImageAtPosition","globalAlpha","drawImage","_drawImageLabel","_label","centerX","centerY","_drawRawCircle","circle","clip","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","lineCount","measureText","fillRect","lineJoin","strokeText","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fromId","toId","widthSelected","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_circle","_pointOnCircle","_getViaCoordinates","xVia","yVia","quadraticCurveTo","setLineDash","pattern","lineDashOffset","lineCap","dashedLine","percentage","arrow","_pointOnBezier","_findBorderPosition","distanceToNodes","difference","arrowPos","guidePos","edgeSegmentLength","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","fromBorderDist","fromBorderPoint","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","repositionNodes","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","_restoreNodes","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","clusterToFit","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodes","supportNodeId","gravity","gravityForce","_sector","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_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","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","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"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index d304fc66..0510e11e 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.8.1-SNAPSHOT - * @date 2015-01-09 + * @date 2015-01-13 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -22,18 +22,18 @@ * * 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 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):""},s.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(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),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-"+(d+4)),d+"h"+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"day"+l+" "+c+s(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+s(a)+t(a.month());case"year":var p=a.year();return"year"+p+n(a)+t(p);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,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=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.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;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(57),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._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||"circularImage"===this.options.shape)&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"circularImage":this.draw=this._drawCircularImage,this.resize=this._resizeCircularImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;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._drawImageAtPosition=function(t){if(0!=this.imageObj.width){if(this.clusterSize>1){var e=this.clusterSize>1?10:0;e*=this.networkScaleInv,e=Math.min(.2*this.width,e),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-e,this.top-e,this.width+2*e,this.height+2*e)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height)}},s.prototype._drawImageLabel=function(t){var e;e=0!=this.imageObj.width?this.y+this.height/2:this.y,this._label(t,this.label,this.x,e,void 0,"top")},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawImageAtPosition(t),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeCircularImage=function(t){this._resizeImage(t)},s.prototype._drawCircularImage=function(t){this._resizeCircularImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.left+this.width/2,i=this.top+this.height/2,s=Math.abs(this.height/2);this._drawRawCircle(t,e,i,s),t.save(),t.circle(this.x,this.y,s),t.stroke(),t.clip(),this._drawImageAtPosition(t),t.restore(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},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._drawRawCircle=function(t,e,i,s){var o=2.5,n=this.options.borderWidth,r=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?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(e,i,s+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o: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,s),t.fill(),t.stroke()},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawRawCircle(t,this.x,this.y,this.options.radius),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},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;if(!(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)+" ",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)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){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;oe-n?(i=t.clone().add(o-1,"months"),s=(e-n)/(n-i)):(i=t.clone().add(o+1,"months"),s=(e-n)/(i-n)),-(o+s)}function f(t,e,i){var s;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(s=t.isPM(i),s&&12>e&&(e+=12),s||12!==e||(e=0),e):e}function g(){}function v(t,e){e!==!1&&F(t),_(this,t),this._d=new Date(+t._d),Si===!1&&(Si=!0,Ce.updateOffset(this),Si=!1)}function y(t){var e=N(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=Ce.localeData(),this._bubble()}function b(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function _(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),Ye.length>0)for(i in Ye)s=Ye[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function x(t){return 0>t?Math.ceil(t):Math.floor(t)}function w(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&I(t[s])!==I(e[s]))&&r++;return r+n}function k(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=gi[t]||vi[e]||e}return t}function N(t){var e,i,s={};for(i in t)a(t,i)&&(e=k(i),e&&(s[e]=t[i]));return s}function L(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}Ce[t]=function(s,o){var r,a,h=Ce._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=Ce().utc().set(i,t);return h.call(Ce._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function I(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function z(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function P(t,e,i){return me(Ce([t,11,31+e-i]),e,i).week}function A(t){return R(t)?366:365}function R(t){return t%4===0&&t%100!==0||t%400===0}function F(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[ze]<0||t._a[ze]>11?ze:t._a[Pe]<1||t._a[Pe]>z(t._a[Ie],t._a[ze])?Pe:t._a[Ae]<0||t._a[Ae]>24||24===t._a[Ae]&&(0!==t._a[Re]||0!==t._a[Fe]||0!==t._a[He])?Ae:t._a[Re]<0||t._a[Re]>59?Re:t._a[Fe]<0||t._a[Fe]>59?Fe:t._a[He]<0||t._a[He]>999?He:-1,t._pf._overflowDayOfYear&&(Ie>e||e>Pe)&&(e=Pe),t._pf.overflow=e)}function H(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 B(t){return t?t.toLowerCase().replace("_","-"):t}function Y(t){for(var e,i,s,o,n=0;n0;){if(s=W(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&E(o,i,!0)>=e-1)break;e--}n++}return null}function W(t){var e=null;if(!Be[t]&&We)try{e=Ce.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Ce.locale(e)}catch(i){}return Be[t]}function G(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(Ce.isMoment(t)||O(t)?+t:+Ce(t))-+i,i._d.setTime(+i._d+s),Ce.updateOffset(i,!1),i):Ce(t).local()}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function V(t){var e,i,s=t.match(Ue);for(e=0,i=s.length;i>e;e++)s[e]=wi[s[e]]?wi[s[e]]:j(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 U(t,e){return t.isValid()?(e=X(e,t.localeData()),yi[e]||(yi[e]=V(e)),yi[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Xe.lastIndex=0;s>=0&&Xe.test(t);)t=t.replace(Xe,i),Xe.lastIndex=0,s-=1;return t}function q(t,e){var i,s=e._strict;switch(t){case"Q":return oi;case"DDDD":return ri;case"YYYY":case"GGGG":case"gggg":return s?ai:Qe;case"Y":case"G":case"g":return di;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?hi:Ke;case"S":if(s)return oi;case"SS":if(s)return ni;case"SSS":if(s)return ri;case"DDD":return Ze;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Je;case"a":case"A":return e._locale._meridiemParse;case"x":return ii;case"X":return si;case"Z":case"ZZ":return ti;case"T":return ei;case"SSSS":return $e;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?ni:qe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return qe;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(se(ie(t.replace("\\","")),"i"))}}function Z(t){t=t||"";var e=t.match(ti)||[],i=e[e.length-1]||[],s=(i+"").match(mi)||["-",0,0],o=+(60*s[1])+I(s[2]);return"+"===s[0]?o:-o}function Q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[ze]=3*(I(e)-1));break;case"M":case"MM":null!=e&&(o[ze]=I(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[ze]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Pe]=I(e));break;case"Do":null!=e&&(o[Pe]=I(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=I(e));break;case"YY":o[Ie]=Ce.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Ie]=I(e);break;case"a":case"A":i._meridiem=e;break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[Ae]=I(e);break;case"m":case"mm":o[Re]=I(e);break;case"s":case"ss":o[Fe]=I(e);break;case"S":case"SS":case"SSS":case"SSSS":o[He]=I(1e3*("0."+e));break;case"x":i._d=new Date(I(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=Z(e);break;case"dd":case"ddd":case"dddd":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]=I(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=Ce.parseTwoDigitYear(e)}}function K(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[Ie],me(Ce(),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[Ie],me(Ce(),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=fe(i,s,o,a,n),t._a[Ie]=h.year,t._dayOfYear=h.dayOfYear}function $(t){var e,i,s,o,n=[];if(!t._d){for(s=te(t),t._w&&null==t._a[Pe]&&null==t._a[ze]&&K(t),t._dayOfYear&&(o=r(t._a[Ie],s[Ie]),t._dayOfYear>A(o)&&(t._pf._overflowDayOfYear=!0),i=le(o,0,t._dayOfYear),t._a[ze]=i.getUTCMonth(),t._a[Pe]=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[Ae]&&0===t._a[Re]&&0===t._a[Fe]&&0===t._a[He]&&(t._nextDay=!0,t._a[Ae]=0),t._d=(t._useUTC?le:de).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Ae]=24)}}function J(t){var e;t._d||(e=N(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],$(t))}function te(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function ee(t){if(t._f===Ce.ISO_8601)return void ne(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=X(t._f,t._locale).match(Ue)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),wi[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[Ae]<=12&&(t._pf.bigHour=n),t._a[Ae]=f(t._locale,t._a[Ae],t._meridiem),$(t),F(t)}function ie(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function se(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function oe(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));b(t,i||e)}function ne(t){var e,i,s=t._i,o=li.exec(s);if(o){for(t._pf.iso=!0,e=0,i=pi.length;i>e;e++)if(pi[e][1].exec(s)){t._f=pi[e][0]+(o[6]||" ");break}for(e=0,i=ui.length;i>e;e++)if(ui[e][1].exec(s)){t._f+=ui[e][0];break}s.match(ti)&&(t._f+="Z"),ee(t)}else t._isValid=!1}function re(t){ne(t),t._isValid===!1&&(delete t._isValid,Ce.createFromInputFallback(t))}function ae(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function le(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function ce(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function pe(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ue(t,e,i){var s=Ce.duration(t).abs(),o=Ne(s.as("s")),n=Ne(s.as("m")),r=Ne(s.as("h")),a=Ne(s.as("d")),h=Ne(s.as("M")),d=Ne(s.as("y")),l=o0,l[4]=i,pe.apply({},l)}function me(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=Ce(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function fe(t,e,i,s,o){var n,r,a=le(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:A(t-1)+r}}function ge(t){var e,i=t._i,s=t._f;return t._locale=t._locale||Ce.localeData(t._l),null===i||s===n&&""===i?Ce.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),Ce.isMoment(i)?new v(i,!0):(s?T(s)?oe(t):ee(t):he(t),e=new v(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function ve(t,e){var i,s;if(1===e.length&&T(e[0])&&(e=e[0]),!e.length)return Ce();for(i=e[0],s=1;s=0?"+":"-";return e+w(Math.abs(t),6)},gg:function(){return w(this.weekYear()%100,2)},gggg:function(){return w(this.weekYear(),4)},ggggg:function(){return w(this.weekYear(),5)},GG:function(){return w(this.isoWeekYear()%100,2)},GGGG:function(){return w(this.isoWeekYear(),4)},GGGGG:function(){return w(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return I(this.milliseconds()/100)},SS:function(){return w(I(this.milliseconds()/10),2)},SSS:function(){return w(this.milliseconds(),3)},SSSS:function(){return w(this.milliseconds(),3)},Z:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(I(t/60),2)+":"+w(I(t)%60,2)},ZZ:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(I(t/60),2)+w(I(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Di={},Mi=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],Si=!1;_i.length;)Oe=_i.pop(),wi[Oe+"o"]=u(wi[Oe],Oe); -for(;xi.length;)Oe=xi.pop(),wi[Oe+Oe]=p(wi[Oe],2);wi.DDDD=p(wi.DDD,3),b(g.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var s,o,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;12>s;s++){if(o=Ce.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=Ce([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 me(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),Ce=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(),ge(o)},Ce.suppressDeprecationWarnings=!1,Ce.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":""))}),Ce.min=function(){var t=[].slice.call(arguments,0);return ve("isBefore",t)},Ce.max=function(){var t=[].slice.call(arguments,0);return ve("isAfter",t)},Ce.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(),ge(o).utc()},Ce.unix=function(t){return Ce(1e3*t)},Ce.duration=function(t,e){var i,s,o,n,r=t,h=null;return Ce.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=je.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:I(h[Pe])*i,h:I(h[Ae])*i,m:I(h[Re])*i,s:I(h[Fe])*i,ms:I(h[He])*i}):(h=Ve.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])}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=M(Ce(r.from),Ce(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new y(r),Ce.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},Ce.version=Ee,Ce.defaultFormat=ci,Ce.ISO_8601=function(){},Ce.momentProperties=Ye,Ce.updateOffset=function(){},Ce.relativeTimeThreshold=function(t,e){return bi[t]===n?!1:e===n?bi[t]:(bi[t]=e,!0)},Ce.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return Ce.locale(t,e)}),Ce.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?Ce.defineLocale(t,e):Ce.localeData(t),i&&(Ce.duration._locale=Ce._locale=i)),Ce._locale._abbr},Ce.defineLocale=function(t,e){return null!==e?(e.abbr=t,Be[t]||(Be[t]=new g),Be[t].set(e),Ce.locale(t),Be[t]):(delete Be[t],null)},Ce.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return Ce.localeData(t)}),Ce.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ce._locale;if(!T(t)){if(e=W(t))return e;t=[t]}return Y(t)},Ce.isMoment=function(t){return t instanceof v||null!=t&&a(t,"_isAMomentObject")},Ce.isDuration=function(t){return t instanceof y};for(Oe=Mi.length-1;Oe>=0;--Oe)L(Mi[Oe]);Ce.normalizeUnits=function(t){return k(t)},Ce.invalid=function(t){var e=Ce.utc(0/0);return null!=t?b(e._pf,t):e._pf.userInvalidated=!0,e},Ce.parseZone=function(){return Ce.apply(null,arguments).parseZone()},Ce.parseTwoDigitYear=function(t){return I(t)+(I(t)>68?1900:2e3)},Ce.isDate=O,b(Ce.fn=v.prototype,{clone:function(){return Ce(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=Ce(this).utc();return 00:!1},parsingFlags:function(){return b({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.utcOffset(0,t)},local:function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(t){var e=U(this,t||Ce.defaultFormat);return this.localeData().postformat(e)},add:S(1,"add"),subtract:S(-1,"subtract"),diff:function(t,e,i){var s,o,n=G(t,this),r=6e4*(n.utcOffset()-this.utcOffset());return e=k(e),"year"===e||"month"===e||"quarter"===e?(o=m(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:x(o)},from:function(t,e){return Ce.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(Ce(),t)},calendar:function(t){var e=t||Ce(),i=G(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,Ce(e)))},isLeapYear:function(){return R(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ce(t,this.localeData()),this.add(t-e,"d")):e},month:xe("Month",!0),startOf:function(t){switch(t=k(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t?this.weekday(0):"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(t){return t=k(t),t===n||"millisecond"===t?this:this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms")},isAfter:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+this>+t):(i=Ce.isMoment(t)?+t:+Ce(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+t>+this):(i=Ce.isMoment(t)?+t:+Ce(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=Ce.apply(null,arguments),t>this?this:t}),zone:l("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),utcOffset:function(t,e){var i,s=this._offset||0;return null!=t?("string"==typeof t&&(t=Z(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateUtcOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),s!==t&&(!e||this._changeInProgress?C(this,Ce.duration(t-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,Ce.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?s:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Z(this._i)),this},hasAlignedHourOffset:function(t){return t=t?Ce(t).utcOffset():0,(this.utcOffset()-t)%60===0},daysInMonth:function(){return z(this.year(),this.month())},dayOfYear:function(t){var e=Ne((Ce(this).startOf("day")-Ce(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=me(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=me(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=me(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 P(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return P(this.year(),t.dow,t.doy)},get:function(t){return t=k(t),this[t]()},set:function(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else t=k(t),"function"==typeof this[t]&&this[t](e);return this},locale:function(t){var e;return t===n?this._locale._abbr:(e=Ce.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),Ce.fn.millisecond=Ce.fn.milliseconds=xe("Milliseconds",!1),Ce.fn.second=Ce.fn.seconds=xe("Seconds",!1),Ce.fn.minute=Ce.fn.minutes=xe("Minutes",!1),Ce.fn.hour=Ce.fn.hours=xe("Hours",!0),Ce.fn.date=xe("Date",!0),Ce.fn.dates=l("dates accessor is deprecated. Use date instead.",xe("Date",!0)),Ce.fn.year=xe("FullYear",!0),Ce.fn.years=l("years accessor is deprecated. Use year instead.",xe("FullYear",!0)),Ce.fn.days=Ce.fn.day,Ce.fn.months=Ce.fn.month,Ce.fn.weeks=Ce.fn.week,Ce.fn.isoWeeks=Ce.fn.isoWeek,Ce.fn.quarters=Ce.fn.quarter,Ce.fn.toJSON=Ce.fn.toISOString,Ce.fn.isUTC=Ce.fn.isUtc,b(Ce.duration.fn=y.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=x(s/1e3),r.seconds=t%60,e=x(t/60),r.minutes=e%60,i=x(e/60),r.hours=i%24,o+=x(i/24),a=x(we(o)),o-=x(De(a)),n+=x(o/30),o%=30,a+=x(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 x(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*I(this._months/12)},humanize:function(t){var e=ue(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=Ce.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=Ce.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=k(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=k(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*we(e),"month"===t?i:i/12;switch(e=this._days+Math.round(De(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:Ce.fn.lang,locale:Ce.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},toJSON:function(){return this.toISOString()}}),Ce.duration.fn.toString=Ce.duration.fn.toISOString;for(Oe in fi)a(fi,Oe)&&Me(Oe.toLowerCase());Ce.duration.fn.asMilliseconds=function(){return this.as("ms")},Ce.duration.fn.asSeconds=function(){return this.as("s")},Ce.duration.fn.asMinutes=function(){return this.as("m")},Ce.duration.fn.asHours=function(){return this.as("h")},Ce.duration.fn.asDays=function(){return this.as("d")},Ce.duration.fn.asWeeks=function(){return this.as("weeks")},Ce.duration.fn.asMonths=function(){return this.as("M")},Ce.duration.fn.asYears=function(){return this.as("y")},Ce.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===I(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),We?o.exports=Ce:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(ke.moment=Te),Ce}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Se(!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){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/=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}}])}); +"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(6),e.DataSet=i(7),e.DataView=i(9),e.Queue=i(8),e.Graph3d=i(10),e.graph3d={Camera:i(14),Filter:i(15),Point2d:i(13),Point3d:i(12),Slider:i(16),StepNumber:i(17)},e.Timeline=i(18),e.Graph2d=i(42),e.timeline={DateUtil:i(24),DataStep:i(45),Range:i(21),stack:i(28),TimeStep:i(38),components:{items:{Item:i(30),BackgroundItem:i(34),BoxItem:i(32),PointItem:i(33),RangeItem:i(29)},Component:i(23),CurrentTime:i(39),CustomTime:i(41),DataAxis:i(44),GraphGroup:i(46),Group:i(27),BackgroundGroup:i(31),ItemSet:i(26),Legend:i(50),LineGraph:i(43),TimeAxis:i(37)}},e.Network=i(51),e.network={Edge:i(57),Groups:i(54),Images:i(55),Node:i(56),Popup:i(58),dotparser:i(52),gephiParser:i(53)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(2),e.hammer=i(19)},function(module,exports,__webpack_require__){var moment=__webpack_require__(2);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,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},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 Le.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){Ce.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function l(t,e){var i=!0;return b(function(){return i&&(d(t),i=!1),e.apply(this,arguments)},e)}function c(t,e){Mi[t]||(d(e),Mi[t]=!0)}function p(t,e){return function(i){return w(t.call(this,i),e)}}function u(t,e){return function(i){return this.localeData().ordinal(t.call(this,i),e)}}function m(t,e){var i,s,o=12*(e.year()-t.year())+(e.month()-t.month()),n=t.clone().add(o,"months");return 0>e-n?(i=t.clone().add(o-1,"months"),s=(e-n)/(n-i)):(i=t.clone().add(o+1,"months"),s=(e-n)/(i-n)),-(o+s)}function f(t,e,i){var s;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(s=t.isPM(i),s&&12>e&&(e+=12),s||12!==e||(e=0),e):e}function g(){}function v(t,e){e!==!1&&F(t),_(this,t),this._d=new Date(+t._d),Si===!1&&(Si=!0,Ce.updateOffset(this),Si=!1)}function y(t){var e=N(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=Ce.localeData(),this._bubble()}function b(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function _(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),Ye.length>0)for(i in Ye)s=Ye[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function x(t){return 0>t?Math.ceil(t):Math.floor(t)}function w(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&I(t[s])!==I(e[s]))&&r++;return r+n}function k(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=gi[t]||vi[e]||e}return t}function N(t){var e,i,s={};for(i in t)a(t,i)&&(e=k(i),e&&(s[e]=t[i]));return s}function L(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}Ce[t]=function(s,o){var r,a,h=Ce._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=Ce().utc().set(i,t);return h.call(Ce._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function I(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function z(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function P(t,e,i){return me(Ce([t,11,31+e-i]),e,i).week}function A(t){return R(t)?366:365}function R(t){return t%4===0&&t%100!==0||t%400===0}function F(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[ze]<0||t._a[ze]>11?ze:t._a[Pe]<1||t._a[Pe]>z(t._a[Ie],t._a[ze])?Pe:t._a[Ae]<0||t._a[Ae]>24||24===t._a[Ae]&&(0!==t._a[Re]||0!==t._a[Fe]||0!==t._a[He])?Ae:t._a[Re]<0||t._a[Re]>59?Re:t._a[Fe]<0||t._a[Fe]>59?Fe:t._a[He]<0||t._a[He]>999?He:-1,t._pf._overflowDayOfYear&&(Ie>e||e>Pe)&&(e=Pe),t._pf.overflow=e)}function H(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 B(t){return t?t.toLowerCase().replace("_","-"):t}function Y(t){for(var e,i,s,o,n=0;n0;){if(s=W(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&E(o,i,!0)>=e-1)break;e--}n++}return null}function W(t){var e=null;if(!Be[t]&&We)try{e=Ce.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Ce.locale(e)}catch(i){}return Be[t]}function G(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(Ce.isMoment(t)||O(t)?+t:+Ce(t))-+i,i._d.setTime(+i._d+s),Ce.updateOffset(i,!1),i):Ce(t).local()}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function U(t){var e,i,s=t.match(Ve);for(e=0,i=s.length;i>e;e++)s[e]=wi[s[e]]?wi[s[e]]:j(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 V(t,e){return t.isValid()?(e=X(e,t.localeData()),yi[e]||(yi[e]=U(e)),yi[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Xe.lastIndex=0;s>=0&&Xe.test(t);)t=t.replace(Xe,i),Xe.lastIndex=0,s-=1;return t}function q(t,e){var i,s=e._strict;switch(t){case"Q":return oi;case"DDDD":return ri;case"YYYY":case"GGGG":case"gggg":return s?ai:Qe;case"Y":case"G":case"g":return di;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?hi:Ke;case"S":if(s)return oi;case"SS":if(s)return ni;case"SSS":if(s)return ri;case"DDD":return Ze;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Je;case"a":case"A":return e._locale._meridiemParse;case"x":return ii;case"X":return si;case"Z":case"ZZ":return ti;case"T":return ei;case"SSSS":return $e;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?ni:qe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return qe;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(se(ie(t.replace("\\","")),"i"))}}function Z(t){t=t||"";var e=t.match(ti)||[],i=e[e.length-1]||[],s=(i+"").match(mi)||["-",0,0],o=+(60*s[1])+I(s[2]);return"+"===s[0]?o:-o}function Q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[ze]=3*(I(e)-1));break;case"M":case"MM":null!=e&&(o[ze]=I(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[ze]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Pe]=I(e));break;case"Do":null!=e&&(o[Pe]=I(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=I(e));break;case"YY":o[Ie]=Ce.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Ie]=I(e);break;case"a":case"A":i._meridiem=e;break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[Ae]=I(e);break;case"m":case"mm":o[Re]=I(e);break;case"s":case"ss":o[Fe]=I(e);break;case"S":case"SS":case"SSS":case"SSSS":o[He]=I(1e3*("0."+e));break;case"x":i._d=new Date(I(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=Z(e);break;case"dd":case"ddd":case"dddd":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]=I(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=Ce.parseTwoDigitYear(e)}}function K(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[Ie],me(Ce(),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[Ie],me(Ce(),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=fe(i,s,o,a,n),t._a[Ie]=h.year,t._dayOfYear=h.dayOfYear}function $(t){var e,i,s,o,n=[];if(!t._d){for(s=te(t),t._w&&null==t._a[Pe]&&null==t._a[ze]&&K(t),t._dayOfYear&&(o=r(t._a[Ie],s[Ie]),t._dayOfYear>A(o)&&(t._pf._overflowDayOfYear=!0),i=le(o,0,t._dayOfYear),t._a[ze]=i.getUTCMonth(),t._a[Pe]=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[Ae]&&0===t._a[Re]&&0===t._a[Fe]&&0===t._a[He]&&(t._nextDay=!0,t._a[Ae]=0),t._d=(t._useUTC?le:de).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Ae]=24)}}function J(t){var e;t._d||(e=N(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],$(t))}function te(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function ee(t){if(t._f===Ce.ISO_8601)return void ne(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=X(t._f,t._locale).match(Ve)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),wi[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[Ae]<=12&&(t._pf.bigHour=n),t._a[Ae]=f(t._locale,t._a[Ae],t._meridiem),$(t),F(t)}function ie(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function se(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function oe(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));b(t,i||e)}function ne(t){var e,i,s=t._i,o=li.exec(s);if(o){for(t._pf.iso=!0,e=0,i=pi.length;i>e;e++)if(pi[e][1].exec(s)){t._f=pi[e][0]+(o[6]||" ");break}for(e=0,i=ui.length;i>e;e++)if(ui[e][1].exec(s)){t._f+=ui[e][0];break}s.match(ti)&&(t._f+="Z"),ee(t)}else t._isValid=!1}function re(t){ne(t),t._isValid===!1&&(delete t._isValid,Ce.createFromInputFallback(t))}function ae(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function le(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function ce(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function pe(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ue(t,e,i){var s=Ce.duration(t).abs(),o=Ne(s.as("s")),n=Ne(s.as("m")),r=Ne(s.as("h")),a=Ne(s.as("d")),h=Ne(s.as("M")),d=Ne(s.as("y")),l=o0,l[4]=i,pe.apply({},l)}function me(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=Ce(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function fe(t,e,i,s,o){var n,r,a=le(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:A(t-1)+r}}function ge(t){var e,i=t._i,s=t._f;return t._locale=t._locale||Ce.localeData(t._l),null===i||s===n&&""===i?Ce.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),Ce.isMoment(i)?new v(i,!0):(s?T(s)?oe(t):ee(t):he(t),e=new v(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function ve(t,e){var i,s;if(1===e.length&&T(e[0])&&(e=e[0]),!e.length)return Ce();for(i=e[0],s=1;s=0?"+":"-";return e+w(Math.abs(t),6)},gg:function(){return w(this.weekYear()%100,2)},gggg:function(){return w(this.weekYear(),4)},ggggg:function(){return w(this.weekYear(),5)},GG:function(){return w(this.isoWeekYear()%100,2)},GGGG:function(){return w(this.isoWeekYear(),4)},GGGGG:function(){return w(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return I(this.milliseconds()/100)},SS:function(){return w(I(this.milliseconds()/10),2)},SSS:function(){return w(this.milliseconds(),3)},SSSS:function(){return w(this.milliseconds(),3)},Z:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(I(t/60),2)+":"+w(I(t)%60,2)},ZZ:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(I(t/60),2)+w(I(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Mi={},Di=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],Si=!1;_i.length;)Oe=_i.pop(),wi[Oe+"o"]=u(wi[Oe],Oe);for(;xi.length;)Oe=xi.pop(),wi[Oe+Oe]=p(wi[Oe],2);wi.DDDD=p(wi.DDD,3),b(g.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var s,o,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;12>s;s++){if(o=Ce.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=Ce([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 me(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),Ce=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(),ge(o)},Ce.suppressDeprecationWarnings=!1,Ce.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":""))}),Ce.min=function(){var t=[].slice.call(arguments,0);return ve("isBefore",t)},Ce.max=function(){var t=[].slice.call(arguments,0);return ve("isAfter",t)},Ce.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(),ge(o).utc()},Ce.unix=function(t){return Ce(1e3*t)},Ce.duration=function(t,e){var i,s,o,n,r=t,h=null;return Ce.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=je.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:I(h[Pe])*i,h:I(h[Ae])*i,m:I(h[Re])*i,s:I(h[Fe])*i,ms:I(h[He])*i}):(h=Ue.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])}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=D(Ce(r.from),Ce(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new y(r),Ce.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},Ce.version=Ee,Ce.defaultFormat=ci,Ce.ISO_8601=function(){},Ce.momentProperties=Ye,Ce.updateOffset=function(){},Ce.relativeTimeThreshold=function(t,e){return bi[t]===n?!1:e===n?bi[t]:(bi[t]=e,!0)},Ce.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return Ce.locale(t,e)}),Ce.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?Ce.defineLocale(t,e):Ce.localeData(t),i&&(Ce.duration._locale=Ce._locale=i)),Ce._locale._abbr},Ce.defineLocale=function(t,e){return null!==e?(e.abbr=t,Be[t]||(Be[t]=new g),Be[t].set(e),Ce.locale(t),Be[t]):(delete Be[t],null)},Ce.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return Ce.localeData(t)}),Ce.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ce._locale;if(!T(t)){if(e=W(t))return e;t=[t]}return Y(t)},Ce.isMoment=function(t){return t instanceof v||null!=t&&a(t,"_isAMomentObject")},Ce.isDuration=function(t){return t instanceof y};for(Oe=Di.length-1;Oe>=0;--Oe)L(Di[Oe]);Ce.normalizeUnits=function(t){return k(t)},Ce.invalid=function(t){var e=Ce.utc(0/0);return null!=t?b(e._pf,t):e._pf.userInvalidated=!0,e},Ce.parseZone=function(){return Ce.apply(null,arguments).parseZone()},Ce.parseTwoDigitYear=function(t){return I(t)+(I(t)>68?1900:2e3)},Ce.isDate=O,b(Ce.fn=v.prototype,{clone:function(){return Ce(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=Ce(this).utc();return 00:!1},parsingFlags:function(){return b({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.utcOffset(0,t)},local:function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(t){var e=V(this,t||Ce.defaultFormat);return this.localeData().postformat(e)},add:S(1,"add"),subtract:S(-1,"subtract"),diff:function(t,e,i){var s,o,n=G(t,this),r=6e4*(n.utcOffset()-this.utcOffset());return e=k(e),"year"===e||"month"===e||"quarter"===e?(o=m(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:x(o)},from:function(t,e){return Ce.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(Ce(),t)},calendar:function(t){var e=t||Ce(),i=G(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,Ce(e)))},isLeapYear:function(){return R(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ce(t,this.localeData()),this.add(t-e,"d")):e},month:xe("Month",!0),startOf:function(t){switch(t=k(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t?this.weekday(0):"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(t){return t=k(t),t===n||"millisecond"===t?this:this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms")},isAfter:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+this>+t):(i=Ce.isMoment(t)?+t:+Ce(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+t>+this):(i=Ce.isMoment(t)?+t:+Ce(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=Ce.apply(null,arguments),t>this?this:t}),zone:l("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),utcOffset:function(t,e){var i,s=this._offset||0;return null!=t?("string"==typeof t&&(t=Z(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateUtcOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),s!==t&&(!e||this._changeInProgress?C(this,Ce.duration(t-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,Ce.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?s:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Z(this._i)),this},hasAlignedHourOffset:function(t){return t=t?Ce(t).utcOffset():0,(this.utcOffset()-t)%60===0},daysInMonth:function(){return z(this.year(),this.month())},dayOfYear:function(t){var e=Ne((Ce(this).startOf("day")-Ce(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=me(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=me(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=me(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 P(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return P(this.year(),t.dow,t.doy)},get:function(t){return t=k(t),this[t]()},set:function(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else t=k(t),"function"==typeof this[t]&&this[t](e);return this},locale:function(t){var e;return t===n?this._locale._abbr:(e=Ce.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),Ce.fn.millisecond=Ce.fn.milliseconds=xe("Milliseconds",!1),Ce.fn.second=Ce.fn.seconds=xe("Seconds",!1),Ce.fn.minute=Ce.fn.minutes=xe("Minutes",!1),Ce.fn.hour=Ce.fn.hours=xe("Hours",!0),Ce.fn.date=xe("Date",!0),Ce.fn.dates=l("dates accessor is deprecated. Use date instead.",xe("Date",!0)),Ce.fn.year=xe("FullYear",!0),Ce.fn.years=l("years accessor is deprecated. Use year instead.",xe("FullYear",!0)),Ce.fn.days=Ce.fn.day,Ce.fn.months=Ce.fn.month,Ce.fn.weeks=Ce.fn.week,Ce.fn.isoWeeks=Ce.fn.isoWeek,Ce.fn.quarters=Ce.fn.quarter,Ce.fn.toJSON=Ce.fn.toISOString,Ce.fn.isUTC=Ce.fn.isUtc,b(Ce.duration.fn=y.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=x(s/1e3),r.seconds=t%60,e=x(t/60),r.minutes=e%60,i=x(e/60),r.hours=i%24,o+=x(i/24),a=x(we(o)),o-=x(Me(a)),n+=x(o/30),o%=30,a+=x(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 x(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*I(this._months/12)},humanize:function(t){var e=ue(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=Ce.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=Ce.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=k(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=k(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*we(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Me(this._months/12)),t){case"week":return e/7+this._milliseconds/6048e5;case"day":return e+this._milliseconds/864e5;case"hour":return 24*e+this._milliseconds/36e5;case"minute":return 24*e*60+this._milliseconds/6e4;case"second":return 24*e*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+t)}},lang:Ce.fn.lang,locale:Ce.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},toJSON:function(){return this.toISOString()}}),Ce.duration.fn.toString=Ce.duration.fn.toISOString;for(Oe in fi)a(fi,Oe)&&De(Oe.toLowerCase());Ce.duration.fn.asMilliseconds=function(){return this.as("ms")},Ce.duration.fn.asSeconds=function(){return this.as("s")},Ce.duration.fn.asMinutes=function(){return this.as("m")},Ce.duration.fn.asHours=function(){return this.as("h")},Ce.duration.fn.asDays=function(){return this.as("d")},Ce.duration.fn.asWeeks=function(){return this.as("weeks")},Ce.duration.fn.asMonths=function(){return this.as("M")},Ce.duration.fn.asYears=function(){return this.as("y")},Ce.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===I(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),We?o.exports=Ce:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(ke.moment=Te),Ce}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Se(!0))}).call(this)}).call(e,function(){return this}(),i(5)(t))},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=4},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),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(8);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){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){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(7);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,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(11),a=i(7),h=i(9),d=i(1),l=i(12),c=i(13),p=i(14),u=i(15),m=i(16),f=i(17);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){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){function e(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}e.subtract=function(t,i){var s=new e;return s.x=t.x-i.x,s.y=t.y-i.y,s.z=t.z-i.z,s},e.add=function(t,i){var s=new e;return s.x=t.x+i.x,s.y=t.y+i.y,s.z=t.z+i.z,s},e.avg=function(t,i){return new e((t.x+i.x)/2,(t.y+i.y)/2,(t.z+i.z)/2)},e.crossProduct=function(t,i){var s=new e;return s.x=t.y*i.z-t.z*i.y,s.y=t.z*i.x-t.x*i.z,s.z=t.x*i.y-t.y*i.x,s},e.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=e},function(t){function e(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=e},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(12);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(9);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(11),i(19),i(1)),n=i(7),r=i(9),a=i(21),h=i(25),d=i(37),l=i(39),c=i(41),p=i(26);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){t.exports="undefined"!=typeof window?window.Hammer||i(20):function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var s;!function(o,n){function r(){a.READY||(w.determineEventTypes(),x.each(a.gestures,function(t){D.register(t)}),w.onTouch(a.DOCUMENT,v,D.detect),w.onTouch(a.DOCUMENT,y,D.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(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,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(22),h=i(2),d=i(23),l=i(24);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,s){s!==!0&&(s=!1);var o=void 0!=t?r.convert(t,"Date").valueOf():null,n=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,d=this.end,c="number"==typeof i?i:500,p=(new Date).valueOf(),u=!1,m=function(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-p,i=e>c,g=i||null===o?o:r.easeInOutQuad(e,h,o,c),v=i||null===n?n:r.easeInOutQuad(e,d,n,c);f=a._applyRange(g,v),l.updateHiddenDates(a.body,a.options.hiddenDates),u=u||f,f&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:s}),i?u&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:s}):a.animateTimer=setTimeout(m,20)}};return m()}var f=this._applyRange(o,n);if(l.updateHiddenDates(this.body,this.options.hiddenDates),f){var g={start:new Date(this.start),end:new Date(this.end),byUser:s};this.body.emitter.emit("rangechange",g),this.body.emitter.emit("rangechanged",g)}},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),byUser:!0})}},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),byUser:!0}))},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,!1,!0),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,!1,!0),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,i){var s=i(19);e.fakeGesture=function(t,e){var i=null,o=s.event.getTouchList(e,i),n=s.event.collectEventData(this,i,o,e);return isNaN(n.center.pageX)&&(n.center.pageX=e.pageX),isNaN(n.center.pageY)&&(n.center.pageY=e.pageY),n}},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){var s=i(2);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,e,i){function s(){}var o=i(11),n=i(19),r=i(1),a=(i(7),i(9),i(21),i(26),i(35)),h=i(24);o(s.prototype),s.prototype._create=function(t){this.dom={},this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis timeline root",this.dom.background.className="vispanel background",this.dom.backgroundVertical.className="vispanel background vertical",this.dom.backgroundHorizontal.className="vispanel background horizontal",this.dom.centerContainer.className="vispanel center",this.dom.leftContainer.className="vispanel left",this.dom.rightContainer.className="vispanel right",this.dom.top.className="vispanel top",this.dom.bottom.className="vispanel bottom",this.dom.left.className="content",this.dom.center.className="content",this.dom.right.className="content",this.dom.shadowTop.className="shadow top",this.dom.shadowBottom.className="shadow bottom",this.dom.shadowTopLeft.className="shadow top",this.dom.shadowBottomLeft.className="shadow bottom",this.dom.shadowTopRight.className="shadow top",this.dom.shadowBottomRight.className="shadow bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",this.redraw.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pinch",this._onPinch.bind(this)),this.on("dragstart",this._onDragStart.bind(this)),this.on("drag",this._onDrag.bind(this));var e=this;this.on("change",function(t){t&&1==t.queue?e._redrawTimer||(e._redrawTimer=setTimeout(function(){e._redrawTimer=null,e.redraw()},0)):e.redraw()}),this.hammer=n(this.dom.root,{preventDefault:!0}),this.listeners={};var i=["touch","pinch","tap","doubletap","hold","dragstart","drag","dragend","mousewheel","DOMMouseScroll"];if(i.forEach(function(t){var i=function(){var i=[t].concat(Array.prototype.slice.call(arguments,0));e.isActive()&&e.emit.apply(e,i)};e.hammer.on(t,i),e.listeners[t]=i}),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.touch={},this.redrawCount=0,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},s.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","orientation","clickToUse","dataAttributes","hiddenDates"];r.selectiveExtend(e,this.options,t),"hiddenDates"in this.options&&h.convertHiddenOptions(this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new a(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),this._initAutoResize()}if(this.components.forEach(function(e){e.setOptions(t)}),t&&t.order)throw new Error("Option order is deprecated. There is no replacement for this feature.");this.redraw()},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.destroy=function(){this.clear(),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){t.destroy()}),this.body=null},s.prototype.setCustomTime=function(t){if(!this.customTime)throw new Error("Cannot get custom time: Custom time bar is not enabled");this.customTime.setCustomTime(t)},s.prototype.getCustomTime=function(){if(!this.customTime)throw new Error("Cannot get custom time: Custom time bar is not enabled");return this.customTime.getCustomTime()},s.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},s.prototype.clear=function(t){(!t||t.items)&&this.setItems(null),(!t||t.groups)&&this.setGroups(null),(!t||t.options)&&(this.components.forEach(function(t){t.setOptions(t.defaultOptions)}),this.setOptions(this.defaultOptions))},s.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animate?t.animate:!0;this.range.setRange(e.start,e.end,i)}},s.prototype._getDataRange=function(){var t=this.getItemRange(),e=t.min,i=t.max;if(null!=e&&null!=i){var s=i.valueOf()-e.valueOf();0>=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;if(!(this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;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){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var s=this;this.itemSet.body.emitter.on("checkRangedItems",function(){s.checkRangedItems=!0}),this._create(),this.setData(e)}{var o=i(1),n=i(28);i(29)}s.prototype._create=function(){var t=document.createElement("div");t.className="vlabel",this.dom.label=t;var e=document.createElement("div");e.className="inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="group",this.dom.axis=document.createElement("div"),this.dom.axis.className="group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},s.prototype.setData=function(t){var e=t&&t.content;e instanceof Element?this.dom.inner.appendChild(e):this.dom.inner.innerHTML=void 0!==e&&null!==e?e:this.groupId||"",this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?o.removeClassName(this.dom.inner,"hidden"):o.addClassName(this.dom.inner,"hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(o.removeClassName(this.dom.label,this.className),o.removeClassName(this.dom.foreground,this.className),o.removeClassName(this.dom.background,this.className),o.removeClassName(this.dom.axis,this.className)),o.addClassName(this.dom.label,i),o.addClassName(this.dom.foreground,i),o.addClassName(this.dom.background,i),o.addClassName(this.dom.axis,i),this.className=i),this.style&&(o.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(o.addCssText(this.dom.label,t.style),this.style=t.style)},s.prototype.getLabelWidth=function(){return this.props.label.width},s.prototype.redraw=function(t,e,i){var s=!1;this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t);var r=this.dom.marker.clientHeight;r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,o.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),this.itemSet.options.stack?n.stack(this.visibleItems,e,i):n.nostack(this.visibleItems,e,this.subgroups);var a=this._calculateHeight(e),h=this.dom.foreground;this.top=h.offsetTop,this.left=h.offsetLeft,this.width=h.offsetWidth,s=o.updateProperty(this,"height",a)||s,s=o.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||s,s=o.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||s,this.dom.background.style.height=a+"px",this.dom.foreground.style.height=a+"px",this.dom.label.style.height=a+"px";for(var d=0,l=this.visibleItems.length;l>d;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;ro;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){if(this.props={content:{width:0}},this.overflow=!1,t){if(void 0==t.start)throw new Error('Property "start" missing in item '+t.id);if(void 0==t.end)throw new Error('Property "end" missing in item '+t.id)}n.call(this,t,e,i)}var o=i(19),n=i(30);s.prototype=new n(null,null,null),s.prototype.baseClassName="item range",s.prototype.isVisible=function(t){return 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){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(19),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;is;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,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(30);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),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){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(36),r=i(11),a=i(19),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,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;oy;)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,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(2),n=i(24),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):""},s.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(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),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-"+(d+4)),d+"h"+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"day"+l+" "+c+s(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+s(a)+t(a.month());case"year":var p=a.year();return"year"+p+n(a)+t(p);default:return""}},t.exports=s},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(23),r=i(2),a=i(40);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){e.en={current:"current",time:"time"},e.en_EN=e.en,e.en_US=e.en,e.nl={custom:"aangepaste",time:"tijd"},e.nl_NL=e.nl,e.nl_BE=e.nl},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(19),n=i(1),r=i(23),a=i(2),h=i(40);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){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(11),i(19),i(1)),n=i(7),r=i(9),a=i(21),h=i(25),d=i(37),l=i(39),c=i(41),p=i(43);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){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,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=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(6),r=i(7),a=i(9),h=i(23),d=i(44),l=i(46),c=i(50),p=i(49),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,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;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;n0&&(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.maxLabelSizen&&(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,i,s){this.id=e;var n=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","catmullRom"];this.options=o.selectiveBridgeObject(n,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=s,this.zeroPosition=0,this.update(t),1==this.usingDefaultStyle&&(this.groupsUsingDefaultStyles[0]+=1),this.itemsData=[],this.visible=void 0===t.visible?!0:t.visible}var o=i(1),n=i(6),r=i(47),a=i(49),h=i(48);s.prototype.setItems=function(t){null!=t?(this.itemsData=t,1==this.options.sort&&this.itemsData.sort(function(t,e){return t.x-e.x})):this.itemsData=[]},s.prototype.setZeroPosition=function(t){this.zeroPosition=t},s.prototype.setOptions=function(t){if(void 0!==t){var e=["sampling","style","sort","yAxisOrientation","barChart"];o.selectiveDeepExtend(e,this.options,t),o.mergeOptions(this.options,t,"catmullRom"),o.mergeOptions(this.options,t,"drawPoints"),o.mergeOptions(this.options,t,"shaded"),t.catmullRom&&"object"==typeof t.catmullRom&&t.catmullRom.parametrization&&("uniform"==t.catmullRom.parametrization?this.options.catmullRom.alpha=0:"chordal"==t.catmullRom.parametrization?this.options.catmullRom.alpha=1:(this.options.catmullRom.parametrization="centripetal",this.options.catmullRom.alpha=.5))}"line"==this.options.style?this.type=new r(this.id,this.options):"bar"==this.options.style?this.type=new a(this.id,this.options):"points"==this.options.style&&(this.type=new h(this.id,this.options))},s.prototype.update=function(t){this.group=t,this.content=t.content||"graph",this.className=t.className||this.className||"graphGroup"+this.groupsUsingDefaultStyles[0]%10,this.visible=void 0===t.visible?!0:t.visible,this.style=t.style,this.setOptions(t.options)},s.prototype.drawIcon=function(t,e,i,s,o,r){var a,h,d=.5*r,l=n.getSVGElement("rect",i,s);if(l.setAttributeNS(null,"x",t),l.setAttributeNS(null,"y",e-d),l.setAttributeNS(null,"width",o),l.setAttributeNS(null,"height",2*d),l.setAttributeNS(null,"class","outline"),"line"==this.options.style)a=n.getSVGElement("path",i,s),a.setAttributeNS(null,"class",this.className),void 0!==this.style&&a.setAttributeNS(null,"style",this.style),a.setAttributeNS(null,"d","M"+t+","+e+" L"+(t+o)+","+e),1==this.options.shaded.enabled&&(h=n.getSVGElement("path",i,s),"top"==this.options.shaded.orientation?h.setAttributeNS(null,"d","M"+t+", "+(e-d)+"L"+t+","+e+" L"+(t+o)+","+e+" L"+(t+o)+","+(e-d)):h.setAttributeNS(null,"d","M"+t+","+e+" L"+t+","+(e+d)+" L"+(t+o)+","+(e+d)+"L"+(t+o)+","+e),h.setAttributeNS(null,"class",this.className+" iconFill")),1==this.options.drawPoints.enabled&&n.drawPoint(t+.5*o,e,this,i,s);else{var c=Math.round(.3*o),p=Math.round(.4*r),u=Math.round(.75*r),m=Math.round((o-2*c)/3);n.drawBar(t+.5*c+m,e+d-p-1,c,p,this.className+" bar",i,s),n.drawBar(t+1.5*c+m+2,e+d-u-1,c,u,this.className+" bar",i,s)}},s.prototype.getLegend=function(t,e){var i=document.createElementNS("http://www.w3.org/2000/svg","svg");return this.drawIcon(0,.5*e,[],i,t,e),{icon:i,label:this.content,orientation:this.options.yAxisOrientation}},s.prototype.getYRange=function(t){return this.type.getYRange(t)},s.prototype.draw=function(t,e,i){this.type.draw(t,e,i)},t.exports=s},function(t,e,i){function s(t,e){this.groupId=t,this.options=e}var o=i(6),n=i(48);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=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=o"));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,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,fontStrokeWidth:0,fontStrokeColor:"white",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",fontStrokeWidth:0,fontStrokeColor:"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(11),n=i(19),r=i(36),a=i(1),h=i(22),d=i(7),l=i(9),c=i(52),p=i(53),u=i(54),m=i(55),f=i(56),g=i(57),v=i(58),y=i(59),b=i(35),_=i(70);i(71),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(){this.start=function(){},this.redraw=function(){},this.timer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off(),this._recursiveDOMDelete(this.containerElement)},s.prototype._recursiveDOMDelete=function(t){for(;1==t.hasChildNodes();)this._recursiveDOMDelete(t.firstChild),t.removeChild(t.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(t){this._handleDragStart(t)},s.prototype._handleDragStart=function(t){void 0===this.drag.pointer&&this._onTouch(t);var e=this._getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=this._getTranslation(),this.drag.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,this.drag.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,this.drag.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){if(void 0===this.drag.pointer)return void this._handleDragStart(t);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){function i(t){return T=t,u()}function s(){O=0,E=T.charAt(0)}function o(){O++,E=T.charAt(O)}function n(){return T.charAt(O+1)}function r(t){return L.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var s=e.split("."),o=t;s.length;){var n=s.shift();s.length?(o[n]||(o[n]={}),o=o[n]):o[n]=i}}function d(t,e){for(var i,s,o=null,n=[t],r=t;r.parent;)n.push(r.parent),r=r.parent;if(r.nodes)for(i=0,s=r.nodes.length;s>i;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 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="",N=S.NULL,L=/[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;re?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._drawImageAtPosition=function(t){if(0!=this.imageObj.width){if(this.clusterSize>1){var e=this.clusterSize>1?10:0;e*=this.networkScaleInv,e=Math.min(.2*this.width,e),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-e,this.top-e,this.width+2*e,this.height+2*e)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height)}},s.prototype._drawImageLabel=function(t){var e;e=0!=this.imageObj.width?this.y+this.height/2:this.y,this._label(t,this.label,this.x,e,void 0,"hanging")},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawImageAtPosition(t),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeCircularImage=function(t){this._resizeImage(t)},s.prototype._drawCircularImage=function(t){this._resizeCircularImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.left+this.width/2,i=this.top+this.height/2,s=Math.abs(this.height/2);this._drawRawCircle(t,e,i,s),t.save(),t.circle(this.x,this.y,s),t.stroke(),t.clip(),this._drawImageAtPosition(t),t.restore(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},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._drawRawCircle=function(t,e,i,s){var o=2.5,n=this.options.borderWidth,r=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?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(e,i,s+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o: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,s),t.fill(),t.stroke()},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawRawCircle(t,this.x,this.y,this.options.radius),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},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,"hanging",!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),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;"hanging"==n&&(g+=.5*d,g+=3,l+=3),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",this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=this.options.fontStrokeColor,t.lineJoin="round");for(var p=0;h>p;p++)this.options.fontStrokeWidth&&t.strokeText(a[p],i,l),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.yh}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(){if(1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled)return this.via;if(0==this.options.smoothCurves.enabled)return{x:0,y:0};var t=null,e=null,i=this.options.smoothCurves.roundness,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",this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=this.options.fontStrokeColor,t.lineJoin="round"),o=this.labelDimensions.yLine;for(var d=0;r>d;d++)this.options.fontStrokeWidth&&t.strokeText(n[d],i,o),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.setLineDash){t.save();var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],t.setLineDash(i),t.lineDashOffset=0,e=this._line(t),t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var 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._pointOnBezier=function(t){var e=this._getViaCoordinates(),i=Math.pow(1-t,2)*this.from.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.to.x,s=Math.pow(1-t,2)*this.from.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.to.y;return{x:i,y:s}},s.prototype._findBorderPosition=function(t,e){var i,s,o,n,r,a=10,h=0,d=0,l=1,c=.2,p=this.to;for(1==t&&(p=this.from);l>=d&&a>h;){var u=.5*(d+l);if(i=this._pointOnBezier(u),s=Math.atan2(p.y-i.y,p.x-i.x),o=p.distanceToBorder(e,s),n=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=o-n,Math.abs(r)r?0==t?d=u:l=u:0==t?l=u:d=u,h++}return i.t=u,i},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i,s;if(this.from!=this.to){if(this._line(t),1==this.options.smoothCurves.enabled){var o=this._getViaCoordinates();s=this._findBorderPosition(!1,t);var n=this._pointOnBezier(Math.max(0,s.t-.1));e=Math.atan2(s.y-n.y,s.x-n.x)}else{e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var r=this.to.x-this.from.x,a=this.to.y-this.from.y,h=Math.sqrt(r*r+a*a),d=this.to.distanceToBorder(t,e),l=(h-d)/h;s={},s.x=(1-l)*this.from.x+l*this.to.x,s.y=(1-l)*this.from.y+l*this.to.y}if(i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(s.x,s.y,e,i),t.fill(),t.stroke(),this.label){var c;c=1==this.options.smoothCurves.enabled&&null!=o?this._pointOnBezier(.5):this._pointOnLine(.5),this._label(t,this.label,c.x,c.y)}}else{var p,u,m,f=this.from,g=.25*Math.max(100,this.physics.springLength);f.width||f.resize(t),f.width>f.height?(p=f.x+.5*f.width,u=f.y-g,m={x:p,y:f.y,angle:.9*Math.PI}):(p=f.x+g,u=f.y-.5*f.height,m={x:f.x,y:u,angle:.6*Math.PI}),t.beginPath(),t.arc(p,u,g,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(m.x,m.y,m.angle,i),t.fill(),t.stroke(),this.label&&(c=this._pointOnCircle(p,u,g,.5),this._label(t,this.label,c.x,c.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){function e(t,e,i,s,o){this.container=t?t:document.body,void 0===o&&("object"==typeof e?(o=e,e=void 0):"object"==typeof s?(o=s,s=void 0):o={fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}}),this.x=0,this.y=0,this.padding=5,void 0!==e&&void 0!==i&&this.setPosition(e,i),void 0!==s&&this.setText(s),this.frame=document.createElement("div");var n=this.frame.style;n.position="absolute",n.visibility="hidden",n.border="1px solid "+o.color.border,n.color=o.fontColor,n.fontSize=o.fontSize+"px",n.fontFamily=o.fontFace,n.padding=this.padding+"px",n.backgroundColor=o.color.background,n.borderRadius="3px",n.MozBorderRadius="3px",n.WebkitBorderRadius="3px",n.boxShadow="3px 3px 10px rgba(128, 128, 128, 0.5)",n.whiteSpace="nowrap",this.container.appendChild(this.frame)}e.prototype.setPosition=function(t,e){this.x=parseInt(t),this.y=parseInt(e)},e.prototype.setText=function(t){t instanceof Element?(this.frame.innerHTML="",this.frame.appendChild(t)):this.frame.innerHTML=t},e.prototype.show=function(t){if(void 0===t&&(t=!0),t){var e=this.frame.clientHeight,i=this.frame.clientWidth,s=this.frame.parentNode.clientHeight,o=this.frame.parentNode.clientWidth,n=this.y-e;n+e+this.padding>s&&(n=s-e-this.padding),no&&(r=o-i-this.padding),rthis.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,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,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(56);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(56),n=i(57);e._clearManipulatorBar=function(){this._recursiveDOMDelete(this.manipulationDiv),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],delete 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);var e=this;this.boundFunction=e._createManipulatorBar,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);var e=this;this.boundFunction=e._addNode,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);var e=this;this.manipulationDOM.backSpan.onclick=e._createManipulatorBar,this.boundFunction=e._handleConnect,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(19));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){e.en={edit:"Edit",del:"Delete selected",back:"Back",addNode:"Add Node",addEdge:"Add Edge",editNode:"Edit Node",editEdge:"Edit Edge",addDescription:"Click in an empty space to place a new node.",edgeDescription:"Click on a node and drag the edge to another node to connect them.",editEdgeDescription:"Click on the control points and drag them to a node to connect to it.",createEdgeError:"Cannot link edges to a cluster.",deleteClusterError:"Clusters cannot be deleted."},e.en_EN=e.en,e.en_US=e.en,e.nl={edit:"Wijzigen",del:"Selectie verwijderen",back:"Terug",addNode:"Node toevoegen",addEdge:"Link toevoegen",editNode:"Node wijzigen",editEdge:"Link wijzigen",addDescription:"Klik op een leeg gebied om een nieuwe node te maken.",edgeDescription:"Klik op een node en sleep de link naar een andere node om ze te verbinden.",editEdgeDescription:"Klik op de verbindingspunten en sleep ze naar een node om daarmee te verbinden.",createEdgeError:"Kan geen link maken naar een cluster.",deleteClusterError:"Clusters kunnen niet worden verwijderd."},e.nl_NL=e.nl,e.nl_BE=e.nl},function(){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1)},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i)},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath();var s=2*i,o=s/2,n=Math.sqrt(3)/6*s,r=Math.sqrt(s*s-o*o);this.moveTo(t,e-(r-n)),this.lineTo(t+o,e+n),this.lineTo(t-o,e+n),this.lineTo(t,e-(r-n)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath();var s=2*i,o=s/2,n=Math.sqrt(3)/6*s,r=Math.sqrt(s*s-o*o);this.moveTo(t,e+(r-n)),this.lineTo(t+o,e-n),this.lineTo(t-o,e-n),this.lineTo(t,e+(r-n)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath();for(var s=0;10>s;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}})}])}); //# sourceMappingURL=vis.map diff --git a/docs/network.html b/docs/network.html index 7054abe4..6e8bb353 100644 --- a/docs/network.html +++ b/docs/network.html @@ -932,6 +932,18 @@ All options defined per-node override these global settings. undefined If a color is supplied, there will be a background color behind the label. If left undefined, no background color is shown. + + fontStrokeWidth + Number + 0 + The width of the label stroke (border around label's text) in pixels. + + + fontStrokeColor + String + 'white' + The color of the label stroke. + shape @@ -1156,6 +1168,20 @@ var options = { Font fill for the background color of the text label of the edge. Only applicable when property label is defined. + + fontStrokeWidth + Number + 0 + The width of the label stroke (border around label's text) in pixels. + Only applicable when property label is defined. + + + fontStrokeColor + String + 'white' + The color of the label stroke. + Only applicable when property label is defined. + style @@ -1316,6 +1342,18 @@ var nodes = [ 14 Font size for the node in pixels. + + fontStrokeWidth + Number + 0 + The width of the label stroke (border around label's text) in pixels. + + + fontStrokeColor + String + "white" + The color of the label stroke. + shape String diff --git a/docs/timeline.html b/docs/timeline.html index 92e4536c..0b910594 100644 --- a/docs/timeline.html +++ b/docs/timeline.html @@ -1053,24 +1053,26 @@ timeline.off('select', onSelect); rangechange - Fired repeatedly when the user is dragging the timeline window. + Fired repeatedly when the timeline window is being changed.
  • start (Number): timestamp of the current start of the window.
  • end (Number): timestamp of the current end of the window.
  • +
  • byUser (Boolean): change happened because of user drag/zoom.
rangechanged - Fired once after the user has dragged the timeline window. + Fired once after the timeline window has been changed.
  • start (Number): timestamp of the current start of the window.
  • end (Number): timestamp of the current end of the window.
  • +
  • byUser (Boolean): change happened because of user drag/zoom.
diff --git a/examples/network/15_dot_language_playground.html b/examples/network/15_dot_language_playground.html index c4247543..c79ee3c3 100644 --- a/examples/network/15_dot_language_playground.html +++ b/examples/network/15_dot_language_playground.html @@ -80,7 +80,8 @@ + + + + + + + +
+ + + + + diff --git a/examples/network/36_HTML_in_Nodes.html b/examples/network/36_HTML_in_Nodes.html new file mode 100644 index 00000000..00dad583 --- /dev/null +++ b/examples/network/36_HTML_in_Nodes.html @@ -0,0 +1,80 @@ + + + + Network | Images + + + + + + + + + + + +
+ + diff --git a/examples/network/index.html b/examples/network/index.html index ac8c7bdd..7f15929f 100644 --- a/examples/network/index.html +++ b/examples/network/index.html @@ -46,6 +46,8 @@

32_hierarchicaLayoutMethods.html

33_animation.html

34_circular_images.html

+

35_label_stroke.html

+

36_HTML_in_Nodes.html

graphviz_gallery.html

diff --git a/lib/network/Edge.js b/lib/network/Edge.js index 9757cc54..9e555a05 100644 --- a/lib/network/Edge.js +++ b/lib/network/Edge.js @@ -75,7 +75,7 @@ Edge.prototype.setProperties = function(properties) { return; } - var fields = ['style','fontSize','fontFace','fontColor','fontFill','width', + var fields = ['style','fontSize','fontFace','fontColor','fontFill','fontStrokeWidth','fontStrokeColor','width', 'widthSelectionMultiplier','hoverWidth','arrowScaleFactor','dash','inheritColor' ]; util.selectiveDeepExtend(fields, this.options, properties); @@ -322,168 +322,176 @@ Edge.prototype._getLineWidth = function() { }; 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; + if (this.options.smoothCurves.dynamic == true && this.options.smoothCurves.enabled == true ) { + return this.via; + } + else if (this.options.smoothCurves.enabled == false) { + return {x:0,y:0}; + } + else { + 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.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 (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 (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.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 * 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 (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 (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 if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y - factor * dx; + else { + yVia = this.to.y + (1 - factor) * dy; } } - else if (this.from.y < this.to.y) { + 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.from.x + factor * dx; - yVia = this.from.y + factor * dx; + xVia = this.to.x - (1 - factor) * dx; } - else if (this.from.x > this.to.x) { - xVia = this.from.x - factor * dx; - yVia = this.from.y + factor * dx; + else { + xVia = this.to.x + (1 - factor) * dx; } - } - if (type == "discrete") { - yVia = dy < factor * dx ? this.from.y : yVia; + yVia = this.from.y; } } - } - 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 if (type == 'horizontal') { + if (this.from.x < this.to.x) { + xVia = this.to.x - (1 - factor) * dx; } else { - yVia = this.to.y + (1-factor) * dy; + xVia = this.to.x + (1 - factor) * dx; } + yVia = this.from.y; } - 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 if (type == 'vertical') { + xVia = this.from.x; + if (this.from.y < this.to.y) { + yVia = this.to.y - (1 - factor) * dy; } else { - xVia = this.to.x + (1-factor) * dx; + yVia = this.to.y + (1 - factor) * dy; } - yVia = this.from.y; - } - } - else if (type == 'horizontal') { - if (this.from.x < this.to.x) { - xVia = this.to.x - (1-factor) * dx; - } - else { - xVia = this.to.x + (1-factor) * dx; } - yVia = this.from.y; - } - else if (type == 'vertical') { - xVia = this.from.x; - if (this.from.y < this.to.y) { - yVia = this.to.y - (1-factor) * dy; - } - else { - yVia = this.to.y + (1-factor) * dy; - } - } - else { // 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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) { + 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) { + 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; + 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}; + return {x: xVia, y: yVia}; + } }; /** @@ -585,8 +593,16 @@ Edge.prototype._label = function (ctx, text, x, y) { ctx.fillStyle = this.options.fontColor || "black"; ctx.textAlign = "center"; ctx.textBaseline = "middle"; + if (this.options.fontStrokeWidth > 0){ + ctx.lineWidth = this.options.fontStrokeWidth; + ctx.strokeStyle = this.options.fontStrokeColor; + ctx.lineJoin = 'round'; + } yLine = this.labelDimensions.yLine; for (var i = 0; i < lineCount; i++) { + if(this.options.fontStrokeWidth){ + ctx.strokeText(lines[i], x, yLine); + } ctx.fillText(lines[i], x, yLine); yLine += fontSize; } @@ -772,7 +788,69 @@ Edge.prototype._drawArrowCenter = function(ctx) { } }; +Edge.prototype._pointOnBezier = function(t) { + var via = this._getViaCoordinates(); + var x = Math.pow(1-t,2)*this.from.x + (2*t*(1 - t))*via.x + Math.pow(t,2)*this.to.x; + var y = Math.pow(1-t,2)*this.from.y + (2*t*(1 - t))*via.y + Math.pow(t,2)*this.to.y; + + return {x:x,y:y}; +} + +/** + * This function uses binary search to look for the point where the bezier curve crosses the border of the node. + * + * @param from + * @param ctx + * @returns {*} + * @private + */ +Edge.prototype._findBorderPosition = function(from,ctx) { + var maxIterations = 10; + var iteration = 0; + var low = 0; + var high = 1; + var pos,angle,distanceToBorder, distanceToNodes, difference; + var threshold = 0.2; + var node = this.to; + if (from == true) { + node = this.from; + } + + while (low <= high && iteration < maxIterations) { + var middle = (low + high) * 0.5; + + pos = this._pointOnBezier(middle); + angle = Math.atan2((node.y - pos.y), (node.x - pos.x)); + distanceToBorder = node.distanceToBorder(ctx,angle); + distanceToNodes = Math.sqrt(Math.pow(pos.x-node.x,2) + Math.pow(pos.y-node.y,2)); + difference = distanceToBorder - distanceToNodes; + if (Math.abs(difference) < threshold) { + break; // found + } + else if (difference < 0) { // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (from == false) { + low = middle; + } + else { + high = middle; + } + } + else { + if (from == false) { + high = middle; + } + else { + low = middle; + } + } + + iteration++; + } + pos.t = middle; + + return pos; +}; /** * Redraw a edge as a line with an arrow @@ -787,59 +865,37 @@ Edge.prototype._drawArrow = function(ctx) { 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); - - 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(); - } + // set vars + var angle, length, arrowPos; - 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; - - 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; - } + // if not connected to itself + if (this.from != this.to) { + // draw line + this._line(ctx); - ctx.beginPath(); - ctx.moveTo(xFrom,yFrom); - if (this.options.smoothCurves.enabled == true && via.x != null) { - ctx.quadraticCurveTo(via.x,via.y,xTo, yTo); + // draw arrow head + if (this.options.smoothCurves.enabled == true) { + var via = this._getViaCoordinates(); + arrowPos = this._findBorderPosition(false, ctx); + var guidePos = this._pointOnBezier(Math.max(0.0, arrowPos.t - 0.1)) + angle = Math.atan2((arrowPos.y - guidePos.y), (arrowPos.x - guidePos.x)); } else { - ctx.lineTo(xTo, yTo); + 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 toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + + arrowPos = {}; + arrowPos.x = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + arrowPos.y = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; } - ctx.stroke(); // draw arrow at the end of the line length = (10 + 5 * this.options.width) * this.options.arrowScaleFactor; - ctx.arrow(xTo, yTo, angle, length); + ctx.arrow(arrowPos.x,arrowPos.y, angle, length); ctx.fill(); ctx.stroke(); @@ -847,9 +903,7 @@ Edge.prototype._drawArrow = function(ctx) { 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}; + point = this._pointOnBezier(0.5); } else { point = this._pointOnLine(0.5); @@ -902,8 +956,6 @@ Edge.prototype._drawArrow = function(ctx) { } }; - - /** * Calculate the distance between a point (x3,y3) and a line segment from * (x1,y1) to (x2,y2). @@ -1044,26 +1096,30 @@ Edge.prototype._drawControlNodes = function(ctx) { var nodeIdFrom = "edgeIdFrom:".concat(this.id); var nodeIdTo = "edgeIdTo:".concat(this.id); var constants = { - nodes:{group:'', radius:8}, + nodes:{group:'', radius:7, borderWidth:2, borderWidthSelected: 2}, physics:{damping:0}, clustering: {maxNodeSizeIncrements: 0 ,nodeScaling: {width:0, height: 0, radius:0}} }; this.controlNodes.from = new Node( {id:nodeIdFrom, shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + color:{background:'#ff0000', border:'#3c3c3c', highlight: {background:'#07f968'}} },{},{},constants); this.controlNodes.to = new Node( {id:nodeIdTo, shape:'dot', - color:{background:'#ff4e00', border:'#3c3c3c', highlight: {background:'#07f968'}} + color:{background:'#ff0000', 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.positions = {}; + if (this.controlNodes.from.selected == false) { + this.controlNodes.positions.from = this.getControlNodeFromPosition(ctx); this.controlNodes.from.x = this.controlNodes.positions.from.x; this.controlNodes.from.y = this.controlNodes.positions.from.y; + } + if (this.controlNodes.to.selected == false) { + this.controlNodes.positions.to = this.getControlNodeToPosition(ctx); this.controlNodes.to.x = this.controlNodes.positions.to.x; this.controlNodes.to.y = this.controlNodes.positions.to.y; } @@ -1155,46 +1211,56 @@ Edge.prototype._restoreControlNodes = function() { * 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: *}}} + * @returns {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(); +Edge.prototype.getControlNodeFromPosition = function(ctx) { + // draw arrow head + var controlnodeFromPos; + if (this.options.smoothCurves.enabled == true) { + controlnodeFromPos = this._findBorderPosition(true, ctx); } + else { + 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); - 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 fromBorderDist = this.from.distanceToBorder(ctx, angle + Math.PI); + var fromBorderPoint = (edgeSegmentLength - fromBorderDist) / edgeSegmentLength; + controlnodeFromPos = {}; + controlnodeFromPos.x = (fromBorderPoint) * this.from.x + (1 - fromBorderPoint) * this.to.x; + controlnodeFromPos.y = (fromBorderPoint) * this.from.y + (1 - fromBorderPoint) * this.to.y; } - var toBorderDist = this.to.distanceToBorder(ctx, angle); - var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; - 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; + return controlnodeFromPos; +}; + +/** + * 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.getControlNodeToPosition = function(ctx) { + // draw arrow head + var controlnodeFromPos,controlnodeToPos; + if (this.options.smoothCurves.enabled == true) { + controlnodeToPos = this._findBorderPosition(false, ctx); } else { - xTo = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; - yTo = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; + 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 toBorderDist = this.to.distanceToBorder(ctx, angle); + var toBorderPoint = (edgeSegmentLength - toBorderDist) / edgeSegmentLength; + + controlnodeToPos = {}; + controlnodeToPos.x = (1 - toBorderPoint) * this.from.x + toBorderPoint * this.to.x; + controlnodeToPos.y = (1 - toBorderPoint) * this.from.y + toBorderPoint * this.to.y; } - return {from:{x:xFrom,y:yFrom},to:{x:xTo,y:yTo}}; + return controlnodeToPos; }; module.exports = Edge; \ No newline at end of file diff --git a/lib/network/Network.js b/lib/network/Network.js index 95112ce8..58e2cf6c 100644 --- a/lib/network/Network.js +++ b/lib/network/Network.js @@ -68,6 +68,8 @@ function Network (container, data, options) { fontSize: 14, // px fontFace: 'verdana', fontFill: undefined, + fontStrokeWidth: 0, // px + fontStrokeColor: 'white', level: -1, color: { border: '#2B7CE9', @@ -101,6 +103,8 @@ function Network (container, data, options) { fontSize: 14, // px fontFace: 'arial', fontFill: 'white', + fontStrokeWidth: 0, // px + fontStrokeColor: 'white', arrowScaleFactor: 1, dash: { length: 10, @@ -177,7 +181,7 @@ function Network (container, data, options) { levelSeparation: 150, nodeSpacing: 100, direction: "UD", // UD, DU, LR, RL - layout: "hubsize" // hubsize, directed + layout: "hubsize" // hubsize, directed, uniqueDirected }, freezeForStabilization: false, smoothCurves: { @@ -876,18 +880,16 @@ Network.prototype.destroy = function() { // clear events this.off(); - // remove all elements from the container element. - while (this.frame.hasChildNodes()) { - this.frame.removeChild(this.frame.firstChild); - } + this._recursiveDOMDelete(this.containerElement); +} - // remove all elements from the container element. - while (this.containerElement.hasChildNodes()) { - this.containerElement.removeChild(this.containerElement.firstChild); +Network.prototype._recursiveDOMDelete = function(DOMobject) { + while (DOMobject.hasChildNodes() == true) { + this._recursiveDOMDelete(DOMobject.firstChild); + DOMobject.removeChild(DOMobject.firstChild); } } - /** * Get the pointer location from a touch location * @param {{pageX: Number, pageY: Number}} touch @@ -923,8 +925,8 @@ Network.prototype._onTouch = function (event) { * handle drag start event * @private */ -Network.prototype._onDragStart = function () { - this._handleDragStart(); +Network.prototype._onDragStart = function (event) { + this._handleDragStart(event); }; @@ -934,20 +936,24 @@ Network.prototype._onDragStart = function () { * * @private */ -Network.prototype._handleDragStart = function() { - var drag = this.drag; - var node = this._getNodeAt(drag.pointer); +Network.prototype._handleDragStart = function(event) { + // in case the touch event was triggered on an external div, do the initial touch now. + if (this.drag.pointer === undefined) { + this._onTouch(event); + } + + var node = this._getNodeAt(this.drag.pointer); // note: drag.pointer is set in _onTouch to get the initial touch location - drag.dragging = true; - drag.selection = []; - drag.translation = this._getTranslation(); - drag.nodeId = null; + this.drag.dragging = true; + this.drag.selection = []; + this.drag.translation = this._getTranslation(); + this.drag.nodeId = null; this.draggingNodes = false; if (node != null && this.constants.dragNodes == true) { this.draggingNodes = true; - drag.nodeId = node.id; + this.drag.nodeId = node.id; // select the clicked node if not yet selected if (!node.isSelected()) { this._selectObject(node,false); @@ -973,7 +979,7 @@ Network.prototype._handleDragStart = function() { object.xFixed = true; object.yFixed = true; - drag.selection.push(s); + this.drag.selection.push(s); } } } @@ -1033,8 +1039,13 @@ Network.prototype._handleOnDrag = function(event) { } } else { + // move the network if (this.constants.dragNetwork == true) { - // move the network + // if the drag was not started properly because the click started outside the network div, start it now. + if (this.drag.pointer === undefined) { + this._handleDragStart(event); + return; + } var diffX = pointer.x - this.drag.pointer.x; var diffY = pointer.y - this.drag.pointer.y; @@ -1043,8 +1054,6 @@ Network.prototype._handleOnDrag = function(event) { this.drag.translation.y + diffY ); this._redraw(); -// this.moving = true; -// this.start(); } } }; @@ -1327,34 +1336,44 @@ Network.prototype._checkShowPopup = function (pointer) { if (this.popupObj == undefined) { // search the nodes for overlap, select the top one in case of multiple nodes var nodes = this.nodes; + var overlappingNodes = []; for (id in nodes) { if (nodes.hasOwnProperty(id)) { var node = nodes[id]; if (node.isOverlappingWith(obj)) { if (node.getTitle() !== undefined) { - this.popupObj = node; - break; + overlappingNodes.push(id); } - // if you hover over a node, the title of the edge is not supposed to be shown. - nodeUnderCursor = true; } } } + + if (overlappingNodes.length > 0) { + // if there are overlapping nodes, select the last one, this is the + // one which is drawn on top of the others + this.popupObj = this.nodes[overlappingNodes[overlappingNodes.length - 1]]; + // if you hover over a node, the title of the edge is not supposed to be shown. + nodeUnderCursor = true; + } } if (this.popupObj === undefined && nodeUnderCursor == false) { // search the edges for overlap var edges = this.edges; + var overlappingEdges = []; for (id in edges) { if (edges.hasOwnProperty(id)) { var edge = edges[id]; if (edge.connected && (edge.getTitle() !== undefined) && edge.isOverlappingWith(obj)) { - this.popupObj = edge; - break; + overlappingEdges.push(id); } } } + + if (overlappingEdges.length > 0) { + this.popupObj = this.edges[overlappingEdges[overlappingEdges.length - 1]]; + } } if (this.popupObj) { diff --git a/lib/network/Node.js b/lib/network/Node.js index ec6fca74..bda23271 100644 --- a/lib/network/Node.js +++ b/lib/network/Node.js @@ -157,7 +157,7 @@ Node.prototype.setProperties = function(properties, constants) { } var fields = ['borderWidth','borderWidthSelected','shape','image','brokenImage','radius','fontColor', - 'fontSize','fontFace','fontFill','group','mass' + 'fontSize','fontFace','fontFill','fontStrokeWidth','fontStrokeColor','group','mass' ]; util.selectiveDeepExtend(fields, this.options, properties); @@ -186,9 +186,6 @@ Node.prototype.setProperties = function(properties, constants) { // the color object needs to be completely defined. Since groups can partially overwrite the colors, we parse it again, just in case. this.options.color = util.parseColor(this.options.color); } - else if (properties.color === undefined) { - this.options.color = constants.nodes.color; - } // individual shape properties if (properties.radius !== undefined) {this.baseRadiusValue = this.options.radius;} @@ -1028,7 +1025,15 @@ Node.prototype._label = function (ctx, text, x, y, align, baseline, labelUnderNo ctx.fillStyle = this.options.fontColor || "black"; ctx.textAlign = align || "center"; ctx.textBaseline = baseline || "middle"; + if (this.options.fontStrokeWidth > 0){ + ctx.lineWidth = this.options.fontStrokeWidth; + ctx.strokeStyle = this.options.fontStrokeColor; + ctx.lineJoin = 'round'; + } for (var i = 0; i < lineCount; i++) { + if(this.options.fontStrokeWidth){ + ctx.strokeText(lines[i], x, yLine); + } ctx.fillText(lines[i], x, yLine); yLine += fontSize; } diff --git a/lib/network/mixins/HierarchicalLayoutMixin.js b/lib/network/mixins/HierarchicalLayoutMixin.js index 6471588a..3cd6e726 100644 --- a/lib/network/mixins/HierarchicalLayoutMixin.js +++ b/lib/network/mixins/HierarchicalLayoutMixin.js @@ -218,36 +218,24 @@ exports._determineLevels = function(hubsize) { } }; + + /** - * this function allocates nodes in levels based on the recursive branching from the largest hubs. + * this function allocates nodes in levels based on the direction of the edges * * @param hubsize * @private */ exports._determineLevelsDirected = function() { - var nodeId, node; + var nodeId, node, firstNode; + var minLevel = 10000; // set first node to source - for (nodeId in this.nodes) { - if (this.nodes.hasOwnProperty(nodeId)) { - this.nodes[nodeId].level = 10000; - break; - } - } - - // branch from hubs - for (nodeId in this.nodes) { - if (this.nodes.hasOwnProperty(nodeId)) { - node = this.nodes[nodeId]; - if (node.level == 10000) { - this._setLevelDirected(10000,node.edges,node.id); - } - } - } + firstNode = this.nodes[this.nodeIndices[0]]; + firstNode.level = minLevel; + this._setLevelDirected(minLevel,firstNode.edges,firstNode.id); - - // branch from hubs - var minLevel = 10000; + // get the minimum level for (nodeId in this.nodes) { if (this.nodes.hasOwnProperty(nodeId)) { node = this.nodes[nodeId]; @@ -255,7 +243,7 @@ exports._determineLevelsDirected = function() { } } - // branch from hubs + // subtract the minimum from the set so we have a range starting from 0 for (nodeId in this.nodes) { if (this.nodes.hasOwnProperty(nodeId)) { node = this.nodes[nodeId]; @@ -361,7 +349,7 @@ exports._setLevel = function(level, edges, parentId) { /** - * this function is called recursively to enumerate the barnches of the largest hubs and give each node a level. + * this function is called recursively to enumerate the branched of the first node and give each node a level based on edge direction * * @param level * @param edges diff --git a/lib/network/mixins/ManipulationMixin.js b/lib/network/mixins/ManipulationMixin.js index ed405336..04471230 100644 --- a/lib/network/mixins/ManipulationMixin.js +++ b/lib/network/mixins/ManipulationMixin.js @@ -8,9 +8,7 @@ var Edge = require('../Edge'); * @private */ exports._clearManipulatorBar = function() { - while (this.manipulationDiv.hasChildNodes()) { - this.manipulationDiv.removeChild(this.manipulationDiv.firstChild); - } + this._recursiveDOMDelete(this.manipulationDiv); this.manipulationDOM = {}; this._manipulationReleaseOverload = function () {}; @@ -30,6 +28,7 @@ exports._restoreOverloadedFunctions = function() { for (var functionName in this.cachedFunctions) { if (this.cachedFunctions.hasOwnProperty(functionName)) { this[functionName] = this.cachedFunctions[functionName]; + delete this.cachedFunctions[functionName]; } } }; @@ -175,7 +174,8 @@ exports._createManipulatorBar = function() { } this.closeDiv.onclick = this._toggleEditMode.bind(this); - this.boundFunction = this._createManipulatorBar.bind(this); + var me = this; + this.boundFunction = me._createManipulatorBar; this.on('select', this.boundFunction); } else { @@ -238,7 +238,8 @@ exports._createAddNodeToolbar = function() { this.manipulationDOM['backSpan'].onclick = this._createManipulatorBar.bind(this); // we use the boundFunction so we can reference it when we unbind it from the "select" event. - this.boundFunction = this._addNode.bind(this); + var me = this; + this.boundFunction = me._addNode; this.on('select', this.boundFunction); }; @@ -254,12 +255,12 @@ exports._createAddEdgeToolbar = function() { this._unselectAll(true); this.freezeSimulation = true; - var locale = this.constants.locales[this.constants.locale]; - if (this.boundFunction) { this.off('select', this.boundFunction); } + var locale = this.constants.locales[this.constants.locale]; + this._unselectAll(); this.forceAppendSelection = false; this.blockConnectingEdgeSelection = true; @@ -290,7 +291,8 @@ exports._createAddEdgeToolbar = function() { this.manipulationDOM['backSpan'].onclick = this._createManipulatorBar.bind(this); // we use the boundFunction so we can reference it when we unbind it from the "select" event. - this.boundFunction = this._handleConnect.bind(this); + var me = this; + this.boundFunction = me._handleConnect; this.on('select', this.boundFunction); // temporarily overload functions @@ -401,14 +403,22 @@ exports._controlNodeDrag = function(event) { this._redraw(); }; + +/** + * + * @param pointer + * @private + */ exports._releaseControlNode = function(pointer) { var newNode = this._getNodeAt(pointer); if (newNode !== null) { if (this.edgeBeingEdited.controlNodes.from.selected == true) { + this.edgeBeingEdited._restoreControlNodes(); this._editEdge(newNode.id, this.edgeBeingEdited.to.id); this.edgeBeingEdited.controlNodes.from.unselect(); } if (this.edgeBeingEdited.controlNodes.to.selected == true) { + this.edgeBeingEdited._restoreControlNodes(); this._editEdge(this.edgeBeingEdited.from.id, newNode.id); this.edgeBeingEdited.controlNodes.to.unselect(); } diff --git a/lib/network/mixins/physics/RepulsionMixin.js b/lib/network/mixins/physics/RepulsionMixin.js index e3b56ac7..4b3ef6ac 100644 --- a/lib/network/mixins/physics/RepulsionMixin.js +++ b/lib/network/mixins/physics/RepulsionMixin.js @@ -31,6 +31,12 @@ exports._calculateNodeForces = function () { dy = node2.y - node1.y; distance = Math.sqrt(dx * dx + dy * dy); + // same condition as BarnesHut, making sure nodes are never 100% overlapping. + if (distance == 0) { + distance = 0.1*Math.random(); + dx = distance; + } + minimumDistance = (combinedClusterSize == 0) ? nodeDistance : (nodeDistance * (1 + combinedClusterSize * this.constants.clustering.distanceAmplification)); var a = a_base / minimumDistance; if (distance < 2 * minimumDistance) { @@ -40,13 +46,13 @@ exports._calculateNodeForces = function () { else { repulsingForce = a * distance + b; // linear approx of 1 / (1 + Math.exp((distance / minimumDistance - 1) * steepness)) } + // amplify the repulsion for clusters. repulsingForce *= (combinedClusterSize == 0) ? 1 : 1 + combinedClusterSize * this.constants.clustering.forceAmplification; repulsingForce = repulsingForce / Math.max(distance,0.01*minimumDistance); fx = dx * repulsingForce; fy = dy * repulsingForce; - node1.fx -= fx; node1.fy -= fy; node2.fx += fx; diff --git a/lib/timeline/Core.js b/lib/timeline/Core.js index 140bc10a..cbf236f2 100644 --- a/lib/timeline/Core.js +++ b/lib/timeline/Core.js @@ -608,8 +608,7 @@ Core.prototype.redraw = function() { this.redraw(); } else { - console.log('WARNING: infinite loop in redraw?') - throw new Error("bla") + console.log('WARNING: infinite loop in redraw?'); } this.redrawCount = 0; } diff --git a/lib/timeline/Range.js b/lib/timeline/Range.js index 4fa67857..ddd6f871 100644 --- a/lib/timeline/Range.js +++ b/lib/timeline/Range.js @@ -112,9 +112,13 @@ function validateDirection (direction) { * If animate is a number, the * number is taken as duration * Default duration is 500 ms. + * @param {Boolean} [byUser=false] * */ -Range.prototype.setRange = function(start, end, animate) { +Range.prototype.setRange = function(start, end, animate, byUser) { + if (byUser !== true) { + byUser = false; + } var _start = start != undefined ? util.convert(start, 'Date').valueOf() : null; var _end = end != undefined ? util.convert(end, 'Date').valueOf() : null; this._cancelAnimation(); @@ -139,12 +143,12 @@ Range.prototype.setRange = function(start, end, animate) { DateUtil.updateHiddenDates(me.body, me.options.hiddenDates); anyChanged = anyChanged || changed; if (changed) { - me.body.emitter.emit('rangechange', {start: new Date(me.start), end: new Date(me.end)}); + me.body.emitter.emit('rangechange', {start: new Date(me.start), end: new Date(me.end), byUser:byUser}); } if (done) { if (anyChanged) { - me.body.emitter.emit('rangechanged', {start: new Date(me.start), end: new Date(me.end)}); + me.body.emitter.emit('rangechanged', {start: new Date(me.start), end: new Date(me.end), byUser:byUser}); } } else { @@ -161,7 +165,7 @@ Range.prototype.setRange = function(start, end, animate) { var changed = this._applyRange(_start, _end); DateUtil.updateHiddenDates(this.body, this.options.hiddenDates); if (changed) { - var params = {start: new Date(this.start), end: new Date(this.end)}; + var params = {start: new Date(this.start), end: new Date(this.end), byUser:byUser}; this.body.emitter.emit('rangechange', params); this.body.emitter.emit('rangechanged', params); } @@ -412,7 +416,8 @@ Range.prototype._onDrag = function (event) { // fire a rangechange event this.body.emitter.emit('rangechange', { start: new Date(this.start), - end: new Date(this.end) + end: new Date(this.end), + byUser: true }); }; @@ -437,7 +442,8 @@ Range.prototype._onDragEnd = function (event) { // fire a rangechanged event this.body.emitter.emit('rangechanged', { start: new Date(this.start), - end: new Date(this.end) + end: new Date(this.end), + byUser: true }); }; @@ -552,7 +558,7 @@ Range.prototype._onPinch = function (event) { newEnd = safeEnd; } - this.setRange(newStart, newEnd); + this.setRange(newStart, newEnd, false, true); this.startToFront = false; // revert to default this.endToFront = true; // revert to default @@ -629,7 +635,7 @@ Range.prototype.zoom = function(scale, center, delta) { newEnd = safeEnd; } - this.setRange(newStart, newEnd); + this.setRange(newStart, newEnd, false, true); this.startToFront = false; // revert to default this.endToFront = true; // revert to default