diff --git a/dist/vis.js b/dist/vis.js index 17c51f2d..516411e1 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -102,7 +102,7 @@ return /******/ (function(modules) { // webpackBootstrap exports.Timeline = __webpack_require__(17); exports.Graph2d = __webpack_require__(38); exports.timeline = { - DataStep: __webpack_require__(41), + DataStep: __webpack_require__(39), Range: __webpack_require__(20), stack: __webpack_require__(31), TimeStep: __webpack_require__(25), @@ -119,11 +119,11 @@ return /******/ (function(modules) { // webpackBootstrap CurrentTime: __webpack_require__(26), CustomTime: __webpack_require__(28), DataAxis: __webpack_require__(40), - GraphGroup: __webpack_require__(42), + GraphGroup: __webpack_require__(41), Group: __webpack_require__(30), ItemSet: __webpack_require__(29), - Legend: __webpack_require__(43), - LineGraph: __webpack_require__(39), + Legend: __webpack_require__(42), + LineGraph: __webpack_require__(43), TimeAxis: __webpack_require__(24) } }; @@ -17825,7 +17825,7 @@ return /******/ (function(modules) { // webpackBootstrap var TimeAxis = __webpack_require__(24); var CurrentTime = __webpack_require__(26); var CustomTime = __webpack_require__(28); - var LineGraph = __webpack_require__(39); + var LineGraph = __webpack_require__(43); /** * Create a timeline visualization @@ -18007,7 +18007,7 @@ return /******/ (function(modules) { // webpackBootstrap */ Graph2d.prototype.isGroupVisible = function(groupId) { if (this.linegraph.groups[groupId] !== undefined) { - return (this.linegraph.groups[groupId].visible && (this.options.groups.visibility[groupId] === undefined || this.options.groups.visibility[groupId] == true)); + return (this.linegraph.groups[groupId].visible && (this.linegraph.options.groups.visibility[groupId] === undefined || this.linegraph.options.groups.visibility[groupId] == true)); } else { return false; @@ -18054,2381 +18054,2381 @@ return /******/ (function(modules) { // webpackBootstrap /* 39 */ /***/ function(module, exports, __webpack_require__) { - var util = __webpack_require__(1); - var DOMutil = __webpack_require__(6); - var DataSet = __webpack_require__(7); - var DataView = __webpack_require__(8); - var Component = __webpack_require__(22); - var DataAxis = __webpack_require__(40); - var GraphGroup = __webpack_require__(42); - var Legend = __webpack_require__(43); - - var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items - /** - * This is the constructor of the LineGraph. It requires a Timeline body and options. + * @constructor DataStep + * The class DataStep is an iterator for data for the lineGraph. You provide a start data point and an + * end data point. The class itself determines the best scale (step size) based on the + * provided start Date, end Date, and minimumStep. * - * @param body - * @param options - * @constructor + * If minimumStep is provided, the step size is chosen as close as possible + * to the minimumStep but larger than minimumStep. If minimumStep is not + * provided, the scale is set to 1 DAY. + * The minimumStep should correspond with the onscreen size of about 6 characters + * + * Alternatively, you can set a scale by hand. + * After creation, you can initialize the class by executing first(). Then you + * can iterate from the start date to the end date via next(). You can check if + * the end date is reached with the function hasNext(). After each step, you can + * retrieve the current date via getCurrent(). + * The DataStep has scales ranging from milliseconds, seconds, minutes, hours, + * days, to years. + * + * Version: 1.2 + * + * @param {Date} [start] The start date, for example new Date(2010, 9, 21) + * or new Date(2010, 9, 21, 23, 45, 00) + * @param {Date} [end] The end date + * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds */ - function LineGraph(body, options) { - this.id = util.randomUUID(); - this.body = body; - - this.defaultOptions = { - yAxisOrientation: 'left', - defaultGroup: 'default', - sort: true, - sampling: true, - graphHeight: '400px', - shaded: { - enabled: false, - orientation: 'bottom' // top, bottom - }, - style: 'line', // line, bar - barChart: { - width: 50, - handleOverlap: 'overlap', - align: 'center' // left, center, right - }, - catmullRom: { - enabled: true, - parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5) - alpha: 0.5 - }, - drawPoints: { - enabled: true, - size: 6, - style: 'square' // square, circle - }, - dataAxis: { - showMinorLabels: true, - showMajorLabels: true, - icons: false, - width: '40px', - visible: true, - customRange: { - left: {min:undefined, max:undefined}, - right: {min:undefined, max:undefined} - } - }, - legend: { - enabled: false, - icons: true, - left: { - visible: true, - position: 'top-left' // top/bottom - left,right - }, - right: { - visible: true, - position: 'top-right' // top/bottom - left,right - } - }, - groups: { - visibility: {} - } - }; + function DataStep(start, end, minimumStep, containerHeight, customRange) { + // variables + this.current = 0; - // options is shared by this ItemSet and all its items - this.options = util.extend({}, this.defaultOptions); - this.dom = {}; - this.props = {}; - this.hammer = null; - this.groups = {}; - this.abortedGraphUpdate = false; + this.autoScale = true; + this.stepIndex = 0; + this.step = 1; + this.scale = 1; - var me = this; - this.itemsData = null; // DataSet - this.groupsData = null; // DataSet + this.marginStart; + this.marginEnd; + this.deadSpace = 0; - // listeners for the DataSet of the items - this.itemListeners = { - 'add': function (event, params, senderId) { - me._onAdd(params.items); - }, - 'update': function (event, params, senderId) { - me._onUpdate(params.items); - }, - 'remove': function (event, params, senderId) { - me._onRemove(params.items); - } - }; + this.majorSteps = [1, 2, 5, 10]; + this.minorSteps = [0.25, 0.5, 1, 2]; - // listeners for the DataSet of the groups - this.groupListeners = { - 'add': function (event, params, senderId) { - me._onAddGroups(params.items); - }, - 'update': function (event, params, senderId) { - me._onUpdateGroups(params.items); - }, - 'remove': function (event, params, senderId) { - me._onRemoveGroups(params.items); - } - }; + this.setRange(start, end, minimumStep, containerHeight, customRange); + } - this.items = {}; // object with an Item for every data item - this.selection = []; // list with the ids of all selected nodes - this.lastStart = this.body.range.start; - this.touchParams = {}; // stores properties while dragging - this.svgElements = {}; - this.setOptions(options); - this.groupsUsingDefaultStyles = [0]; - this.body.emitter.on("rangechange",function() { - if (me.lastStart != 0) { - var offset = me.body.range.start - me.lastStart; - var range = me.body.range.end - me.body.range.start; - if (me.width != 0) { - var rangePerPixelInv = me.width/range; - var xOffset = offset * rangePerPixelInv; - me.svg.style.left = (-me.width - xOffset) + "px"; - } - } - }); - this.body.emitter.on("rangechanged", function() { - me.lastStart = me.body.range.start; - me.svg.style.left = util.option.asSize(-me.width); - me._updateGraph.apply(me); - }); + /** + * Set a new range + * If minimumStep is provided, the step size is chosen as close as possible + * to the minimumStep but larger than minimumStep. If minimumStep is not + * provided, the scale is set to 1 DAY. + * The minimumStep should correspond with the onscreen size of about 6 characters + * @param {Number} [start] The start date and time. + * @param {Number} [end] The end date and time. + * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds + */ + DataStep.prototype.setRange = function(start, end, minimumStep, containerHeight, customRange) { + this._start = customRange.min === undefined ? start : customRange.min; + this._end = customRange.max === undefined ? end : customRange.max; - // create the HTML DOM - this._create(); - this.body.emitter.emit("change"); - } + if (start == end) { + this._start = start - 0.75; + this._end = end + 1; + } - LineGraph.prototype = new Component(); + if (this.autoScale) { + this.setMinimumStep(minimumStep, containerHeight); + } + this.setFirst(customRange); + }; /** - * Create the HTML DOM for the ItemSet + * Automatically determine the scale that bests fits the provided minimum step + * @param {Number} [minimumStep] The minimum step size in milliseconds */ - LineGraph.prototype._create = function(){ - var frame = document.createElement('div'); - frame.className = 'LineGraph'; - this.dom.frame = frame; + DataStep.prototype.setMinimumStep = function(minimumStep, containerHeight) { + // round to floor + var size = this._end - this._start; + var safeSize = size * 1.2; + var minimumStepValue = minimumStep * (safeSize / containerHeight); + var orderOfMagnitude = Math.round(Math.log(safeSize)/Math.LN10); - // create svg element for graph drawing. - 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"; - frame.appendChild(this.svg); + var minorStepIdx = -1; + var magnitudefactor = Math.pow(10,orderOfMagnitude); - // data axis - this.options.dataAxis.orientation = 'left'; - this.yAxisLeft = new DataAxis(this.body, this.options.dataAxis, this.svg, this.options.groups); + var start = 0; + if (orderOfMagnitude < 0) { + start = orderOfMagnitude; + } - this.options.dataAxis.orientation = 'right'; - this.yAxisRight = new DataAxis(this.body, this.options.dataAxis, this.svg, this.options.groups); - delete this.options.dataAxis.orientation; + var solutionFound = false; + for (var i = start; Math.abs(i) <= Math.abs(orderOfMagnitude); i++) { + magnitudefactor = Math.pow(10,i); + for (var j = 0; j < this.minorSteps.length; j++) { + var stepSize = magnitudefactor * this.minorSteps[j]; + if (stepSize >= minimumStepValue) { + solutionFound = true; + minorStepIdx = j; + break; + } + } + if (solutionFound == true) { + break; + } + } + this.stepIndex = minorStepIdx; + this.scale = magnitudefactor; + this.step = magnitudefactor * this.minorSteps[minorStepIdx]; + }; - // legends - this.legendLeft = new Legend(this.body, this.options.legend, 'left', this.options.groups); - this.legendRight = new Legend(this.body, this.options.legend, 'right', this.options.groups); - this.show(); - }; /** - * set the options of the LineGraph. the mergeOptions is used for subObjects that have an enabled element. - * @param options + * Round the current date to the first minor date value + * This must be executed once when the current date is set to start Date */ - LineGraph.prototype.setOptions = function(options) { - if (options) { - var fields = ['sampling','defaultGroup','graphHeight','yAxisOrientation','style','barChart','dataAxis','sort','groups']; - util.selectiveDeepExtend(fields, this.options, options); - util.mergeOptions(this.options, options,'catmullRom'); - util.mergeOptions(this.options, options,'drawPoints'); - util.mergeOptions(this.options, options,'shaded'); - util.mergeOptions(this.options, options,'legend'); + DataStep.prototype.setFirst = function(customRange) { + if (customRange === undefined) { + customRange = {}; + } + var niceStart = customRange.min === undefined ? this._start - (this.scale * 2 * this.minorSteps[this.stepIndex]) : customRange.min; + var niceEnd = customRange.max === undefined ? this._end + (this.scale * this.minorSteps[this.stepIndex]) : customRange.max; - if (options.catmullRom) { - if (typeof options.catmullRom == 'object') { - if (options.catmullRom.parametrization) { - if (options.catmullRom.parametrization == 'uniform') { - this.options.catmullRom.alpha = 0; - } - else if (options.catmullRom.parametrization == 'chordal') { - this.options.catmullRom.alpha = 1.0; - } - else { - this.options.catmullRom.parametrization = 'centripetal'; - this.options.catmullRom.alpha = 0.5; - } - } - } - } + this.marginEnd = customRange.max === undefined ? this.roundToMinor(niceEnd) : customRange.max; + this.marginStart = customRange.min === undefined ? this.roundToMinor(niceStart) : customRange.min; + this.deadSpace = this.roundToMinor(niceEnd) - niceEnd + this.roundToMinor(niceStart) - niceStart; + this.marginRange = this.marginEnd - this.marginStart; - if (this.yAxisLeft) { - if (options.dataAxis !== undefined) { - this.yAxisLeft.setOptions(this.options.dataAxis); - this.yAxisRight.setOptions(this.options.dataAxis); - } - } + this.current = this.marginEnd; - if (this.legendLeft) { - if (options.legend !== undefined) { - this.legendLeft.setOptions(this.options.legend); - this.legendRight.setOptions(this.options.legend); - } - } + }; - if (this.groups.hasOwnProperty(UNGROUPED)) { - this.groups[UNGROUPED].setOptions(options); - } + DataStep.prototype.roundToMinor = function(value) { + var rounded = value - (value % (this.scale * this.minorSteps[this.stepIndex])); + if (value % (this.scale * this.minorSteps[this.stepIndex]) > 0.5 * (this.scale * this.minorSteps[this.stepIndex])) { + return rounded + (this.scale * this.minorSteps[this.stepIndex]); } - if (this.dom.frame) { - this._updateGraph(); + else { + return rounded; } - }; + } + /** - * Hide the component from the DOM + * Check if the there is a next step + * @return {boolean} true if the current date has not passed the end date */ - LineGraph.prototype.hide = function() { - // remove the frame containing the items - if (this.dom.frame.parentNode) { - this.dom.frame.parentNode.removeChild(this.dom.frame); - } + DataStep.prototype.hasNext = function () { + return (this.current >= this.marginStart); }; /** - * Show the component in the DOM (when not already visible). - * @return {Boolean} changed + * Do the next step */ - LineGraph.prototype.show = function() { - // show frame containing the items - if (!this.dom.frame.parentNode) { - this.body.dom.center.appendChild(this.dom.frame); + DataStep.prototype.next = function() { + var prev = this.current; + this.current -= this.step; + + // safety mechanism: if current time is still unchanged, move to the end + if (this.current == prev) { + this.current = this._end; } }; - /** - * Set items - * @param {vis.DataSet | null} items + * Do the next step */ - LineGraph.prototype.setItems = function(items) { - var me = this, - ids, - oldItemsData = this.itemsData; - - // replace the dataset - if (!items) { - this.itemsData = null; - } - else if (items instanceof DataSet || items instanceof DataView) { - this.itemsData = items; - } - else { - throw new TypeError('Data must be an instance of DataSet or DataView'); - } - - if (oldItemsData) { - // unsubscribe from old dataset - util.forEach(this.itemListeners, function (callback, event) { - oldItemsData.off(event, callback); - }); - - // remove all drawn items - ids = oldItemsData.getIds(); - this._onRemove(ids); - } + DataStep.prototype.previous = function() { + this.current += this.step; + this.marginEnd += this.step; + this.marginRange = this.marginEnd - this.marginStart; + }; - if (this.itemsData) { - // subscribe to new dataset - var id = this.id; - util.forEach(this.itemListeners, function (callback, event) { - me.itemsData.on(event, callback, id); - }); - // add all new items - ids = this.itemsData.getIds(); - this._onAdd(ids); - } - this._updateUngrouped(); - this._updateGraph(); - this.redraw(); - }; /** - * Set groups - * @param {vis.DataSet} groups + * Get the current datetime + * @return {String} current The current date */ - LineGraph.prototype.setGroups = function(groups) { - var me = this, - ids; + DataStep.prototype.getCurrent = function() { + var toPrecision = '' + Number(this.current).toPrecision(5); + for (var i = toPrecision.length-1; i > 0; i--) { + if (toPrecision[i] == "0") { + toPrecision = toPrecision.slice(0,i); + } + else if (toPrecision[i] == "." || toPrecision[i] == ",") { + toPrecision = toPrecision.slice(0,i); + break; + } + else{ + break; + } + } - // unsubscribe from current dataset - if (this.groupsData) { - util.forEach(this.groupListeners, function (callback, event) { - me.groupsData.unsubscribe(event, callback); - }); + return toPrecision; + }; - // remove all drawn groups - ids = this.groupsData.getIds(); - this.groupsData = null; - this._onRemoveGroups(ids); // note: this will cause a redraw - } - // replace the dataset - if (!groups) { - this.groupsData = null; - } - else if (groups instanceof DataSet || groups instanceof DataView) { - this.groupsData = groups; - } - else { - throw new TypeError('Data must be an instance of DataSet or DataView'); - } - if (this.groupsData) { - // subscribe to new dataset - var id = this.id; - util.forEach(this.groupListeners, function (callback, event) { - me.groupsData.on(event, callback, id); - }); + /** + * Snap a date to a rounded value. + * The snap intervals are dependent on the current scale and step. + * @param {Date} date the date to be snapped. + * @return {Date} snappedDate + */ + DataStep.prototype.snap = function(date) { - // draw all ms - ids = this.groupsData.getIds(); - this._onAddGroups(ids); - } - this._onUpdate(); }; - /** - * Update the datapoints - * @param [ids] - * @private + * Check if the current value is a major value (for example when the step + * is DAY, a major value is each first day of the MONTH) + * @return {boolean} true if current date is major, else false. */ - LineGraph.prototype._onUpdate = function(ids) { - this._updateUngrouped(); - this._updateAllGroupData(); - this._updateGraph(); - this.redraw(); + DataStep.prototype.isMajor = function() { + return (this.current % (this.scale * this.majorSteps[this.stepIndex]) == 0); }; - LineGraph.prototype._onAdd = function (ids) {this._onUpdate(ids);}; - LineGraph.prototype._onRemove = function (ids) {this._onUpdate(ids);}; - LineGraph.prototype._onUpdateGroups = function (groupIds) { - for (var i = 0; i < groupIds.length; i++) { - var group = this.groupsData.get(groupIds[i]); - this._updateGroup(group, groupIds[i]); - } - this._updateGraph(); - this.redraw(); - }; - LineGraph.prototype._onAddGroups = function (groupIds) {this._onUpdateGroups(groupIds);}; + module.exports = DataStep; - LineGraph.prototype._onRemoveGroups = function (groupIds) { - for (var i = 0; i < groupIds.length; i++) { - if (!this.groups.hasOwnProperty(groupIds[i])) { - if (this.groups[groupIds[i]].options.yAxisOrientation == 'right') { - this.yAxisRight.removeGroup(groupIds[i]); - this.legendRight.removeGroup(groupIds[i]); - this.legendRight.redraw(); - } - else { - this.yAxisLeft.removeGroup(groupIds[i]); - this.legendLeft.removeGroup(groupIds[i]); - this.legendLeft.redraw(); - } - delete this.groups[groupIds[i]]; - } - } - this._updateUngrouped(); - this._updateGraph(); - this.redraw(); - }; + +/***/ }, +/* 40 */ +/***/ function(module, exports, __webpack_require__) { + + var util = __webpack_require__(1); + var DOMutil = __webpack_require__(6); + var Component = __webpack_require__(22); + var DataStep = __webpack_require__(39); /** - * update a group object - * - * @param group - * @param groupId - * @private + * A horizontal time axis + * @param {Object} [options] See DataAxis.setOptions for the available + * options. + * @constructor DataAxis + * @extends Component + * @param body */ - LineGraph.prototype._updateGroup = function (group, groupId) { - if (!this.groups.hasOwnProperty(groupId)) { - this.groups[groupId] = new GraphGroup(group, groupId, this.options, this.groupsUsingDefaultStyles); - if (this.groups[groupId].options.yAxisOrientation == 'right') { - this.yAxisRight.addGroup(groupId, this.groups[groupId]); - this.legendRight.addGroup(groupId, this.groups[groupId]); - } - else { - this.yAxisLeft.addGroup(groupId, this.groups[groupId]); - this.legendLeft.addGroup(groupId, this.groups[groupId]); - } - } - else { - this.groups[groupId].update(group); - if (this.groups[groupId].options.yAxisOrientation == 'right') { - this.yAxisRight.updateGroup(groupId, this.groups[groupId]); - this.legendRight.updateGroup(groupId, this.groups[groupId]); - } - else { - this.yAxisLeft.updateGroup(groupId, this.groups[groupId]); - this.legendLeft.updateGroup(groupId, this.groups[groupId]); + function DataAxis (body, options, svg, linegraphOptions) { + this.id = util.randomUUID(); + this.body = body; + + this.defaultOptions = { + orientation: 'left', // supported: 'left', 'right' + showMinorLabels: true, + showMajorLabels: true, + icons: true, + majorLinesOffset: 7, + minorLinesOffset: 4, + labelOffsetX: 10, + labelOffsetY: 2, + iconWidth: 20, + width: '40px', + visible: true, + customRange: { + left: {min:undefined, max:undefined}, + right: {min:undefined, max:undefined} } + }; + + this.linegraphOptions = linegraphOptions; + this.linegraphSVG = svg; + this.props = {}; + this.DOMelements = { // dynamic elements + lines: {}, + labels: {} + }; + + this.dom = {}; + + this.range = {start:0, end:0}; + + this.options = util.extend({}, this.defaultOptions); + this.conversionFactor = 1; + + this.setOptions(options); + this.width = Number(('' + this.options.width).replace("px","")); + this.minWidth = this.width; + this.height = this.linegraphSVG.offsetHeight; + + this.stepPixels = 25; + this.stepPixelsForced = 25; + this.lineOffset = 0; + this.master = true; + this.svgElements = {}; + + + this.groups = {}; + this.amountOfGroups = 0; + + // create the HTML DOM + this._create(); + } + + DataAxis.prototype = new Component(); + + + + DataAxis.prototype.addGroup = function(label, graphOptions) { + if (!this.groups.hasOwnProperty(label)) { + this.groups[label] = graphOptions; } - this.legendLeft.redraw(); - this.legendRight.redraw(); + this.amountOfGroups += 1; }; - LineGraph.prototype._updateAllGroupData = function () { - if (this.itemsData != null) { - var groupsContent = {}; - var groupId; - for (groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - groupsContent[groupId] = []; - } - } - for (var itemId in this.itemsData._data) { - if (this.itemsData._data.hasOwnProperty(itemId)) { - var item = this.itemsData._data[itemId]; - item.x = util.convert(item.x,"Date"); - groupsContent[item.group].push(item); - } - } - for (groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - this.groups[groupId].setItems(groupsContent[groupId]); - } - } + DataAxis.prototype.updateGroup = function(label, graphOptions) { + this.groups[label] = graphOptions; + }; + + DataAxis.prototype.removeGroup = function(label) { + if (this.groups.hasOwnProperty(label)) { + delete this.groups[label]; + this.amountOfGroups -= 1; } }; - /** - * Create or delete the group holding all ungrouped items. This group is used when - * there are no groups specified. This anonymous group is called 'graph'. - * @protected - */ - LineGraph.prototype._updateUngrouped = function() { - if (this.itemsData != null) { - // var t0 = new Date(); - var group = {id: UNGROUPED, content: this.options.defaultGroup}; - this._updateGroup(group, UNGROUPED); - var ungroupedCounter = 0; - if (this.itemsData) { - for (var itemId in this.itemsData._data) { - if (this.itemsData._data.hasOwnProperty(itemId)) { - var item = this.itemsData._data[itemId]; - if (item != undefined) { - if (item.hasOwnProperty('group')) { - if (item.group === undefined) { - item.group = UNGROUPED; - } - } - else { - item.group = UNGROUPED; - } - ungroupedCounter = item.group == UNGROUPED ? ungroupedCounter + 1 : ungroupedCounter; - } - } - } + + DataAxis.prototype.setOptions = function (options) { + if (options) { + var redraw = false; + if (this.options.orientation != options.orientation && options.orientation !== undefined) { + redraw = true; } + var fields = [ + 'orientation', + 'showMinorLabels', + 'showMajorLabels', + 'icons', + 'majorLinesOffset', + 'minorLinesOffset', + 'labelOffsetX', + 'labelOffsetY', + 'iconWidth', + 'width', + 'visible', + 'customRange' + ]; + util.selectiveExtend(fields, this.options, options); - if (ungroupedCounter == 0) { - delete this.groups[UNGROUPED]; - this.legendLeft.removeGroup(UNGROUPED); - this.legendRight.removeGroup(UNGROUPED); - this.yAxisLeft.removeGroup(UNGROUPED); - this.yAxisRight.removeGroup(UNGROUPED); + this.minWidth = Number(('' + this.options.width).replace("px","")); + + if (redraw == true && this.dom.frame) { + this.hide(); + this.show(); } } - else { - delete this.groups[UNGROUPED]; - this.legendLeft.removeGroup(UNGROUPED); - this.legendRight.removeGroup(UNGROUPED); - this.yAxisLeft.removeGroup(UNGROUPED); - this.yAxisRight.removeGroup(UNGROUPED); - } - - this.legendLeft.redraw(); - this.legendRight.redraw(); }; /** - * Redraw the component, mandatory function - * @return {boolean} Returns true if the component is resized + * Create the HTML DOM for the DataAxis */ - LineGraph.prototype.redraw = function() { - var resized = false; + DataAxis.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.svg.style.height = ('' + this.options.graphHeight).replace('px','') + 'px'; - if (this.lastWidth === undefined && this.width || this.lastWidth != this.width) { - resized = true; - } - // check if this component is resized - resized = this._isResized() || resized; - // check whether zoomed (in that case we need to re-stack everything) - var visibleInterval = this.body.range.end - this.body.range.start; - var zoomed = (visibleInterval != this.lastVisibleInterval) || (this.width != this.lastWidth); - this.lastVisibleInterval = visibleInterval; - this.lastWidth = this.width; + this.dom.lineContainer = document.createElement('div'); + this.dom.lineContainer.style.width = '100%'; + this.dom.lineContainer.style.height = this.height; - // calculate actual size and position - this.width = this.dom.frame.offsetWidth; + // create svg element for graph drawing. + 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); + }; - // the svg element is three times as big as the width, this allows for fully dragging left and right - // without reloading the graph. the controls for this are bound to events in the constructor - if (resized == true) { - this.svg.style.width = util.option.asSize(3*this.width); - this.svg.style.left = util.option.asSize(-this.width); + DataAxis.prototype._redrawGroupIcons = function () { + DOMutil.prepareElements(this.svgElements); + + var x; + var iconWidth = this.options.iconWidth; + var iconHeight = 15; + var iconOffset = 4; + var y = iconOffset + 0.5 * iconHeight; + + if (this.options.orientation == 'left') { + x = iconOffset; } - if (zoomed == true || this.abortedGraphUpdate == true) { - this._updateGraph(); + else { + x = this.width - iconWidth - iconOffset; } - this.legendLeft.redraw(); - this.legendRight.redraw(); + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { + this.groups[groupId].drawIcon(x, y, this.svgElements, this.svg, iconWidth, iconHeight); + y += iconHeight + iconOffset; + } + } + } - return resized; + DOMutil.cleanupElements(this.svgElements); }; /** - * Update and redraw the graph. - * + * Create the HTML DOM for the DataAxis */ - LineGraph.prototype._updateGraph = function () { - // reset the svg elements - DOMutil.prepareElements(this.svgElements); - if (this.width != 0 && this.itemsData != null) { - var group, i; - var preprocessedGroupData = {}; - var processedGroupData = {}; - var groupRanges = {}; - var changeCalled = false; - - // getting group Ids - var groupIds = []; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - group = this.groups[groupId]; - if (group.visible == true && (this.options.groups.visibility[groupId] === undefined || this.options.groups.visibility[groupId] == true)) { - groupIds.push(groupId); - } - } + DataAxis.prototype.show = function() { + if (!this.dom.frame.parentNode) { + if (this.options.orientation == 'left') { + this.body.dom.left.appendChild(this.dom.frame); } - if (groupIds.length > 0) { - // this is the range of the SVG canvas - var minDate = this.body.util.toGlobalTime(- this.body.domProps.root.width); - var maxDate = this.body.util.toGlobalTime(2 * this.body.domProps.root.width); - var groupsData = {}; - // fill groups data - this._getRelevantData(groupIds, groupsData, minDate, maxDate); - // we transform the X coordinates to detect collisions - for (i = 0; i < groupIds.length; i++) { - preprocessedGroupData[groupIds[i]] = this._convertXcoordinates(groupsData[groupIds[i]]); - } - // now all needed data has been collected we start the processing. - this._getYRanges(groupIds, preprocessedGroupData, groupRanges); - - // update the Y axis first, we use this data to draw at the correct Y points - // changeCalled is required to clean the SVG on a change emit. - changeCalled = this._updateYAxis(groupIds, groupRanges); - if (changeCalled == true) { - DOMutil.cleanupElements(this.svgElements); - this.abortedGraphUpdate = true; - this.body.emitter.emit("change"); - return; - } - this.abortedGraphUpdate = false; - - // With the yAxis scaled correctly, use this to get the Y values of the points. - for (i = 0; i < groupIds.length; i++) { - group = this.groups[groupIds[i]]; - processedGroupData[groupIds[i]] = this._convertYcoordinates(groupsData[groupIds[i]], group); - } + else { + this.body.dom.right.appendChild(this.dom.frame); + } + } + if (!this.dom.lineContainer.parentNode) { + this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer); + } + }; - // draw the groups - for (i = 0; i < groupIds.length; i++) { - group = this.groups[groupIds[i]]; - if (group.options.style == 'line') { - this._drawLineGraph(processedGroupData[groupIds[i]], group); - } - } - this._drawBarGraphs(groupIds, processedGroupData); - } + /** + * Create the HTML DOM for the DataAxis + */ + DataAxis.prototype.hide = function() { + if (this.dom.frame.parentNode) { + this.dom.frame.parentNode.removeChild(this.dom.frame); } - // cleanup unused svg elements - DOMutil.cleanupElements(this.svgElements); + if (this.dom.lineContainer.parentNode) { + this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer); + } }; + /** + * Set a range (start and end) + * @param end + * @param start + * @param end + */ + DataAxis.prototype.setRange = function (start, end) { + this.range.start = start; + this.range.end = end; + }; - LineGraph.prototype._getRelevantData = function (groupIds, groupsData, minDate, maxDate) { - // first select and preprocess the data from the datasets. - // the groups have their preselection of data, we now loop over this data to see - // what data we need to draw. Sorted data is much faster. - // more optimization is possible by doing the sampling before and using the binary search - // to find the end date to determine the increment. - var group, i, j, item; - if (groupIds.length > 0) { - for (i = 0; i < groupIds.length; i++) { - group = this.groups[groupIds[i]]; - groupsData[groupIds[i]] = []; - var dataContainer = groupsData[groupIds[i]]; - // optimization for sorted data - if (group.options.sort == true) { - var guess = Math.max(0, util.binarySearchGeneric(group.itemsData, minDate, 'x', 'before')); - for (j = guess; j < group.itemsData.length; j++) { - item = group.itemsData[j]; - if (item !== undefined) { - if (item.x > maxDate) { - dataContainer.push(item); - break; - } - else { - dataContainer.push(item); - } - } - } - } - else { - for (j = 0; j < group.itemsData.length; j++) { - item = group.itemsData[j]; - if (item !== undefined) { - if (item.x > minDate && item.x < maxDate) { - dataContainer.push(item); - } - } - } + /** + * Repaint the component + * @return {boolean} Returns true if the component is resized + */ + DataAxis.prototype.redraw = function () { + var changeCalled = false; + var activeGroups = 0; + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { + activeGroups++; } } } + if (this.amountOfGroups == 0 || activeGroups == 0) { + this.hide(); + } + else { + this.show(); + this.height = Number(this.linegraphSVG.style.height.replace("px","")); + // svg offsetheight did not work in firefox and explorer... - this._applySampling(groupIds, groupsData); - }; + this.dom.lineContainer.style.height = this.height + 'px'; + this.width = this.options.visible == true ? Number(('' + this.options.width).replace("px","")) : 0; - LineGraph.prototype._applySampling = function (groupIds, groupsData) { - var group; - if (groupIds.length > 0) { - for (var i = 0; i < groupIds.length; i++) { - group = this.groups[groupIds[i]]; - if (group.options.sampling == true) { - var dataContainer = groupsData[groupIds[i]]; - if (dataContainer.length > 0) { - var increment = 1; - var amountOfPoints = dataContainer.length; + var props = this.props; + var frame = this.dom.frame; - // the global screen is used because changing the width of the yAxis may affect the increment, resulting in an endless loop - // of width changing of the yAxis. - var xDistance = this.body.util.toGlobalScreen(dataContainer[dataContainer.length - 1].x) - this.body.util.toGlobalScreen(dataContainer[0].x); - var pointsPerPixel = amountOfPoints / xDistance; - increment = Math.min(Math.ceil(0.2 * amountOfPoints), Math.max(1, Math.round(pointsPerPixel))); + // update classname + frame.className = 'dataaxis'; - var sampledData = []; - for (var j = 0; j < amountOfPoints; j += increment) { - sampledData.push(dataContainer[j]); + // calculate character width and height + this._calculateCharSize(); - } - groupsData[groupIds[i]] = sampledData; - } - } + var orientation = this.options.orientation; + var showMinorLabels = this.options.showMinorLabels; + var showMajorLabels = this.options.showMajorLabels; + + // determine the width and height of the elemens for the axis + props.minorLabelHeight = showMinorLabels ? props.minorCharHeight : 0; + props.majorLabelHeight = showMajorLabels ? props.majorCharHeight : 0; + + props.minorLineWidth = this.body.dom.backgroundHorizontal.offsetWidth - this.lineOffset - this.width + 2 * this.options.minorLinesOffset; + props.minorLineHeight = 1; + props.majorLineWidth = this.body.dom.backgroundHorizontal.offsetWidth - this.lineOffset - this.width + 2 * this.options.majorLinesOffset; + props.majorLineHeight = 1; + + // take frame offline while updating (is almost twice as fast) + if (orientation == 'left') { + frame.style.top = '0'; + frame.style.left = '0'; + frame.style.bottom = ''; + frame.style.width = this.width + 'px'; + frame.style.height = this.height + "px"; + } + else { // right + frame.style.top = ''; + frame.style.bottom = '0'; + frame.style.left = '0'; + frame.style.width = this.width + 'px'; + frame.style.height = this.height + "px"; + } + changeCalled = this._redrawLabels(); + if (this.options.icons == true) { + this._redrawGroupIcons(); } } + return changeCalled; }; - LineGraph.prototype._getYRanges = function (groupIds, groupsData, groupRanges) { - var groupData, group, i,j; - var barCombinedDataLeft = []; - var barCombinedDataRight = []; - var barCombinedData; - if (groupIds.length > 0) { - for (i = 0; i < groupIds.length; i++) { - groupData = groupsData[groupIds[i]]; - if (groupData.length > 0) { - group = this.groups[groupIds[i]]; - if (group.options.style == 'line' || group.options.barChart.handleOverlap != "stack") { - var yMin = groupData[0].y; - var yMax = groupData[0].y; - for (j = 0; j < groupData.length; j++) { - yMin = yMin > groupData[j].y ? groupData[j].y : yMin; - yMax = yMax < groupData[j].y ? groupData[j].y : yMax; - } - groupRanges[groupIds[i]] = {min: yMin, max: yMax, yAxisOrientation: group.options.yAxisOrientation}; - } - else if (group.options.style == 'bar') { - if (group.options.yAxisOrientation == 'left') { - barCombinedData = barCombinedDataLeft; - } - else { - barCombinedData = barCombinedDataRight; - } - - groupRanges[groupIds[i]] = {min: 0, max: 0, yAxisOrientation: group.options.yAxisOrientation, ignore: true}; + /** + * Repaint major and minor text labels and vertical grid lines + * @private + */ + DataAxis.prototype._redrawLabels = function () { + DOMutil.prepareElements(this.DOMelements.lines); + DOMutil.prepareElements(this.DOMelements.labels); - // combine data - for (j = 0; j < groupData.length; j++) { - barCombinedData.push({ - x: groupData[j].x, - y: groupData[j].y, - groupId: groupIds[i] - }); - } - } - } - } + var orientation = this.options['orientation']; - var intersections; - if (barCombinedDataLeft.length > 0) { - // sort by time and by group - barCombinedDataLeft.sort(function (a, b) { - if (a.x == b.x) { - return a.groupId - b.groupId; - } else { - return a.x - b.x; - } - }); - intersections = {}; - this._getDataIntersections(intersections, barCombinedDataLeft); - groupRanges["__barchartLeft"] = this._getStackedBarYRange(intersections, barCombinedDataLeft); - groupRanges["__barchartLeft"].yAxisOrientation = "left"; - groupIds.push("__barchartLeft"); - } - if (barCombinedDataRight.length > 0) { - // sort by time and by group - barCombinedDataRight.sort(function (a, b) { - if (a.x == b.x) { - return a.groupId - b.groupId; - } else { - return a.x - b.x; - } - }); - intersections = {}; - this._getDataIntersections(intersections, barCombinedDataRight); - groupRanges["__barchartRight"] = this._getStackedBarYRange(intersections, barCombinedDataRight); - groupRanges["__barchartRight"].yAxisOrientation = "right"; - groupIds.push("__barchartRight"); - } - } - }; + // calculate range and step (step such that we have space for 7 characters per label) + var minimumStep = this.master ? this.props.majorCharHeight || 10 : this.stepPixelsForced; + var step = new DataStep(this.range.start, this.range.end, minimumStep, this.dom.frame.offsetHeight, this.options.customRange[this.options.orientation]); + this.step = step; + // get the distance in pixels for a step + // dead space is space that is "left over" after a step + var stepPixels = (this.dom.frame.offsetHeight - (step.deadSpace * (this.dom.frame.offsetHeight / step.marginRange))) / (((step.marginRange - step.deadSpace) / step.step)); + this.stepPixels = stepPixels; - LineGraph.prototype._getStackedBarYRange = function (intersections, combinedData) { - var key; - var yMin = combinedData[0].y; - var yMax = combinedData[0].y; - for (var i = 0; i < combinedData.length; i++) { - key = combinedData[i].x; - if (intersections[key] === undefined) { - yMin = yMin > combinedData[i].y ? combinedData[i].y : yMin; - yMax = yMax < combinedData[i].y ? combinedData[i].y : yMax; - } - else { - intersections[key].accumulated += combinedData[i].y; + var amountOfSteps = this.height / stepPixels; + var stepDifference = 0; + + if (this.master == false) { + stepPixels = this.stepPixelsForced; + stepDifference = Math.round((this.dom.frame.offsetHeight / stepPixels) - amountOfSteps); + for (var i = 0; i < 0.5 * stepDifference; i++) { + step.previous(); } + amountOfSteps = this.height / stepPixels; } - for (var xpos in intersections) { - if (intersections.hasOwnProperty(xpos)) { - yMin = yMin > intersections[xpos].accumulated ? intersections[xpos].accumulated : yMin; - yMax = yMax < intersections[xpos].accumulated ? intersections[xpos].accumulated : yMax; - } + else { + amountOfSteps += 0.25; } - return {min: yMin, max: yMax}; - }; + this.valueAtZero = step.marginEnd; + var marginStartPos = 0; - /** - * this sets the Y ranges for the Y axis. It also determines which of the axis should be shown or hidden. - * @param {Array} groupIds - * @param {Object} groupRanges - * @private - */ - LineGraph.prototype._updateYAxis = function (groupIds, groupRanges) { - var changeCalled = false; - var yAxisLeftUsed = false; - var yAxisRightUsed = false; - var minLeft = 1e9, minRight = 1e9, maxLeft = -1e9, maxRight = -1e9, minVal, maxVal; - // if groups are present - if (groupIds.length > 0) { - for (var i = 0; i < groupIds.length; i++) { - if (groupRanges.hasOwnProperty(groupIds[i])) { - if (groupRanges[groupIds[i]].ignore !== true) { - minVal = groupRanges[groupIds[i]].min; - maxVal = groupRanges[groupIds[i]].max; + // do not draw the first label + var max = 1; - if (groupRanges[groupIds[i]].yAxisOrientation == 'left') { - yAxisLeftUsed = true; - minLeft = minLeft > minVal ? minVal : minLeft; - maxLeft = maxLeft < maxVal ? maxVal : maxLeft; - } - else { - yAxisRightUsed = true; - minRight = minRight > minVal ? minVal : minRight; - maxRight = maxRight < maxVal ? maxVal : maxRight; - } - } - } + this.maxLabelSize = 0; + var y = 0; + while (max < Math.round(amountOfSteps)) { + step.next(); + y = Math.round(max * stepPixels); + marginStartPos = max * stepPixels; + var isMajor = step.isMajor(); + + if (this.options['showMinorLabels'] && isMajor == false || this.master == false && this.options['showMinorLabels'] == true) { + this._redrawLabel(y - 2, step.getCurrent(), orientation, 'yAxis minor', this.props.minorCharHeight); } - if (yAxisLeftUsed == true) { - this.yAxisLeft.setRange(minLeft, maxLeft); + if (isMajor && this.options['showMajorLabels'] && this.master == true || + this.options['showMinorLabels'] == false && this.master == false && isMajor == true) { + if (y >= 0) { + this._redrawLabel(y - 2, step.getCurrent(), orientation, 'yAxis major', this.props.majorCharHeight); + } + this._redrawLine(y, orientation, 'grid horizontal major', this.options.majorLinesOffset, this.props.majorLineWidth); } - if (yAxisRightUsed == true) { - this.yAxisRight.setRange(minRight, maxRight); + else { + this._redrawLine(y, orientation, 'grid horizontal minor', this.options.minorLinesOffset, this.props.minorLineWidth); } - } - changeCalled = this._toggleAxisVisiblity(yAxisLeftUsed , this.yAxisLeft) || changeCalled; - changeCalled = this._toggleAxisVisiblity(yAxisRightUsed, this.yAxisRight) || changeCalled; + max++; + } - if (yAxisRightUsed == true && yAxisLeftUsed == true) { - this.yAxisLeft.drawIcons = true; - this.yAxisRight.drawIcons = true; + if (this.master == false) { + this.conversionFactor = y / (this.valueAtZero - step.current); } else { - this.yAxisLeft.drawIcons = false; - this.yAxisRight.drawIcons = false; + this.conversionFactor = this.dom.frame.offsetHeight / step.marginRange; } - this.yAxisRight.master = !yAxisLeftUsed; - - if (this.yAxisRight.master == false) { - if (yAxisRightUsed == true) {this.yAxisLeft.lineOffset = this.yAxisRight.width;} - else {this.yAxisLeft.lineOffset = 0;} - - changeCalled = this.yAxisLeft.redraw() || changeCalled; - this.yAxisRight.stepPixelsForced = this.yAxisLeft.stepPixels; - changeCalled = this.yAxisRight.redraw() || changeCalled; + var offset = this.options.icons == true ? this.options.iconWidth + this.options.labelOffsetX + 15 : this.options.labelOffsetX + 15; + // this will resize the yAxis to accomodate the labels. + if (this.maxLabelSize > (this.width - offset) && this.options.visible == true) { + this.width = this.maxLabelSize + offset; + this.options.width = this.width + "px"; + DOMutil.cleanupElements(this.DOMelements.lines); + DOMutil.cleanupElements(this.DOMelements.labels); + this.redraw(); + return true; + } + // this will resize the yAxis if it is too big for the labels. + else if (this.maxLabelSize < (this.width - offset) && this.options.visible == true && this.width > this.minWidth) { + this.width = Math.max(this.minWidth,this.maxLabelSize + offset); + this.options.width = this.width + "px"; + DOMutil.cleanupElements(this.DOMelements.lines); + DOMutil.cleanupElements(this.DOMelements.labels); + this.redraw(); + return true; } else { - changeCalled = this.yAxisRight.redraw() || changeCalled; + DOMutil.cleanupElements(this.DOMelements.lines); + DOMutil.cleanupElements(this.DOMelements.labels); + return false; } + }; - // clean the accumulated lists - if (groupIds.indexOf("__barchartLeft") != -1) { - groupIds.splice(groupIds.indexOf("__barchartLeft"),1); + DataAxis.prototype.convertValue = function (value) { + var invertedValue = this.valueAtZero - value; + var convertedValue = invertedValue * this.conversionFactor; + return convertedValue; + }; + + /** + * Create a label for the axis at position x + * @private + * @param y + * @param text + * @param orientation + * @param className + * @param characterHeight + */ + DataAxis.prototype._redrawLabel = function (y, text, orientation, className, characterHeight) { + // reuse redundant label + var label = DOMutil.getDOMElement('div',this.DOMelements.labels, this.dom.frame); //this.dom.redundant.labels.shift(); + label.className = className; + label.innerHTML = text; + if (orientation == 'left') { + label.style.left = '-' + this.options.labelOffsetX + 'px'; + label.style.textAlign = "right"; } - if (groupIds.indexOf("__barchartRight") != -1) { - groupIds.splice(groupIds.indexOf("__barchartRight"),1); + else { + label.style.right = '-' + this.options.labelOffsetX + 'px'; + label.style.textAlign = "left"; } - return changeCalled; + label.style.top = y - 0.5 * characterHeight + this.options.labelOffsetY + 'px'; + + text += ''; + + var largestWidth = Math.max(this.props.majorCharWidth,this.props.minorCharWidth); + if (this.maxLabelSize < text.length * largestWidth) { + this.maxLabelSize = text.length * largestWidth; + } }; /** - * This shows or hides the Y axis if needed. If there is a change, the changed event is emitted by the updateYAxis function - * - * @param {boolean} axisUsed - * @returns {boolean} - * @private - * @param axis + * Create a minor line for the axis at position y + * @param y + * @param orientation + * @param className + * @param offset + * @param width */ - LineGraph.prototype._toggleAxisVisiblity = function (axisUsed, axis) { - var changed = false; - if (axisUsed == false) { - if (axis.dom.frame.parentNode) { - axis.hide(); - changed = true; + DataAxis.prototype._redrawLine = function (y, orientation, className, offset, width) { + if (this.master == true) { + var line = DOMutil.getDOMElement('div',this.DOMelements.lines, this.dom.lineContainer);//this.dom.redundant.lines.shift(); + line.className = className; + line.innerHTML = ''; + + if (orientation == 'left') { + line.style.left = (this.width - offset) + 'px'; } - } - else { - if (!axis.dom.frame.parentNode) { - axis.show(); - changed = true; + else { + line.style.right = (this.width - offset) + 'px'; } + + line.style.width = width + 'px'; + line.style.top = y + 'px'; } - return changed; }; + + + /** - * draw a bar graph - * - * @param groupIds - * @param processedGroupData - */ - LineGraph.prototype._drawBarGraphs = function (groupIds, processedGroupData) { - var combinedData = []; - var intersections = {}; - var coreDistance; - var key, drawData; - var group; - var i,j; - var barPoints = 0; - - // combine all barchart data - for (i = 0; i < groupIds.length; i++) { - group = this.groups[groupIds[i]]; - if (group.options.style == 'bar') { - if (group.visible == true && (this.options.groups.visibility[groupIds[i]] === undefined || this.options.groups.visibility[groupIds[i]] == true)) { - for (j = 0; j < processedGroupData[groupIds[i]].length; j++) { - combinedData.push({ - x: processedGroupData[groupIds[i]][j].x, - y: processedGroupData[groupIds[i]][j].y, - groupId: groupIds[i] - }); - barPoints += 1; - } - } - } - } - - if (barPoints == 0) {return;} + * Determine the size of text on the axis (both major and minor axis). + * The size is calculated only once and then cached in this.props. + * @private + */ + DataAxis.prototype._calculateCharSize = function () { + // determine the char width and height on the minor axis + if (!('minorCharHeight' in this.props)) { + var textMinor = document.createTextNode('0'); + var measureCharMinor = document.createElement('DIV'); + measureCharMinor.className = 'yAxis minor measure'; + measureCharMinor.appendChild(textMinor); + this.dom.frame.appendChild(measureCharMinor); - // sort by time and by group - combinedData.sort(function (a, b) { - if (a.x == b.x) { - return a.groupId - b.groupId; - } else { - return a.x - b.x; - } - }); + this.props.minorCharHeight = measureCharMinor.clientHeight; + this.props.minorCharWidth = measureCharMinor.clientWidth; - // get intersections - this._getDataIntersections(intersections, combinedData); + this.dom.frame.removeChild(measureCharMinor); + } - // plot barchart - for (i = 0; i < combinedData.length; i++) { - group = this.groups[combinedData[i].groupId]; - var minWidth = 0.1 * group.options.barChart.width; + if (!('majorCharHeight' in this.props)) { + var textMajor = document.createTextNode('0'); + var measureCharMajor = document.createElement('DIV'); + measureCharMajor.className = 'yAxis major measure'; + measureCharMajor.appendChild(textMajor); + this.dom.frame.appendChild(measureCharMajor); - key = combinedData[i].x; - var heightOffset = 0; - if (intersections[key] === undefined) { - if (i+1 < combinedData.length) {coreDistance = Math.abs(combinedData[i+1].x - key);} - if (i > 0) {coreDistance = Math.min(coreDistance,Math.abs(combinedData[i-1].x - key));} - drawData = this._getSafeDrawData(coreDistance, group, minWidth); - } - else { - var nextKey = i + (intersections[key].amount - intersections[key].resolved); - var prevKey = i - (intersections[key].resolved + 1); - if (nextKey < combinedData.length) {coreDistance = Math.abs(combinedData[nextKey].x - key);} - if (prevKey > 0) {coreDistance = Math.min(coreDistance,Math.abs(combinedData[prevKey].x - key));} - drawData = this._getSafeDrawData(coreDistance, group, minWidth); - intersections[key].resolved += 1; + this.props.majorCharHeight = measureCharMajor.clientHeight; + this.props.majorCharWidth = measureCharMajor.clientWidth; - if (group.options.barChart.handleOverlap == 'stack') { - heightOffset = intersections[key].accumulated; - intersections[key].accumulated += group.zeroPosition - combinedData[i].y; - } - else if (group.options.barChart.handleOverlap == 'sideBySide') { - drawData.width = drawData.width / intersections[key].amount; - drawData.offset += (intersections[key].resolved) * drawData.width - (0.5*drawData.width * (intersections[key].amount+1)); - if (group.options.barChart.align == 'left') {drawData.offset -= 0.5*drawData.width;} - else if (group.options.barChart.align == 'right') {drawData.offset += 0.5*drawData.width;} - } - } - DOMutil.drawBar(combinedData[i].x + drawData.offset, combinedData[i].y - heightOffset, drawData.width, group.zeroPosition - combinedData[i].y, group.className + ' bar', this.svgElements, this.svg); - // draw points - if (group.options.drawPoints.enabled == true) { - DOMutil.drawPoint(combinedData[i].x + drawData.offset, combinedData[i].y - heightOffset, group, this.svgElements, this.svg); - } + this.dom.frame.removeChild(measureCharMajor); } }; /** - * Fill the intersections object with counters of how many datapoints share the same x coordinates - * @param intersections - * @param combinedData - * @private + * Snap a date to a rounded value. + * The snap intervals are dependent on the current scale and step. + * @param {Date} date the date to be snapped. + * @return {Date} snappedDate */ - LineGraph.prototype._getDataIntersections = function (intersections, combinedData) { - // get intersections - var coreDistance; - for (var i = 0; i < combinedData.length; i++) { - if (i + 1 < combinedData.length) { - coreDistance = Math.abs(combinedData[i + 1].x - combinedData[i].x); - } - if (i > 0) { - coreDistance = Math.min(coreDistance, Math.abs(combinedData[i - 1].x - combinedData[i].x)); - } - if (coreDistance == 0) { - if (intersections[combinedData[i].x] === undefined) { - intersections[combinedData[i].x] = {amount: 0, resolved: 0, accumulated: 0}; - } - intersections[combinedData[i].x].amount += 1; - } - } + DataAxis.prototype.snap = function(date) { + return this.step.snap(date); }; + module.exports = DataAxis; + + +/***/ }, +/* 41 */ +/***/ function(module, exports, __webpack_require__) { + + var util = __webpack_require__(1); + var DOMutil = __webpack_require__(6); + /** - * Get the width and offset for bargraphs based on the coredistance between datapoints - * - * @param coreDistance - * @param group - * @param minWidth - * @returns {{width: Number, offset: Number}} - * @private + * @constructor Group + * @param {Number | String} groupId + * @param {Object} data + * @param {ItemSet} itemSet */ - LineGraph.prototype._getSafeDrawData = function (coreDistance, group, minWidth) { - var width, offset; - if (coreDistance < group.options.barChart.width && coreDistance > 0) { - width = coreDistance < minWidth ? minWidth : coreDistance; + function GraphGroup (group, groupId, options, groupsUsingDefaultStyles) { + this.id = groupId; + var fields = ['sampling','style','sort','yAxisOrientation','barChart','drawPoints','shaded','catmullRom'] + this.options = util.selectiveBridgeObject(fields,options); + this.usingDefaultStyle = group.className === undefined; + this.groupsUsingDefaultStyles = groupsUsingDefaultStyles; + this.zeroPosition = 0; + this.update(group); + if (this.usingDefaultStyle == true) { + this.groupsUsingDefaultStyles[0] += 1; + } + this.itemsData = []; + this.visible = group.visible === undefined ? true : group.visible; + } - offset = 0; // recalculate offset with the new width; - if (group.options.barChart.align == 'left') { - offset -= 0.5 * coreDistance; - } - else if (group.options.barChart.align == 'right') { - offset += 0.5 * coreDistance; + GraphGroup.prototype.setItems = function(items) { + if (items != null) { + this.itemsData = items; + if (this.options.sort == true) { + this.itemsData.sort(function (a,b) {return a.x - b.x;}) } } else { - // default settings - width = group.options.barChart.width; - offset = 0; - if (group.options.barChart.align == 'left') { - offset -= 0.5 * group.options.barChart.width; - } - else if (group.options.barChart.align == 'right') { - offset += 0.5 * group.options.barChart.width; - } + this.itemsData = []; } - - return {width: width, offset: offset}; }; + GraphGroup.prototype.setZeroPosition = function(pos) { + this.zeroPosition = pos; + }; - /** - * draw a line graph - * - * @param dataset - * @param group - */ - LineGraph.prototype._drawLineGraph = function (dataset, group) { - if (dataset != null) { - if (dataset.length > 0) { - var path, d; - var svgHeight = Number(this.svg.style.height.replace("px","")); - path = DOMutil.getSVGElement('path', this.svgElements, this.svg); - path.setAttributeNS(null, "class", group.className); + GraphGroup.prototype.setOptions = function(options) { + if (options !== undefined) { + var fields = ['sampling','style','sort','yAxisOrientation','barChart']; + util.selectiveDeepExtend(fields, this.options, options); - // construct path from dataset - if (group.options.catmullRom.enabled == true) { - d = this._catmullRom(dataset, group); - } - else { - d = this._linear(dataset); - } + util.mergeOptions(this.options, options,'catmullRom'); + util.mergeOptions(this.options, options,'drawPoints'); + util.mergeOptions(this.options, options,'shaded'); - // append with points for fill and finalize the path - if (group.options.shaded.enabled == true) { - var fillPath = DOMutil.getSVGElement('path',this.svgElements, this.svg); - var dFill; - if (group.options.shaded.orientation == 'top') { - dFill = "M" + dataset[0].x + "," + 0 + " " + d + "L" + dataset[dataset.length - 1].x + "," + 0; - } - else { - dFill = "M" + dataset[0].x + "," + svgHeight + " " + d + "L" + dataset[dataset.length - 1].x + "," + svgHeight; + if (options.catmullRom) { + if (typeof options.catmullRom == 'object') { + if (options.catmullRom.parametrization) { + if (options.catmullRom.parametrization == 'uniform') { + this.options.catmullRom.alpha = 0; + } + else if (options.catmullRom.parametrization == 'chordal') { + this.options.catmullRom.alpha = 1.0; + } + else { + this.options.catmullRom.parametrization = 'centripetal'; + this.options.catmullRom.alpha = 0.5; + } } - fillPath.setAttributeNS(null, "class", group.className + " fill"); - fillPath.setAttributeNS(null, "d", dFill); - } - // copy properties to path for drawing. - path.setAttributeNS(null, "d", "M" + d); - - // draw points - if (group.options.drawPoints.enabled == true) { - this._drawPoints(dataset, group, this.svgElements, this.svg); } } } }; - /** - * draw the data points - * - * @param {Array} dataset - * @param {Object} JSONcontainer - * @param {Object} svg | SVG DOM element - * @param {GraphGroup} group - * @param {Number} [offset] - */ - LineGraph.prototype._drawPoints = function (dataset, group, JSONcontainer, svg, offset) { - if (offset === undefined) {offset = 0;} - for (var i = 0; i < dataset.length; i++) { - DOMutil.drawPoint(dataset[i].x + offset, dataset[i].y, group, JSONcontainer, svg); - } + GraphGroup.prototype.update = function(group) { + this.group = group; + this.content = group.content || 'graph'; + this.className = group.className || this.className || "graphGroup" + this.groupsUsingDefaultStyles[0] % 10; + this.visible = group.visible === undefined ? true : group.visible; + this.setOptions(group.options); }; + GraphGroup.prototype.drawIcon = function(x, y, JSONcontainer, SVGcontainer, iconWidth, iconHeight) { + var fillHeight = iconHeight * 0.5; + var path, fillPath; + var outline = DOMutil.getSVGElement("rect", JSONcontainer, SVGcontainer); + outline.setAttributeNS(null, "x", x); + outline.setAttributeNS(null, "y", y - fillHeight); + outline.setAttributeNS(null, "width", iconWidth); + outline.setAttributeNS(null, "height", 2*fillHeight); + outline.setAttributeNS(null, "class", "outline"); - /** - * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the - * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for - * the yAxis. - * - * @param datapoints - * @returns {Array} - * @private - */ - LineGraph.prototype._convertXcoordinates = function (datapoints) { - var extractedData = []; - var xValue, yValue; - var toScreen = this.body.util.toScreen; + if (this.options.style == 'line') { + path = DOMutil.getSVGElement("path", JSONcontainer, SVGcontainer); + path.setAttributeNS(null, "class", this.className); + path.setAttributeNS(null, "d", "M" + x + ","+y+" L" + (x + iconWidth) + ","+y+""); + if (this.options.shaded.enabled == true) { + fillPath = DOMutil.getSVGElement("path", JSONcontainer, SVGcontainer); + if (this.options.shaded.orientation == 'top') { + fillPath.setAttributeNS(null, "d", "M"+x+", " + (y - fillHeight) + + "L"+x+","+y+" L"+ (x + iconWidth) + ","+y+" L"+ (x + iconWidth) + "," + (y - fillHeight)); + } + else { + fillPath.setAttributeNS(null, "d", "M"+x+","+y+" " + + "L"+x+"," + (y + fillHeight) + " " + + "L"+ (x + iconWidth) + "," + (y + fillHeight) + + "L"+ (x + iconWidth) + ","+y); + } + fillPath.setAttributeNS(null, "class", this.className + " iconFill"); + } - for (var i = 0; i < datapoints.length; i++) { - xValue = toScreen(datapoints[i].x) + this.width - 1; - yValue = datapoints[i].y; - extractedData.push({x: xValue, y: yValue}); + if (this.options.drawPoints.enabled == true) { + DOMutil.drawPoint(x + 0.5 * iconWidth,y, this, JSONcontainer, SVGcontainer); + } } + else { + var barWidth = Math.round(0.3 * iconWidth); + var bar1Height = Math.round(0.4 * iconHeight); + var bar2Height = Math.round(0.75 * iconHeight); - return extractedData; - }; - + var offset = Math.round((iconWidth - (2 * barWidth))/3); + DOMutil.drawBar(x + 0.5*barWidth + offset , y + fillHeight - bar1Height - 1, barWidth, bar1Height, this.className + ' bar', JSONcontainer, SVGcontainer); + DOMutil.drawBar(x + 1.5*barWidth + offset + 2, y + fillHeight - bar2Height - 1, barWidth, bar2Height, this.className + ' bar', JSONcontainer, SVGcontainer); + } + }; /** - * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the - * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for - * the yAxis. * - * @param datapoints - * @returns {Array} - * @private + * @param iconWidth + * @param iconHeight + * @returns {{icon: HTMLElement, label: (group.content|*|string), orientation: (.options.yAxisOrientation|*)}} */ - LineGraph.prototype._convertYcoordinates = function (datapoints, group) { - var extractedData = []; - var xValue, yValue; - var toScreen = this.body.util.toScreen; - var axis = this.yAxisLeft; - var svgHeight = Number(this.svg.style.height.replace("px","")); - if (group.options.yAxisOrientation == 'right') { - axis = this.yAxisRight; - } + GraphGroup.prototype.getLegend = function(iconWidth, iconHeight) { + var svg = document.createElementNS('http://www.w3.org/2000/svg',"svg"); + this.drawIcon(0,0.5*iconHeight,[],svg,iconWidth,iconHeight); + return {icon: svg, label: this.content, orientation:this.options.yAxisOrientation}; + } - for (var i = 0; i < datapoints.length; i++) { - xValue = toScreen(datapoints[i].x) + this.width - 1; - yValue = Math.round(axis.convertValue(datapoints[i].y)); - extractedData.push({x: xValue, y: yValue}); - } + module.exports = GraphGroup; - group.setZeroPosition(Math.min(svgHeight, axis.convertValue(0))); - return extractedData; - }; +/***/ }, +/* 42 */ +/***/ function(module, exports, __webpack_require__) { + + var util = __webpack_require__(1); + var DOMutil = __webpack_require__(6); + var Component = __webpack_require__(22); /** - * This uses an uniform parametrization of the CatmullRom algorithm: - * "On the Parameterization of Catmull-Rom Curves" by Cem Yuksel et al. - * @param data - * @returns {string} - * @private + * Legend for Graph2d */ - LineGraph.prototype._catmullRomUniform = function(data) { - // catmull rom - var p0, p1, p2, p3, bp1, bp2; - var d = Math.round(data[0].x) + "," + Math.round(data[0].y) + " "; - var normalization = 1/6; - var length = data.length; - for (var i = 0; i < length - 1; i++) { + function Legend(body, options, side, linegraphOptions) { + this.body = body; + this.defaultOptions = { + enabled: true, + icons: true, + iconSize: 20, + iconSpacing: 6, + left: { + visible: true, + position: 'top-left' // top/bottom - left,center,right + }, + right: { + visible: true, + position: 'top-left' // top/bottom - left,center,right + } + } + this.side = side; + this.options = util.extend({},this.defaultOptions); + this.linegraphOptions = linegraphOptions; - p0 = (i == 0) ? data[0] : data[i-1]; - p1 = data[i]; - p2 = data[i+1]; - p3 = (i + 2 < length) ? data[i+2] : p2; + this.svgElements = {}; + this.dom = {}; + this.groups = {}; + this.amountOfGroups = 0; + this._create(); + this.setOptions(options); + } - // Catmull-Rom to Cubic Bezier conversion matrix - // 0 1 0 0 - // -1/6 1 1/6 0 - // 0 1/6 1 -1/6 - // 0 0 1 0 + Legend.prototype = new Component(); - // bp0 = { x: p1.x, y: p1.y }; - bp1 = { x: ((-p0.x + 6*p1.x + p2.x) *normalization), y: ((-p0.y + 6*p1.y + p2.y) *normalization)}; - bp2 = { x: (( p1.x + 6*p2.x - p3.x) *normalization), y: (( p1.y + 6*p2.y - p3.y) *normalization)}; - // bp0 = { x: p2.x, y: p2.y }; - d += "C" + - bp1.x + "," + - bp1.y + " " + - bp2.x + "," + - bp2.y + " " + - p2.x + "," + - p2.y + " "; + Legend.prototype.addGroup = function(label, graphOptions) { + if (!this.groups.hasOwnProperty(label)) { + this.groups[label] = graphOptions; } + this.amountOfGroups += 1; + }; - return d; + Legend.prototype.updateGroup = function(label, graphOptions) { + this.groups[label] = graphOptions; }; - /** - * This uses either the chordal or centripetal parameterization of the catmull-rom algorithm. - * By default, the centripetal parameterization is used because this gives the nicest results. - * These parameterizations are relatively heavy because the distance between 4 points have to be calculated. - * - * One optimization can be used to reuse distances since this is a sliding window approach. - * @param data - * @returns {string} - * @private - */ - LineGraph.prototype._catmullRom = function(data, group) { - var alpha = group.options.catmullRom.alpha; - if (alpha == 0 || alpha === undefined) { - return this._catmullRomUniform(data); + Legend.prototype.removeGroup = function(label) { + if (this.groups.hasOwnProperty(label)) { + delete this.groups[label]; + this.amountOfGroups -= 1; } - else { - var p0, p1, p2, p3, bp1, bp2, d1,d2,d3, A, B, N, M; - var d3powA, d2powA, d3pow2A, d2pow2A, d1pow2A, d1powA; - var d = Math.round(data[0].x) + "," + Math.round(data[0].y) + " "; - var length = data.length; - for (var i = 0; i < length - 1; i++) { + }; - p0 = (i == 0) ? data[0] : data[i-1]; - p1 = data[i]; - p2 = data[i+1]; - p3 = (i + 2 < length) ? data[i+2] : p2; + Legend.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"; - d1 = Math.sqrt(Math.pow(p0.x - p1.x,2) + Math.pow(p0.y - p1.y,2)); - d2 = Math.sqrt(Math.pow(p1.x - p2.x,2) + Math.pow(p1.y - p2.y,2)); - d3 = Math.sqrt(Math.pow(p2.x - p3.x,2) + Math.pow(p2.y - p3.y,2)); + this.dom.textArea = document.createElement('div'); + this.dom.textArea.className = 'legendText'; + this.dom.textArea.style.position = "relative"; + this.dom.textArea.style.top = "0px"; - // Catmull-Rom to Cubic Bezier conversion matrix - // - // A = 2d1^2a + 3d1^a * d2^a + d3^2a - // B = 2d3^2a + 3d3^a * d2^a + d2^2a - // - // [ 0 1 0 0 ] - // [ -d2^2a/N A/N d1^2a/N 0 ] - // [ 0 d3^2a/M B/M -d2^2a/M ] - // [ 0 0 1 0 ] + this.svg = document.createElementNS('http://www.w3.org/2000/svg',"svg"); + this.svg.style.position = 'absolute'; + this.svg.style.top = 0 +'px'; + this.svg.style.width = this.options.iconSize + 5 + 'px'; - // [ 0 1 0 0 ] - // [ -d2pow2a/N A/N d1pow2a/N 0 ] - // [ 0 d3pow2a/M B/M -d2pow2a/M ] - // [ 0 0 1 0 ] + this.dom.frame.appendChild(this.svg); + this.dom.frame.appendChild(this.dom.textArea); + }; - d3powA = Math.pow(d3, alpha); - d3pow2A = Math.pow(d3,2*alpha); - d2powA = Math.pow(d2, alpha); - d2pow2A = Math.pow(d2,2*alpha); - d1powA = Math.pow(d1, alpha); - d1pow2A = Math.pow(d1,2*alpha); + /** + * Hide the component from the DOM + */ + Legend.prototype.hide = function() { + // remove the frame containing the items + if (this.dom.frame.parentNode) { + this.dom.frame.parentNode.removeChild(this.dom.frame); + } + }; - A = 2*d1pow2A + 3*d1powA * d2powA + d2pow2A; - B = 2*d3pow2A + 3*d3powA * d2powA + d2pow2A; - N = 3*d1powA * (d1powA + d2powA); - if (N > 0) {N = 1 / N;} - M = 3*d3powA * (d3powA + d2powA); - if (M > 0) {M = 1 / M;} - - bp1 = { x: ((-d2pow2A * p0.x + A*p1.x + d1pow2A * p2.x) * N), - y: ((-d2pow2A * p0.y + A*p1.y + d1pow2A * p2.y) * N)}; + /** + * Show the component in the DOM (when not already visible). + * @return {Boolean} changed + */ + Legend.prototype.show = function() { + // show frame containing the items + if (!this.dom.frame.parentNode) { + this.body.dom.center.appendChild(this.dom.frame); + } + }; - bp2 = { x: (( d3pow2A * p1.x + B*p2.x - d2pow2A * p3.x) * M), - y: (( d3pow2A * p1.y + B*p2.y - d2pow2A * p3.y) * M)}; + Legend.prototype.setOptions = function(options) { + var fields = ['enabled','orientation','icons','left','right']; + util.selectiveDeepExtend(fields, this.options, options); + }; - if (bp1.x == 0 && bp1.y == 0) {bp1 = p1;} - if (bp2.x == 0 && bp2.y == 0) {bp2 = p2;} - d += "C" + - bp1.x + "," + - bp1.y + " " + - bp2.x + "," + - bp2.y + " " + - p2.x + "," + - p2.y + " "; + Legend.prototype.redraw = function() { + var activeGroups = 0; + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { + activeGroups++; + } } + } - return d; + if (this.options[this.side].visible == false || this.amountOfGroups == 0 || this.options.enabled == false || activeGroups == 0) { + this.hide(); } - }; + else { + this.show(); + if (this.options[this.side].position == 'top-left' || this.options[this.side].position == 'bottom-left') { + 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 = 0 +'px'; + this.svg.style.right = ''; + } + else { + 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 = 0 +'px'; + this.svg.style.left = ''; + } - /** - * this generates the SVG path for a linear drawing between datapoints. - * @param data - * @returns {string} - * @private - */ - LineGraph.prototype._linear = function(data) { - // linear - var d = ""; - for (var i = 0; i < data.length; i++) { - if (i == 0) { - d += data[i].x + "," + data[i].y; + if (this.options[this.side].position == 'top-left' || this.options[this.side].position == 'top-right') { + this.dom.frame.style.top = 4 - Number(this.body.dom.center.style.top.replace("px","")) + 'px'; + this.dom.frame.style.bottom = ''; } else { - d += " " + data[i].x + "," + data[i].y; + this.dom.frame.style.bottom = 4 - Number(this.body.dom.center.style.top.replace("px","")) + 'px'; + this.dom.frame.style.top = ''; + } + + if (this.options.icons == false) { + 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'; + } + else { + this.dom.frame.style.width = this.options.iconSize + 15 + this.dom.textArea.offsetWidth + 10 + 'px' + this.drawLegendIcons(); + } + + var content = ''; + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { + content += this.groups[groupId].content + '
'; + } + } } + this.dom.textArea.innerHTML = content; + this.dom.textArea.style.lineHeight = ((0.75 * this.options.iconSize) + this.options.iconSpacing) + 'px'; } - return d; }; - module.exports = LineGraph; + Legend.prototype.drawLegendIcons = function() { + if (this.dom.frame.parentNode) { + DOMutil.prepareElements(this.svgElements); + var padding = window.getComputedStyle(this.dom.frame).paddingTop; + var iconOffset = Number(padding.replace('px','')); + var x = iconOffset; + var iconWidth = this.options.iconSize; + var iconHeight = 0.75 * this.options.iconSize; + var y = iconOffset + 0.5 * iconHeight + 3; + + this.svg.style.width = iconWidth + 5 + iconOffset + 'px'; + + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { + this.groups[groupId].drawIcon(x, y, this.svgElements, this.svg, iconWidth, iconHeight); + y += iconHeight + this.options.iconSpacing; + } + } + } + + DOMutil.cleanupElements(this.svgElements); + } + }; + + module.exports = Legend; /***/ }, -/* 40 */ +/* 43 */ /***/ function(module, exports, __webpack_require__) { var util = __webpack_require__(1); var DOMutil = __webpack_require__(6); + var DataSet = __webpack_require__(7); + var DataView = __webpack_require__(8); var Component = __webpack_require__(22); - var DataStep = __webpack_require__(41); + var DataAxis = __webpack_require__(40); + var GraphGroup = __webpack_require__(41); + var Legend = __webpack_require__(42); + + var UNGROUPED = '__ungrouped__'; // reserved group id for ungrouped items /** - * A horizontal time axis - * @param {Object} [options] See DataAxis.setOptions for the available - * options. - * @constructor DataAxis - * @extends Component + * This is the constructor of the LineGraph. It requires a Timeline body and options. + * * @param body + * @param options + * @constructor */ - function DataAxis (body, options, svg, linegraphOptions) { + function LineGraph(body, options) { this.id = util.randomUUID(); this.body = body; this.defaultOptions = { - orientation: 'left', // supported: 'left', 'right' - showMinorLabels: true, - showMajorLabels: true, - icons: true, - majorLinesOffset: 7, - minorLinesOffset: 4, - labelOffsetX: 10, - labelOffsetY: 2, - iconWidth: 20, - width: '40px', - visible: true, - customRange: { - left: {min:undefined, max:undefined}, - right: {min:undefined, max:undefined} + yAxisOrientation: 'left', + defaultGroup: 'default', + sort: true, + sampling: true, + graphHeight: '400px', + shaded: { + enabled: false, + orientation: 'bottom' // top, bottom + }, + style: 'line', // line, bar + barChart: { + width: 50, + handleOverlap: 'overlap', + align: 'center' // left, center, right + }, + catmullRom: { + enabled: true, + parametrization: 'centripetal', // uniform (alpha = 0.0), chordal (alpha = 1.0), centripetal (alpha = 0.5) + alpha: 0.5 + }, + drawPoints: { + enabled: true, + size: 6, + style: 'square' // square, circle + }, + dataAxis: { + showMinorLabels: true, + showMajorLabels: true, + icons: false, + width: '40px', + visible: true, + customRange: { + left: {min:undefined, max:undefined}, + right: {min:undefined, max:undefined} + } + }, + legend: { + enabled: false, + icons: true, + left: { + visible: true, + position: 'top-left' // top/bottom - left,right + }, + right: { + visible: true, + position: 'top-right' // top/bottom - left,right + } + }, + groups: { + visibility: {} } }; - this.linegraphOptions = linegraphOptions; - this.linegraphSVG = svg; + // options is shared by this ItemSet and all its items + this.options = util.extend({}, this.defaultOptions); + this.dom = {}; this.props = {}; - this.DOMelements = { // dynamic elements - lines: {}, - labels: {} - }; + this.hammer = null; + this.groups = {}; + this.abortedGraphUpdate = false; - this.dom = {}; + var me = this; + this.itemsData = null; // DataSet + this.groupsData = null; // DataSet - this.range = {start:0, end:0}; + // listeners for the DataSet of the items + this.itemListeners = { + 'add': function (event, params, senderId) { + me._onAdd(params.items); + }, + 'update': function (event, params, senderId) { + me._onUpdate(params.items); + }, + 'remove': function (event, params, senderId) { + me._onRemove(params.items); + } + }; - this.options = util.extend({}, this.defaultOptions); - this.conversionFactor = 1; + // listeners for the DataSet of the groups + this.groupListeners = { + 'add': function (event, params, senderId) { + me._onAddGroups(params.items); + }, + 'update': function (event, params, senderId) { + me._onUpdateGroups(params.items); + }, + 'remove': function (event, params, senderId) { + me._onRemoveGroups(params.items); + } + }; - this.setOptions(options); - this.width = Number(('' + this.options.width).replace("px","")); - this.minWidth = this.width; - this.height = this.linegraphSVG.offsetHeight; + this.items = {}; // object with an Item for every data item + this.selection = []; // list with the ids of all selected nodes + this.lastStart = this.body.range.start; + this.touchParams = {}; // stores properties while dragging - this.stepPixels = 25; - this.stepPixelsForced = 25; - this.lineOffset = 0; - this.master = true; this.svgElements = {}; + this.setOptions(options); + this.groupsUsingDefaultStyles = [0]; - - this.groups = {}; - this.amountOfGroups = 0; + this.body.emitter.on("rangechange",function() { + if (me.lastStart != 0) { + var offset = me.body.range.start - me.lastStart; + var range = me.body.range.end - me.body.range.start; + if (me.width != 0) { + var rangePerPixelInv = me.width/range; + var xOffset = offset * rangePerPixelInv; + me.svg.style.left = (-me.width - xOffset) + "px"; + } + } + }); + this.body.emitter.on("rangechanged", function() { + me.lastStart = me.body.range.start; + me.svg.style.left = util.option.asSize(-me.width); + me._updateGraph.apply(me); + }); // create the HTML DOM this._create(); + this.body.emitter.emit("change"); } - DataAxis.prototype = new Component(); - - - - DataAxis.prototype.addGroup = function(label, graphOptions) { - if (!this.groups.hasOwnProperty(label)) { - this.groups[label] = graphOptions; - } - this.amountOfGroups += 1; - }; - - DataAxis.prototype.updateGroup = function(label, graphOptions) { - this.groups[label] = graphOptions; - }; - - DataAxis.prototype.removeGroup = function(label) { - if (this.groups.hasOwnProperty(label)) { - delete this.groups[label]; - this.amountOfGroups -= 1; - } - }; - - - DataAxis.prototype.setOptions = function (options) { - if (options) { - var redraw = false; - if (this.options.orientation != options.orientation && options.orientation !== undefined) { - redraw = true; - } - var fields = [ - 'orientation', - 'showMinorLabels', - 'showMajorLabels', - 'icons', - 'majorLinesOffset', - 'minorLinesOffset', - 'labelOffsetX', - 'labelOffsetY', - 'iconWidth', - 'width', - 'visible', - 'customRange' - ]; - util.selectiveExtend(fields, this.options, options); - - this.minWidth = Number(('' + this.options.width).replace("px","")); - - if (redraw == true && this.dom.frame) { - this.hide(); - this.show(); - } - } - }; - + LineGraph.prototype = new Component(); /** - * Create the HTML DOM for the DataAxis + * Create the HTML DOM for the ItemSet */ - DataAxis.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; + LineGraph.prototype._create = function(){ + var frame = document.createElement('div'); + frame.className = 'LineGraph'; + this.dom.frame = frame; // create svg element for graph drawing. 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.position = "relative"; + this.svg.style.height = ('' + this.options.graphHeight).replace("px",'') + 'px'; this.svg.style.display = "block"; - this.dom.frame.appendChild(this.svg); - }; - - DataAxis.prototype._redrawGroupIcons = function () { - DOMutil.prepareElements(this.svgElements); + frame.appendChild(this.svg); - var x; - var iconWidth = this.options.iconWidth; - var iconHeight = 15; - var iconOffset = 4; - var y = iconOffset + 0.5 * iconHeight; + // data axis + this.options.dataAxis.orientation = 'left'; + this.yAxisLeft = new DataAxis(this.body, this.options.dataAxis, this.svg, this.options.groups); - if (this.options.orientation == 'left') { - x = iconOffset; - } - else { - x = this.width - iconWidth - iconOffset; - } + this.options.dataAxis.orientation = 'right'; + this.yAxisRight = new DataAxis(this.body, this.options.dataAxis, this.svg, this.options.groups); + delete this.options.dataAxis.orientation; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { - this.groups[groupId].drawIcon(x, y, this.svgElements, this.svg, iconWidth, iconHeight); - y += iconHeight + iconOffset; - } - } - } + // legends + this.legendLeft = new Legend(this.body, this.options.legend, 'left', this.options.groups); + this.legendRight = new Legend(this.body, this.options.legend, 'right', this.options.groups); - DOMutil.cleanupElements(this.svgElements); + this.show(); }; /** - * Create the HTML DOM for the DataAxis + * set the options of the LineGraph. the mergeOptions is used for subObjects that have an enabled element. + * @param options */ - DataAxis.prototype.show = function() { - if (!this.dom.frame.parentNode) { - if (this.options.orientation == 'left') { - this.body.dom.left.appendChild(this.dom.frame); + LineGraph.prototype.setOptions = function(options) { + if (options) { + var fields = ['sampling','defaultGroup','graphHeight','yAxisOrientation','style','barChart','dataAxis','sort','groups']; + util.selectiveDeepExtend(fields, this.options, options); + util.mergeOptions(this.options, options,'catmullRom'); + util.mergeOptions(this.options, options,'drawPoints'); + util.mergeOptions(this.options, options,'shaded'); + util.mergeOptions(this.options, options,'legend'); + + if (options.catmullRom) { + if (typeof options.catmullRom == 'object') { + if (options.catmullRom.parametrization) { + if (options.catmullRom.parametrization == 'uniform') { + this.options.catmullRom.alpha = 0; + } + else if (options.catmullRom.parametrization == 'chordal') { + this.options.catmullRom.alpha = 1.0; + } + else { + this.options.catmullRom.parametrization = 'centripetal'; + this.options.catmullRom.alpha = 0.5; + } + } + } } - else { - this.body.dom.right.appendChild(this.dom.frame); + + if (this.yAxisLeft) { + if (options.dataAxis !== undefined) { + this.yAxisLeft.setOptions(this.options.dataAxis); + this.yAxisRight.setOptions(this.options.dataAxis); + } } - } - if (!this.dom.lineContainer.parentNode) { - this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer); + if (this.legendLeft) { + if (options.legend !== undefined) { + this.legendLeft.setOptions(this.options.legend); + this.legendRight.setOptions(this.options.legend); + } + } + + if (this.groups.hasOwnProperty(UNGROUPED)) { + this.groups[UNGROUPED].setOptions(options); + } + } + if (this.dom.frame) { + this._updateGraph(); } }; /** - * Create the HTML DOM for the DataAxis + * Hide the component from the DOM */ - DataAxis.prototype.hide = function() { + LineGraph.prototype.hide = function() { + // remove the frame containing the items if (this.dom.frame.parentNode) { this.dom.frame.parentNode.removeChild(this.dom.frame); } - - if (this.dom.lineContainer.parentNode) { - this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer); - } }; /** - * Set a range (start and end) - * @param end - * @param start - * @param end + * Show the component in the DOM (when not already visible). + * @return {Boolean} changed */ - DataAxis.prototype.setRange = function (start, end) { - this.range.start = start; - this.range.end = end; + LineGraph.prototype.show = function() { + // show frame containing the items + if (!this.dom.frame.parentNode) { + this.body.dom.center.appendChild(this.dom.frame); + } }; + /** - * Repaint the component - * @return {boolean} Returns true if the component is resized + * Set items + * @param {vis.DataSet | null} items */ - DataAxis.prototype.redraw = function () { - var changeCalled = false; - var activeGroups = 0; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { - activeGroups++; - } - } + LineGraph.prototype.setItems = function(items) { + var me = this, + ids, + oldItemsData = this.itemsData; + + // replace the dataset + if (!items) { + this.itemsData = null; } - if (this.amountOfGroups == 0 || activeGroups == 0) { - this.hide(); + else if (items instanceof DataSet || items instanceof DataView) { + this.itemsData = items; } else { - this.show(); - this.height = Number(this.linegraphSVG.style.height.replace("px","")); - // svg offsetheight did not work in firefox and explorer... - - this.dom.lineContainer.style.height = this.height + 'px'; - this.width = this.options.visible == true ? Number(('' + this.options.width).replace("px","")) : 0; + throw new TypeError('Data must be an instance of DataSet or DataView'); + } - var props = this.props; - var frame = this.dom.frame; - - // update classname - frame.className = 'dataaxis'; - - // calculate character width and height - this._calculateCharSize(); - - var orientation = this.options.orientation; - var showMinorLabels = this.options.showMinorLabels; - var showMajorLabels = this.options.showMajorLabels; + if (oldItemsData) { + // unsubscribe from old dataset + util.forEach(this.itemListeners, function (callback, event) { + oldItemsData.off(event, callback); + }); - // determine the width and height of the elemens for the axis - props.minorLabelHeight = showMinorLabels ? props.minorCharHeight : 0; - props.majorLabelHeight = showMajorLabels ? props.majorCharHeight : 0; + // remove all drawn items + ids = oldItemsData.getIds(); + this._onRemove(ids); + } - props.minorLineWidth = this.body.dom.backgroundHorizontal.offsetWidth - this.lineOffset - this.width + 2 * this.options.minorLinesOffset; - props.minorLineHeight = 1; - props.majorLineWidth = this.body.dom.backgroundHorizontal.offsetWidth - this.lineOffset - this.width + 2 * this.options.majorLinesOffset; - props.majorLineHeight = 1; + if (this.itemsData) { + // subscribe to new dataset + var id = this.id; + util.forEach(this.itemListeners, function (callback, event) { + me.itemsData.on(event, callback, id); + }); - // take frame offline while updating (is almost twice as fast) - if (orientation == 'left') { - frame.style.top = '0'; - frame.style.left = '0'; - frame.style.bottom = ''; - frame.style.width = this.width + 'px'; - frame.style.height = this.height + "px"; - } - else { // right - frame.style.top = ''; - frame.style.bottom = '0'; - frame.style.left = '0'; - frame.style.width = this.width + 'px'; - frame.style.height = this.height + "px"; - } - changeCalled = this._redrawLabels(); - if (this.options.icons == true) { - this._redrawGroupIcons(); - } + // add all new items + ids = this.itemsData.getIds(); + this._onAdd(ids); } - return changeCalled; + this._updateUngrouped(); + this._updateGraph(); + this.redraw(); }; /** - * Repaint major and minor text labels and vertical grid lines - * @private + * Set groups + * @param {vis.DataSet} groups */ - DataAxis.prototype._redrawLabels = function () { - DOMutil.prepareElements(this.DOMelements.lines); - DOMutil.prepareElements(this.DOMelements.labels); - - var orientation = this.options['orientation']; - - // calculate range and step (step such that we have space for 7 characters per label) - var minimumStep = this.master ? this.props.majorCharHeight || 10 : this.stepPixelsForced; - var step = new DataStep(this.range.start, this.range.end, minimumStep, this.dom.frame.offsetHeight, this.options.customRange[this.options.orientation]); - this.step = step; - // get the distance in pixels for a step - // dead space is space that is "left over" after a step - var stepPixels = (this.dom.frame.offsetHeight - (step.deadSpace * (this.dom.frame.offsetHeight / step.marginRange))) / (((step.marginRange - step.deadSpace) / step.step)); - this.stepPixels = stepPixels; + LineGraph.prototype.setGroups = function(groups) { + var me = this, + ids; - var amountOfSteps = this.height / stepPixels; - var stepDifference = 0; + // unsubscribe from current dataset + if (this.groupsData) { + util.forEach(this.groupListeners, function (callback, event) { + me.groupsData.unsubscribe(event, callback); + }); - if (this.master == false) { - stepPixels = this.stepPixelsForced; - stepDifference = Math.round((this.dom.frame.offsetHeight / stepPixels) - amountOfSteps); - for (var i = 0; i < 0.5 * stepDifference; i++) { - step.previous(); - } - amountOfSteps = this.height / stepPixels; - } - else { - amountOfSteps += 0.25; + // remove all drawn groups + ids = this.groupsData.getIds(); + this.groupsData = null; + this._onRemoveGroups(ids); // note: this will cause a redraw } - - this.valueAtZero = step.marginEnd; - var marginStartPos = 0; - - // do not draw the first label - var max = 1; - - this.maxLabelSize = 0; - var y = 0; - while (max < Math.round(amountOfSteps)) { - step.next(); - y = Math.round(max * stepPixels); - marginStartPos = max * stepPixels; - var isMajor = step.isMajor(); - - if (this.options['showMinorLabels'] && isMajor == false || this.master == false && this.options['showMinorLabels'] == true) { - this._redrawLabel(y - 2, step.getCurrent(), orientation, 'yAxis minor', this.props.minorCharHeight); - } - - if (isMajor && this.options['showMajorLabels'] && this.master == true || - this.options['showMinorLabels'] == false && this.master == false && isMajor == true) { - if (y >= 0) { - this._redrawLabel(y - 2, step.getCurrent(), orientation, 'yAxis major', this.props.majorCharHeight); - } - this._redrawLine(y, orientation, 'grid horizontal major', this.options.majorLinesOffset, this.props.majorLineWidth); - } - else { - this._redrawLine(y, orientation, 'grid horizontal minor', this.options.minorLinesOffset, this.props.minorLineWidth); - } - - max++; + // replace the dataset + if (!groups) { + this.groupsData = null; } - - if (this.master == false) { - this.conversionFactor = y / (this.valueAtZero - step.current); + else if (groups instanceof DataSet || groups instanceof DataView) { + this.groupsData = groups; } else { - this.conversionFactor = this.dom.frame.offsetHeight / step.marginRange; + throw new TypeError('Data must be an instance of DataSet or DataView'); } - var offset = this.options.icons == true ? this.options.iconWidth + this.options.labelOffsetX + 15 : this.options.labelOffsetX + 15; - // this will resize the yAxis to accomodate the labels. - if (this.maxLabelSize > (this.width - offset) && this.options.visible == true) { - this.width = this.maxLabelSize + offset; - this.options.width = this.width + "px"; - DOMutil.cleanupElements(this.DOMelements.lines); - DOMutil.cleanupElements(this.DOMelements.labels); - this.redraw(); - return true; - } - // this will resize the yAxis if it is too big for the labels. - else if (this.maxLabelSize < (this.width - offset) && this.options.visible == true && this.width > this.minWidth) { - this.width = Math.max(this.minWidth,this.maxLabelSize + offset); - this.options.width = this.width + "px"; - DOMutil.cleanupElements(this.DOMelements.lines); - DOMutil.cleanupElements(this.DOMelements.labels); - this.redraw(); - return true; - } - else { - DOMutil.cleanupElements(this.DOMelements.lines); - DOMutil.cleanupElements(this.DOMelements.labels); - return false; + if (this.groupsData) { + // subscribe to new dataset + var id = this.id; + util.forEach(this.groupListeners, function (callback, event) { + me.groupsData.on(event, callback, id); + }); + + // draw all ms + ids = this.groupsData.getIds(); + this._onAddGroups(ids); } + this._onUpdate(); }; - DataAxis.prototype.convertValue = function (value) { - var invertedValue = this.valueAtZero - value; - var convertedValue = invertedValue * this.conversionFactor; - return convertedValue; - }; /** - * Create a label for the axis at position x + * Update the datapoints + * @param [ids] * @private - * @param y - * @param text - * @param orientation - * @param className - * @param characterHeight */ - DataAxis.prototype._redrawLabel = function (y, text, orientation, className, characterHeight) { - // reuse redundant label - var label = DOMutil.getDOMElement('div',this.DOMelements.labels, this.dom.frame); //this.dom.redundant.labels.shift(); - label.className = className; - label.innerHTML = text; - if (orientation == 'left') { - label.style.left = '-' + this.options.labelOffsetX + 'px'; - label.style.textAlign = "right"; - } - else { - label.style.right = '-' + this.options.labelOffsetX + 'px'; - label.style.textAlign = "left"; + LineGraph.prototype._onUpdate = function(ids) { + this._updateUngrouped(); + this._updateAllGroupData(); + this._updateGraph(); + this.redraw(); + }; + LineGraph.prototype._onAdd = function (ids) {this._onUpdate(ids);}; + LineGraph.prototype._onRemove = function (ids) {this._onUpdate(ids);}; + LineGraph.prototype._onUpdateGroups = function (groupIds) { + for (var i = 0; i < groupIds.length; i++) { + var group = this.groupsData.get(groupIds[i]); + this._updateGroup(group, groupIds[i]); } - label.style.top = y - 0.5 * characterHeight + this.options.labelOffsetY + 'px'; - - text += ''; + this._updateGraph(); + this.redraw(); + }; + LineGraph.prototype._onAddGroups = function (groupIds) {this._onUpdateGroups(groupIds);}; - var largestWidth = Math.max(this.props.majorCharWidth,this.props.minorCharWidth); - if (this.maxLabelSize < text.length * largestWidth) { - this.maxLabelSize = text.length * largestWidth; + LineGraph.prototype._onRemoveGroups = function (groupIds) { + for (var i = 0; i < groupIds.length; i++) { + if (!this.groups.hasOwnProperty(groupIds[i])) { + if (this.groups[groupIds[i]].options.yAxisOrientation == 'right') { + this.yAxisRight.removeGroup(groupIds[i]); + this.legendRight.removeGroup(groupIds[i]); + this.legendRight.redraw(); + } + else { + this.yAxisLeft.removeGroup(groupIds[i]); + this.legendLeft.removeGroup(groupIds[i]); + this.legendLeft.redraw(); + } + delete this.groups[groupIds[i]]; + } } + this._updateUngrouped(); + this._updateGraph(); + this.redraw(); }; /** - * Create a minor line for the axis at position y - * @param y - * @param orientation - * @param className - * @param offset - * @param width + * update a group object + * + * @param group + * @param groupId + * @private */ - DataAxis.prototype._redrawLine = function (y, orientation, className, offset, width) { - if (this.master == true) { - var line = DOMutil.getDOMElement('div',this.DOMelements.lines, this.dom.lineContainer);//this.dom.redundant.lines.shift(); - line.className = className; - line.innerHTML = ''; - - if (orientation == 'left') { - line.style.left = (this.width - offset) + 'px'; + LineGraph.prototype._updateGroup = function (group, groupId) { + if (!this.groups.hasOwnProperty(groupId)) { + this.groups[groupId] = new GraphGroup(group, groupId, this.options, this.groupsUsingDefaultStyles); + if (this.groups[groupId].options.yAxisOrientation == 'right') { + this.yAxisRight.addGroup(groupId, this.groups[groupId]); + this.legendRight.addGroup(groupId, this.groups[groupId]); } else { - line.style.right = (this.width - offset) + 'px'; + this.yAxisLeft.addGroup(groupId, this.groups[groupId]); + this.legendLeft.addGroup(groupId, this.groups[groupId]); } + } + else { + this.groups[groupId].update(group); + if (this.groups[groupId].options.yAxisOrientation == 'right') { + this.yAxisRight.updateGroup(groupId, this.groups[groupId]); + this.legendRight.updateGroup(groupId, this.groups[groupId]); + } + else { + this.yAxisLeft.updateGroup(groupId, this.groups[groupId]); + this.legendLeft.updateGroup(groupId, this.groups[groupId]); + } + } + this.legendLeft.redraw(); + this.legendRight.redraw(); + }; - line.style.width = width + 'px'; - line.style.top = y + 'px'; + LineGraph.prototype._updateAllGroupData = function () { + if (this.itemsData != null) { + var groupsContent = {}; + var groupId; + for (groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + groupsContent[groupId] = []; + } + } + for (var itemId in this.itemsData._data) { + if (this.itemsData._data.hasOwnProperty(itemId)) { + var item = this.itemsData._data[itemId]; + item.x = util.convert(item.x,"Date"); + groupsContent[item.group].push(item); + } + } + for (groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + this.groups[groupId].setItems(groupsContent[groupId]); + } + } } }; + /** + * Create or delete the group holding all ungrouped items. This group is used when + * there are no groups specified. This anonymous group is called 'graph'. + * @protected + */ + LineGraph.prototype._updateUngrouped = function() { + if (this.itemsData != null) { + // var t0 = new Date(); + var group = {id: UNGROUPED, content: this.options.defaultGroup}; + this._updateGroup(group, UNGROUPED); + var ungroupedCounter = 0; + if (this.itemsData) { + for (var itemId in this.itemsData._data) { + if (this.itemsData._data.hasOwnProperty(itemId)) { + var item = this.itemsData._data[itemId]; + if (item != undefined) { + if (item.hasOwnProperty('group')) { + if (item.group === undefined) { + item.group = UNGROUPED; + } + } + else { + item.group = UNGROUPED; + } + ungroupedCounter = item.group == UNGROUPED ? ungroupedCounter + 1 : ungroupedCounter; + } + } + } + } + if (ungroupedCounter == 0) { + delete this.groups[UNGROUPED]; + this.legendLeft.removeGroup(UNGROUPED); + this.legendRight.removeGroup(UNGROUPED); + this.yAxisLeft.removeGroup(UNGROUPED); + this.yAxisRight.removeGroup(UNGROUPED); + } + } + else { + delete this.groups[UNGROUPED]; + this.legendLeft.removeGroup(UNGROUPED); + this.legendRight.removeGroup(UNGROUPED); + this.yAxisLeft.removeGroup(UNGROUPED); + this.yAxisRight.removeGroup(UNGROUPED); + } + this.legendLeft.redraw(); + this.legendRight.redraw(); + }; /** - * Determine the size of text on the axis (both major and minor axis). - * The size is calculated only once and then cached in this.props. - * @private + * Redraw the component, mandatory function + * @return {boolean} Returns true if the component is resized */ - DataAxis.prototype._calculateCharSize = function () { - // determine the char width and height on the minor axis - if (!('minorCharHeight' in this.props)) { - var textMinor = document.createTextNode('0'); - var measureCharMinor = document.createElement('DIV'); - measureCharMinor.className = 'yAxis minor measure'; - measureCharMinor.appendChild(textMinor); - this.dom.frame.appendChild(measureCharMinor); - - this.props.minorCharHeight = measureCharMinor.clientHeight; - this.props.minorCharWidth = measureCharMinor.clientWidth; + LineGraph.prototype.redraw = function() { + var resized = false; - this.dom.frame.removeChild(measureCharMinor); + this.svg.style.height = ('' + this.options.graphHeight).replace('px','') + 'px'; + if (this.lastWidth === undefined && this.width || this.lastWidth != this.width) { + resized = true; } + // check if this component is resized + resized = this._isResized() || resized; + // check whether zoomed (in that case we need to re-stack everything) + var visibleInterval = this.body.range.end - this.body.range.start; + var zoomed = (visibleInterval != this.lastVisibleInterval) || (this.width != this.lastWidth); + this.lastVisibleInterval = visibleInterval; + this.lastWidth = this.width; - if (!('majorCharHeight' in this.props)) { - var textMajor = document.createTextNode('0'); - var measureCharMajor = document.createElement('DIV'); - measureCharMajor.className = 'yAxis major measure'; - measureCharMajor.appendChild(textMajor); - this.dom.frame.appendChild(measureCharMajor); - - this.props.majorCharHeight = measureCharMajor.clientHeight; - this.props.majorCharWidth = measureCharMajor.clientWidth; + // calculate actual size and position + this.width = this.dom.frame.offsetWidth; - this.dom.frame.removeChild(measureCharMajor); + // the svg element is three times as big as the width, this allows for fully dragging left and right + // without reloading the graph. the controls for this are bound to events in the constructor + if (resized == true) { + this.svg.style.width = util.option.asSize(3*this.width); + this.svg.style.left = util.option.asSize(-this.width); + } + if (zoomed == true || this.abortedGraphUpdate == true) { + this._updateGraph(); } + + this.legendLeft.redraw(); + this.legendRight.redraw(); + + return resized; }; /** - * Snap a date to a rounded value. - * The snap intervals are dependent on the current scale and step. - * @param {Date} date the date to be snapped. - * @return {Date} snappedDate + * Update and redraw the graph. + * */ - DataAxis.prototype.snap = function(date) { - return this.step.snap(date); - }; + LineGraph.prototype._updateGraph = function () { + // reset the svg elements + DOMutil.prepareElements(this.svgElements); + if (this.width != 0 && this.itemsData != null) { + var group, i; + var preprocessedGroupData = {}; + var processedGroupData = {}; + var groupRanges = {}; + var changeCalled = false; - module.exports = DataAxis; + // getting group Ids + var groupIds = []; + for (var groupId in this.groups) { + if (this.groups.hasOwnProperty(groupId)) { + group = this.groups[groupId]; + if (group.visible == true && (this.options.groups.visibility[groupId] === undefined || this.options.groups.visibility[groupId] == true)) { + groupIds.push(groupId); + } + } + } + if (groupIds.length > 0) { + // this is the range of the SVG canvas + var minDate = this.body.util.toGlobalTime(- this.body.domProps.root.width); + var maxDate = this.body.util.toGlobalTime(2 * this.body.domProps.root.width); + var groupsData = {}; + // fill groups data + this._getRelevantData(groupIds, groupsData, minDate, maxDate); + // we transform the X coordinates to detect collisions + for (i = 0; i < groupIds.length; i++) { + preprocessedGroupData[groupIds[i]] = this._convertXcoordinates(groupsData[groupIds[i]]); + } + // now all needed data has been collected we start the processing. + this._getYRanges(groupIds, preprocessedGroupData, groupRanges); + // update the Y axis first, we use this data to draw at the correct Y points + // changeCalled is required to clean the SVG on a change emit. + changeCalled = this._updateYAxis(groupIds, groupRanges); + if (changeCalled == true) { + DOMutil.cleanupElements(this.svgElements); + this.abortedGraphUpdate = true; + this.body.emitter.emit("change"); + return; + } + this.abortedGraphUpdate = false; -/***/ }, -/* 41 */ -/***/ function(module, exports, __webpack_require__) { + // With the yAxis scaled correctly, use this to get the Y values of the points. + for (i = 0; i < groupIds.length; i++) { + group = this.groups[groupIds[i]]; + processedGroupData[groupIds[i]] = this._convertYcoordinates(groupsData[groupIds[i]], group); + } - /** - * @constructor DataStep - * The class DataStep is an iterator for data for the lineGraph. You provide a start data point and an - * end data point. The class itself determines the best scale (step size) based on the - * provided start Date, end Date, and minimumStep. - * - * If minimumStep is provided, the step size is chosen as close as possible - * to the minimumStep but larger than minimumStep. If minimumStep is not - * provided, the scale is set to 1 DAY. - * The minimumStep should correspond with the onscreen size of about 6 characters - * - * Alternatively, you can set a scale by hand. - * After creation, you can initialize the class by executing first(). Then you - * can iterate from the start date to the end date via next(). You can check if - * the end date is reached with the function hasNext(). After each step, you can - * retrieve the current date via getCurrent(). - * The DataStep has scales ranging from milliseconds, seconds, minutes, hours, - * days, to years. - * - * Version: 1.2 - * - * @param {Date} [start] The start date, for example new Date(2010, 9, 21) - * or new Date(2010, 9, 21, 23, 45, 00) - * @param {Date} [end] The end date - * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds - */ - function DataStep(start, end, minimumStep, containerHeight, customRange) { - // variables - this.current = 0; - this.autoScale = true; - this.stepIndex = 0; - this.step = 1; - this.scale = 1; + // draw the groups + for (i = 0; i < groupIds.length; i++) { + group = this.groups[groupIds[i]]; + if (group.options.style == 'line') { + this._drawLineGraph(processedGroupData[groupIds[i]], group); + } + } + this._drawBarGraphs(groupIds, processedGroupData); + } + } - this.marginStart; - this.marginEnd; - this.deadSpace = 0; + // cleanup unused svg elements + DOMutil.cleanupElements(this.svgElements); + }; - this.majorSteps = [1, 2, 5, 10]; - this.minorSteps = [0.25, 0.5, 1, 2]; - this.setRange(start, end, minimumStep, containerHeight, customRange); - } + LineGraph.prototype._getRelevantData = function (groupIds, groupsData, minDate, maxDate) { + // first select and preprocess the data from the datasets. + // the groups have their preselection of data, we now loop over this data to see + // what data we need to draw. Sorted data is much faster. + // more optimization is possible by doing the sampling before and using the binary search + // to find the end date to determine the increment. + var group, i, j, item; + if (groupIds.length > 0) { + for (i = 0; i < groupIds.length; i++) { + group = this.groups[groupIds[i]]; + groupsData[groupIds[i]] = []; + var dataContainer = groupsData[groupIds[i]]; + // optimization for sorted data + if (group.options.sort == true) { + var guess = Math.max(0, util.binarySearchGeneric(group.itemsData, minDate, 'x', 'before')); + for (j = guess; j < group.itemsData.length; j++) { + item = group.itemsData[j]; + if (item !== undefined) { + if (item.x > maxDate) { + dataContainer.push(item); + break; + } + else { + dataContainer.push(item); + } + } + } + } + else { + for (j = 0; j < group.itemsData.length; j++) { + item = group.itemsData[j]; + if (item !== undefined) { + if (item.x > minDate && item.x < maxDate) { + dataContainer.push(item); + } + } + } + } + } + } + this._applySampling(groupIds, groupsData); + }; + LineGraph.prototype._applySampling = function (groupIds, groupsData) { + var group; + if (groupIds.length > 0) { + for (var i = 0; i < groupIds.length; i++) { + group = this.groups[groupIds[i]]; + if (group.options.sampling == true) { + var dataContainer = groupsData[groupIds[i]]; + if (dataContainer.length > 0) { + var increment = 1; + var amountOfPoints = dataContainer.length; - /** - * Set a new range - * If minimumStep is provided, the step size is chosen as close as possible - * to the minimumStep but larger than minimumStep. If minimumStep is not - * provided, the scale is set to 1 DAY. - * The minimumStep should correspond with the onscreen size of about 6 characters - * @param {Number} [start] The start date and time. - * @param {Number} [end] The end date and time. - * @param {Number} [minimumStep] Optional. Minimum step size in milliseconds - */ - DataStep.prototype.setRange = function(start, end, minimumStep, containerHeight, customRange) { - this._start = customRange.min === undefined ? start : customRange.min; - this._end = customRange.max === undefined ? end : customRange.max; + // the global screen is used because changing the width of the yAxis may affect the increment, resulting in an endless loop + // of width changing of the yAxis. + var xDistance = this.body.util.toGlobalScreen(dataContainer[dataContainer.length - 1].x) - this.body.util.toGlobalScreen(dataContainer[0].x); + var pointsPerPixel = amountOfPoints / xDistance; + increment = Math.min(Math.ceil(0.2 * amountOfPoints), Math.max(1, Math.round(pointsPerPixel))); - if (start == end) { - this._start = start - 0.75; - this._end = end + 1; - } + var sampledData = []; + for (var j = 0; j < amountOfPoints; j += increment) { + sampledData.push(dataContainer[j]); - if (this.autoScale) { - this.setMinimumStep(minimumStep, containerHeight); + } + groupsData[groupIds[i]] = sampledData; + } + } + } } - this.setFirst(customRange); }; - /** - * Automatically determine the scale that bests fits the provided minimum step - * @param {Number} [minimumStep] The minimum step size in milliseconds - */ - DataStep.prototype.setMinimumStep = function(minimumStep, containerHeight) { - // round to floor - var size = this._end - this._start; - var safeSize = size * 1.2; - var minimumStepValue = minimumStep * (safeSize / containerHeight); - var orderOfMagnitude = Math.round(Math.log(safeSize)/Math.LN10); + LineGraph.prototype._getYRanges = function (groupIds, groupsData, groupRanges) { + var groupData, group, i,j; + var barCombinedDataLeft = []; + var barCombinedDataRight = []; + var barCombinedData; + if (groupIds.length > 0) { + for (i = 0; i < groupIds.length; i++) { + groupData = groupsData[groupIds[i]]; + if (groupData.length > 0) { + group = this.groups[groupIds[i]]; + if (group.options.style == 'line' || group.options.barChart.handleOverlap != "stack") { + var yMin = groupData[0].y; + var yMax = groupData[0].y; + for (j = 0; j < groupData.length; j++) { + yMin = yMin > groupData[j].y ? groupData[j].y : yMin; + yMax = yMax < groupData[j].y ? groupData[j].y : yMax; + } + groupRanges[groupIds[i]] = {min: yMin, max: yMax, yAxisOrientation: group.options.yAxisOrientation}; + } + else if (group.options.style == 'bar') { + if (group.options.yAxisOrientation == 'left') { + barCombinedData = barCombinedDataLeft; + } + else { + barCombinedData = barCombinedDataRight; + } - var minorStepIdx = -1; - var magnitudefactor = Math.pow(10,orderOfMagnitude); + groupRanges[groupIds[i]] = {min: 0, max: 0, yAxisOrientation: group.options.yAxisOrientation, ignore: true}; - var start = 0; - if (orderOfMagnitude < 0) { - start = orderOfMagnitude; + // combine data + for (j = 0; j < groupData.length; j++) { + barCombinedData.push({ + x: groupData[j].x, + y: groupData[j].y, + groupId: groupIds[i] + }); + } + } + } + } + + var intersections; + if (barCombinedDataLeft.length > 0) { + // sort by time and by group + barCombinedDataLeft.sort(function (a, b) { + if (a.x == b.x) { + return a.groupId - b.groupId; + } else { + return a.x - b.x; + } + }); + intersections = {}; + this._getDataIntersections(intersections, barCombinedDataLeft); + groupRanges["__barchartLeft"] = this._getStackedBarYRange(intersections, barCombinedDataLeft); + groupRanges["__barchartLeft"].yAxisOrientation = "left"; + groupIds.push("__barchartLeft"); + } + if (barCombinedDataRight.length > 0) { + // sort by time and by group + barCombinedDataRight.sort(function (a, b) { + if (a.x == b.x) { + return a.groupId - b.groupId; + } else { + return a.x - b.x; + } + }); + intersections = {}; + this._getDataIntersections(intersections, barCombinedDataRight); + groupRanges["__barchartRight"] = this._getStackedBarYRange(intersections, barCombinedDataRight); + groupRanges["__barchartRight"].yAxisOrientation = "right"; + groupIds.push("__barchartRight"); + } } + }; - var solutionFound = false; - for (var i = start; Math.abs(i) <= Math.abs(orderOfMagnitude); i++) { - magnitudefactor = Math.pow(10,i); - for (var j = 0; j < this.minorSteps.length; j++) { - var stepSize = magnitudefactor * this.minorSteps[j]; - if (stepSize >= minimumStepValue) { - solutionFound = true; - minorStepIdx = j; - break; + LineGraph.prototype._getStackedBarYRange = function (intersections, combinedData) { + var key; + var yMin = combinedData[0].y; + var yMax = combinedData[0].y; + for (var i = 0; i < combinedData.length; i++) { + key = combinedData[i].x; + if (intersections[key] === undefined) { + yMin = yMin > combinedData[i].y ? combinedData[i].y : yMin; + yMax = yMax < combinedData[i].y ? combinedData[i].y : yMax; + } + else { + intersections[key].accumulated += combinedData[i].y; + } + } + for (var xpos in intersections) { + if (intersections.hasOwnProperty(xpos)) { + yMin = yMin > intersections[xpos].accumulated ? intersections[xpos].accumulated : yMin; + yMax = yMax < intersections[xpos].accumulated ? intersections[xpos].accumulated : yMax; + } + } + + return {min: yMin, max: yMax}; + }; + + + /** + * this sets the Y ranges for the Y axis. It also determines which of the axis should be shown or hidden. + * @param {Array} groupIds + * @param {Object} groupRanges + * @private + */ + LineGraph.prototype._updateYAxis = function (groupIds, groupRanges) { + var changeCalled = false; + var yAxisLeftUsed = false; + var yAxisRightUsed = false; + var minLeft = 1e9, minRight = 1e9, maxLeft = -1e9, maxRight = -1e9, minVal, maxVal; + // if groups are present + if (groupIds.length > 0) { + for (var i = 0; i < groupIds.length; i++) { + if (groupRanges.hasOwnProperty(groupIds[i])) { + if (groupRanges[groupIds[i]].ignore !== true) { + minVal = groupRanges[groupIds[i]].min; + maxVal = groupRanges[groupIds[i]].max; + + if (groupRanges[groupIds[i]].yAxisOrientation == 'left') { + yAxisLeftUsed = true; + minLeft = minLeft > minVal ? minVal : minLeft; + maxLeft = maxLeft < maxVal ? maxVal : maxLeft; + } + else { + yAxisRightUsed = true; + minRight = minRight > minVal ? minVal : minRight; + maxRight = maxRight < maxVal ? maxVal : maxRight; + } + } } } - if (solutionFound == true) { - break; + + if (yAxisLeftUsed == true) { + this.yAxisLeft.setRange(minLeft, maxLeft); + } + if (yAxisRightUsed == true) { + this.yAxisRight.setRange(minRight, maxRight); } } - this.stepIndex = minorStepIdx; - this.scale = magnitudefactor; - this.step = magnitudefactor * this.minorSteps[minorStepIdx]; - }; - + changeCalled = this._toggleAxisVisiblity(yAxisLeftUsed , this.yAxisLeft) || changeCalled; + changeCalled = this._toggleAxisVisiblity(yAxisRightUsed, this.yAxisRight) || changeCalled; - /** - * Round the current date to the first minor date value - * This must be executed once when the current date is set to start Date - */ - DataStep.prototype.setFirst = function(customRange) { - if (customRange === undefined) { - customRange = {}; + if (yAxisRightUsed == true && yAxisLeftUsed == true) { + this.yAxisLeft.drawIcons = true; + this.yAxisRight.drawIcons = true; + } + else { + this.yAxisLeft.drawIcons = false; + this.yAxisRight.drawIcons = false; } - var niceStart = customRange.min === undefined ? this._start - (this.scale * 2 * this.minorSteps[this.stepIndex]) : customRange.min; - var niceEnd = customRange.max === undefined ? this._end + (this.scale * this.minorSteps[this.stepIndex]) : customRange.max; - - this.marginEnd = customRange.max === undefined ? this.roundToMinor(niceEnd) : customRange.max; - this.marginStart = customRange.min === undefined ? this.roundToMinor(niceStart) : customRange.min; - this.deadSpace = this.roundToMinor(niceEnd) - niceEnd + this.roundToMinor(niceStart) - niceStart; - this.marginRange = this.marginEnd - this.marginStart; - this.current = this.marginEnd; + this.yAxisRight.master = !yAxisLeftUsed; - }; + if (this.yAxisRight.master == false) { + if (yAxisRightUsed == true) {this.yAxisLeft.lineOffset = this.yAxisRight.width;} + else {this.yAxisLeft.lineOffset = 0;} - DataStep.prototype.roundToMinor = function(value) { - var rounded = value - (value % (this.scale * this.minorSteps[this.stepIndex])); - if (value % (this.scale * this.minorSteps[this.stepIndex]) > 0.5 * (this.scale * this.minorSteps[this.stepIndex])) { - return rounded + (this.scale * this.minorSteps[this.stepIndex]); + changeCalled = this.yAxisLeft.redraw() || changeCalled; + this.yAxisRight.stepPixelsForced = this.yAxisLeft.stepPixels; + changeCalled = this.yAxisRight.redraw() || changeCalled; } else { - return rounded; + changeCalled = this.yAxisRight.redraw() || changeCalled; } - } + // clean the accumulated lists + if (groupIds.indexOf("__barchartLeft") != -1) { + groupIds.splice(groupIds.indexOf("__barchartLeft"),1); + } + if (groupIds.indexOf("__barchartRight") != -1) { + groupIds.splice(groupIds.indexOf("__barchartRight"),1); + } - /** - * Check if the there is a next step - * @return {boolean} true if the current date has not passed the end date - */ - DataStep.prototype.hasNext = function () { - return (this.current >= this.marginStart); + return changeCalled; }; /** - * Do the next step + * This shows or hides the Y axis if needed. If there is a change, the changed event is emitted by the updateYAxis function + * + * @param {boolean} axisUsed + * @returns {boolean} + * @private + * @param axis */ - DataStep.prototype.next = function() { - var prev = this.current; - this.current -= this.step; - - // safety mechanism: if current time is still unchanged, move to the end - if (this.current == prev) { - this.current = this._end; + LineGraph.prototype._toggleAxisVisiblity = function (axisUsed, axis) { + var changed = false; + if (axisUsed == false) { + if (axis.dom.frame.parentNode) { + axis.hide(); + changed = true; + } } - }; - - /** - * Do the next step - */ - DataStep.prototype.previous = function() { - this.current += this.step; - this.marginEnd += this.step; - this.marginRange = this.marginEnd - this.marginStart; + else { + if (!axis.dom.frame.parentNode) { + axis.show(); + changed = true; + } + } + return changed; }; - /** - * Get the current datetime - * @return {String} current The current date + * draw a bar graph + * + * @param groupIds + * @param processedGroupData */ - DataStep.prototype.getCurrent = function() { - var toPrecision = '' + Number(this.current).toPrecision(5); - for (var i = toPrecision.length-1; i > 0; i--) { - if (toPrecision[i] == "0") { - toPrecision = toPrecision.slice(0,i); - } - else if (toPrecision[i] == "." || toPrecision[i] == ",") { - toPrecision = toPrecision.slice(0,i); - break; - } - else{ - break; + LineGraph.prototype._drawBarGraphs = function (groupIds, processedGroupData) { + var combinedData = []; + var intersections = {}; + var coreDistance; + var key, drawData; + var group; + var i,j; + var barPoints = 0; + + // combine all barchart data + for (i = 0; i < groupIds.length; i++) { + group = this.groups[groupIds[i]]; + if (group.options.style == 'bar') { + if (group.visible == true && (this.options.groups.visibility[groupIds[i]] === undefined || this.options.groups.visibility[groupIds[i]] == true)) { + for (j = 0; j < processedGroupData[groupIds[i]].length; j++) { + combinedData.push({ + x: processedGroupData[groupIds[i]][j].x, + y: processedGroupData[groupIds[i]][j].y, + groupId: groupIds[i] + }); + barPoints += 1; + } + } } } - return toPrecision; - }; + if (barPoints == 0) {return;} + + // sort by time and by group + combinedData.sort(function (a, b) { + if (a.x == b.x) { + return a.groupId - b.groupId; + } else { + return a.x - b.x; + } + }); + // get intersections + this._getDataIntersections(intersections, combinedData); + // plot barchart + for (i = 0; i < combinedData.length; i++) { + group = this.groups[combinedData[i].groupId]; + var minWidth = 0.1 * group.options.barChart.width; - /** - * Snap a date to a rounded value. - * The snap intervals are dependent on the current scale and step. - * @param {Date} date the date to be snapped. - * @return {Date} snappedDate - */ - DataStep.prototype.snap = function(date) { + key = combinedData[i].x; + var heightOffset = 0; + if (intersections[key] === undefined) { + if (i+1 < combinedData.length) {coreDistance = Math.abs(combinedData[i+1].x - key);} + if (i > 0) {coreDistance = Math.min(coreDistance,Math.abs(combinedData[i-1].x - key));} + drawData = this._getSafeDrawData(coreDistance, group, minWidth); + } + else { + var nextKey = i + (intersections[key].amount - intersections[key].resolved); + var prevKey = i - (intersections[key].resolved + 1); + if (nextKey < combinedData.length) {coreDistance = Math.abs(combinedData[nextKey].x - key);} + if (prevKey > 0) {coreDistance = Math.min(coreDistance,Math.abs(combinedData[prevKey].x - key));} + drawData = this._getSafeDrawData(coreDistance, group, minWidth); + intersections[key].resolved += 1; + if (group.options.barChart.handleOverlap == 'stack') { + heightOffset = intersections[key].accumulated; + intersections[key].accumulated += group.zeroPosition - combinedData[i].y; + } + else if (group.options.barChart.handleOverlap == 'sideBySide') { + drawData.width = drawData.width / intersections[key].amount; + drawData.offset += (intersections[key].resolved) * drawData.width - (0.5*drawData.width * (intersections[key].amount+1)); + if (group.options.barChart.align == 'left') {drawData.offset -= 0.5*drawData.width;} + else if (group.options.barChart.align == 'right') {drawData.offset += 0.5*drawData.width;} + } + } + DOMutil.drawBar(combinedData[i].x + drawData.offset, combinedData[i].y - heightOffset, drawData.width, group.zeroPosition - combinedData[i].y, group.className + ' bar', this.svgElements, this.svg); + // draw points + if (group.options.drawPoints.enabled == true) { + DOMutil.drawPoint(combinedData[i].x + drawData.offset, combinedData[i].y - heightOffset, group, this.svgElements, this.svg); + } + } }; /** - * Check if the current value is a major value (for example when the step - * is DAY, a major value is each first day of the MONTH) - * @return {boolean} true if current date is major, else false. + * Fill the intersections object with counters of how many datapoints share the same x coordinates + * @param intersections + * @param combinedData + * @private */ - DataStep.prototype.isMajor = function() { - return (this.current % (this.scale * this.majorSteps[this.stepIndex]) == 0); + LineGraph.prototype._getDataIntersections = function (intersections, combinedData) { + // get intersections + var coreDistance; + for (var i = 0; i < combinedData.length; i++) { + if (i + 1 < combinedData.length) { + coreDistance = Math.abs(combinedData[i + 1].x - combinedData[i].x); + } + if (i > 0) { + coreDistance = Math.min(coreDistance, Math.abs(combinedData[i - 1].x - combinedData[i].x)); + } + if (coreDistance == 0) { + if (intersections[combinedData[i].x] === undefined) { + intersections[combinedData[i].x] = {amount: 0, resolved: 0, accumulated: 0}; + } + intersections[combinedData[i].x].amount += 1; + } + } }; - module.exports = DataStep; - - -/***/ }, -/* 42 */ -/***/ function(module, exports, __webpack_require__) { - - var util = __webpack_require__(1); - var DOMutil = __webpack_require__(6); - /** - * @constructor Group - * @param {Number | String} groupId - * @param {Object} data - * @param {ItemSet} itemSet + * Get the width and offset for bargraphs based on the coredistance between datapoints + * + * @param coreDistance + * @param group + * @param minWidth + * @returns {{width: Number, offset: Number}} + * @private */ - function GraphGroup (group, groupId, options, groupsUsingDefaultStyles) { - this.id = groupId; - var fields = ['sampling','style','sort','yAxisOrientation','barChart','drawPoints','shaded','catmullRom'] - this.options = util.selectiveBridgeObject(fields,options); - this.usingDefaultStyle = group.className === undefined; - this.groupsUsingDefaultStyles = groupsUsingDefaultStyles; - this.zeroPosition = 0; - this.update(group); - if (this.usingDefaultStyle == true) { - this.groupsUsingDefaultStyles[0] += 1; - } - this.itemsData = []; - this.visible = group.visible === undefined ? true : group.visible; - } + LineGraph.prototype._getSafeDrawData = function (coreDistance, group, minWidth) { + var width, offset; + if (coreDistance < group.options.barChart.width && coreDistance > 0) { + width = coreDistance < minWidth ? minWidth : coreDistance; - GraphGroup.prototype.setItems = function(items) { - if (items != null) { - this.itemsData = items; - if (this.options.sort == true) { - this.itemsData.sort(function (a,b) {return a.x - b.x;}) + offset = 0; // recalculate offset with the new width; + if (group.options.barChart.align == 'left') { + offset -= 0.5 * coreDistance; + } + else if (group.options.barChart.align == 'right') { + offset += 0.5 * coreDistance; } } else { - this.itemsData = []; - } - }; - - GraphGroup.prototype.setZeroPosition = function(pos) { - this.zeroPosition = pos; - }; - - GraphGroup.prototype.setOptions = function(options) { - if (options !== undefined) { - var fields = ['sampling','style','sort','yAxisOrientation','barChart']; - util.selectiveDeepExtend(fields, this.options, options); - - util.mergeOptions(this.options, options,'catmullRom'); - util.mergeOptions(this.options, options,'drawPoints'); - util.mergeOptions(this.options, options,'shaded'); - - if (options.catmullRom) { - if (typeof options.catmullRom == 'object') { - if (options.catmullRom.parametrization) { - if (options.catmullRom.parametrization == 'uniform') { - this.options.catmullRom.alpha = 0; - } - else if (options.catmullRom.parametrization == 'chordal') { - this.options.catmullRom.alpha = 1.0; - } - else { - this.options.catmullRom.parametrization = 'centripetal'; - this.options.catmullRom.alpha = 0.5; - } - } - } + // default settings + width = group.options.barChart.width; + offset = 0; + if (group.options.barChart.align == 'left') { + offset -= 0.5 * group.options.barChart.width; + } + else if (group.options.barChart.align == 'right') { + offset += 0.5 * group.options.barChart.width; } } - }; - GraphGroup.prototype.update = function(group) { - this.group = group; - this.content = group.content || 'graph'; - this.className = group.className || this.className || "graphGroup" + this.groupsUsingDefaultStyles[0] % 10; - this.visible = group.visible === undefined ? true : group.visible; - this.setOptions(group.options); + return {width: width, offset: offset}; }; - GraphGroup.prototype.drawIcon = function(x, y, JSONcontainer, SVGcontainer, iconWidth, iconHeight) { - var fillHeight = iconHeight * 0.5; - var path, fillPath; - var outline = DOMutil.getSVGElement("rect", JSONcontainer, SVGcontainer); - outline.setAttributeNS(null, "x", x); - outline.setAttributeNS(null, "y", y - fillHeight); - outline.setAttributeNS(null, "width", iconWidth); - outline.setAttributeNS(null, "height", 2*fillHeight); - outline.setAttributeNS(null, "class", "outline"); + /** + * draw a line graph + * + * @param dataset + * @param group + */ + LineGraph.prototype._drawLineGraph = function (dataset, group) { + if (dataset != null) { + if (dataset.length > 0) { + var path, d; + var svgHeight = Number(this.svg.style.height.replace("px","")); + path = DOMutil.getSVGElement('path', this.svgElements, this.svg); + path.setAttributeNS(null, "class", group.className); - if (this.options.style == 'line') { - path = DOMutil.getSVGElement("path", JSONcontainer, SVGcontainer); - path.setAttributeNS(null, "class", this.className); - path.setAttributeNS(null, "d", "M" + x + ","+y+" L" + (x + iconWidth) + ","+y+""); - if (this.options.shaded.enabled == true) { - fillPath = DOMutil.getSVGElement("path", JSONcontainer, SVGcontainer); - if (this.options.shaded.orientation == 'top') { - fillPath.setAttributeNS(null, "d", "M"+x+", " + (y - fillHeight) + - "L"+x+","+y+" L"+ (x + iconWidth) + ","+y+" L"+ (x + iconWidth) + "," + (y - fillHeight)); + // construct path from dataset + if (group.options.catmullRom.enabled == true) { + d = this._catmullRom(dataset, group); } else { - fillPath.setAttributeNS(null, "d", "M"+x+","+y+" " + - "L"+x+"," + (y + fillHeight) + " " + - "L"+ (x + iconWidth) + "," + (y + fillHeight) + - "L"+ (x + iconWidth) + ","+y); + d = this._linear(dataset); } - fillPath.setAttributeNS(null, "class", this.className + " iconFill"); - } - - if (this.options.drawPoints.enabled == true) { - DOMutil.drawPoint(x + 0.5 * iconWidth,y, this, JSONcontainer, SVGcontainer); - } - } - else { - var barWidth = Math.round(0.3 * iconWidth); - var bar1Height = Math.round(0.4 * iconHeight); - var bar2Height = Math.round(0.75 * iconHeight); - var offset = Math.round((iconWidth - (2 * barWidth))/3); + // append with points for fill and finalize the path + if (group.options.shaded.enabled == true) { + var fillPath = DOMutil.getSVGElement('path',this.svgElements, this.svg); + var dFill; + if (group.options.shaded.orientation == 'top') { + dFill = "M" + dataset[0].x + "," + 0 + " " + d + "L" + dataset[dataset.length - 1].x + "," + 0; + } + else { + dFill = "M" + dataset[0].x + "," + svgHeight + " " + d + "L" + dataset[dataset.length - 1].x + "," + svgHeight; + } + fillPath.setAttributeNS(null, "class", group.className + " fill"); + fillPath.setAttributeNS(null, "d", dFill); + } + // copy properties to path for drawing. + path.setAttributeNS(null, "d", "M" + d); - DOMutil.drawBar(x + 0.5*barWidth + offset , y + fillHeight - bar1Height - 1, barWidth, bar1Height, this.className + ' bar', JSONcontainer, SVGcontainer); - DOMutil.drawBar(x + 1.5*barWidth + offset + 2, y + fillHeight - bar2Height - 1, barWidth, bar2Height, this.className + ' bar', JSONcontainer, SVGcontainer); + // draw points + if (group.options.drawPoints.enabled == true) { + this._drawPoints(dataset, group, this.svgElements, this.svg); + } + } } }; /** + * draw the data points * - * @param iconWidth - * @param iconHeight - * @returns {{icon: HTMLElement, label: (group.content|*|string), orientation: (.options.yAxisOrientation|*)}} + * @param {Array} dataset + * @param {Object} JSONcontainer + * @param {Object} svg | SVG DOM element + * @param {GraphGroup} group + * @param {Number} [offset] */ - GraphGroup.prototype.getLegend = function(iconWidth, iconHeight) { - var svg = document.createElementNS('http://www.w3.org/2000/svg',"svg"); - this.drawIcon(0,0.5*iconHeight,[],svg,iconWidth,iconHeight); - return {icon: svg, label: this.content, orientation:this.options.yAxisOrientation}; - } - - module.exports = GraphGroup; - + LineGraph.prototype._drawPoints = function (dataset, group, JSONcontainer, svg, offset) { + if (offset === undefined) {offset = 0;} + for (var i = 0; i < dataset.length; i++) { + DOMutil.drawPoint(dataset[i].x + offset, dataset[i].y, group, JSONcontainer, svg); + } + }; -/***/ }, -/* 43 */ -/***/ function(module, exports, __webpack_require__) { - var util = __webpack_require__(1); - var DOMutil = __webpack_require__(6); - var Component = __webpack_require__(22); /** - * Legend for Graph2d + * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the + * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for + * the yAxis. + * + * @param datapoints + * @returns {Array} + * @private */ - function Legend(body, options, side, linegraphOptions) { - this.body = body; - this.defaultOptions = { - enabled: true, - icons: true, - iconSize: 20, - iconSpacing: 6, - left: { - visible: true, - position: 'top-left' // top/bottom - left,center,right - }, - right: { - visible: true, - position: 'top-left' // top/bottom - left,center,right - } - } - this.side = side; - this.options = util.extend({},this.defaultOptions); - this.linegraphOptions = linegraphOptions; + LineGraph.prototype._convertXcoordinates = function (datapoints) { + var extractedData = []; + var xValue, yValue; + var toScreen = this.body.util.toScreen; - this.svgElements = {}; - this.dom = {}; - this.groups = {}; - this.amountOfGroups = 0; - this._create(); + for (var i = 0; i < datapoints.length; i++) { + xValue = toScreen(datapoints[i].x) + this.width - 1; + yValue = datapoints[i].y; + extractedData.push({x: xValue, y: yValue}); + } - this.setOptions(options); - } + return extractedData; + }; - Legend.prototype = new Component(); - Legend.prototype.addGroup = function(label, graphOptions) { - if (!this.groups.hasOwnProperty(label)) { - this.groups[label] = graphOptions; + /** + * This uses the DataAxis object to generate the correct X coordinate on the SVG window. It uses the + * util function toScreen to get the x coordinate from the timestamp. It also pre-filters the data and get the minMax ranges for + * the yAxis. + * + * @param datapoints + * @returns {Array} + * @private + */ + LineGraph.prototype._convertYcoordinates = function (datapoints, group) { + var extractedData = []; + var xValue, yValue; + var toScreen = this.body.util.toScreen; + var axis = this.yAxisLeft; + var svgHeight = Number(this.svg.style.height.replace("px","")); + if (group.options.yAxisOrientation == 'right') { + axis = this.yAxisRight; } - this.amountOfGroups += 1; - }; - - Legend.prototype.updateGroup = function(label, graphOptions) { - this.groups[label] = graphOptions; - }; - Legend.prototype.removeGroup = function(label) { - if (this.groups.hasOwnProperty(label)) { - delete this.groups[label]; - this.amountOfGroups -= 1; + for (var i = 0; i < datapoints.length; i++) { + xValue = toScreen(datapoints[i].x) + this.width - 1; + yValue = Math.round(axis.convertValue(datapoints[i].y)); + extractedData.push({x: xValue, y: yValue}); } - }; - - Legend.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 = 0 +'px'; - this.svg.style.width = this.options.iconSize + 5 + 'px'; + group.setZeroPosition(Math.min(svgHeight, axis.convertValue(0))); - this.dom.frame.appendChild(this.svg); - this.dom.frame.appendChild(this.dom.textArea); + return extractedData; }; /** - * Hide the component from the DOM + * This uses an uniform parametrization of the CatmullRom algorithm: + * "On the Parameterization of Catmull-Rom Curves" by Cem Yuksel et al. + * @param data + * @returns {string} + * @private */ - Legend.prototype.hide = function() { - // remove the frame containing the items - if (this.dom.frame.parentNode) { - this.dom.frame.parentNode.removeChild(this.dom.frame); + LineGraph.prototype._catmullRomUniform = function(data) { + // catmull rom + var p0, p1, p2, p3, bp1, bp2; + var d = Math.round(data[0].x) + "," + Math.round(data[0].y) + " "; + var normalization = 1/6; + var length = data.length; + for (var i = 0; i < length - 1; i++) { + + p0 = (i == 0) ? data[0] : data[i-1]; + p1 = data[i]; + p2 = data[i+1]; + p3 = (i + 2 < length) ? data[i+2] : p2; + + + // Catmull-Rom to Cubic Bezier conversion matrix + // 0 1 0 0 + // -1/6 1 1/6 0 + // 0 1/6 1 -1/6 + // 0 0 1 0 + + // bp0 = { x: p1.x, y: p1.y }; + bp1 = { x: ((-p0.x + 6*p1.x + p2.x) *normalization), y: ((-p0.y + 6*p1.y + p2.y) *normalization)}; + bp2 = { x: (( p1.x + 6*p2.x - p3.x) *normalization), y: (( p1.y + 6*p2.y - p3.y) *normalization)}; + // bp0 = { x: p2.x, y: p2.y }; + + d += "C" + + bp1.x + "," + + bp1.y + " " + + bp2.x + "," + + bp2.y + " " + + p2.x + "," + + p2.y + " "; } + + return d; }; /** - * Show the component in the DOM (when not already visible). - * @return {Boolean} changed + * This uses either the chordal or centripetal parameterization of the catmull-rom algorithm. + * By default, the centripetal parameterization is used because this gives the nicest results. + * These parameterizations are relatively heavy because the distance between 4 points have to be calculated. + * + * One optimization can be used to reuse distances since this is a sliding window approach. + * @param data + * @returns {string} + * @private */ - Legend.prototype.show = function() { - // show frame containing the items - if (!this.dom.frame.parentNode) { - this.body.dom.center.appendChild(this.dom.frame); + LineGraph.prototype._catmullRom = function(data, group) { + var alpha = group.options.catmullRom.alpha; + if (alpha == 0 || alpha === undefined) { + return this._catmullRomUniform(data); } - }; + else { + var p0, p1, p2, p3, bp1, bp2, d1,d2,d3, A, B, N, M; + var d3powA, d2powA, d3pow2A, d2pow2A, d1pow2A, d1powA; + var d = Math.round(data[0].x) + "," + Math.round(data[0].y) + " "; + var length = data.length; + for (var i = 0; i < length - 1; i++) { - Legend.prototype.setOptions = function(options) { - var fields = ['enabled','orientation','icons','left','right']; - util.selectiveDeepExtend(fields, this.options, options); - }; + p0 = (i == 0) ? data[0] : data[i-1]; + p1 = data[i]; + p2 = data[i+1]; + p3 = (i + 2 < length) ? data[i+2] : p2; - Legend.prototype.redraw = function() { - var activeGroups = 0; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { - activeGroups++; - } - } - } + d1 = Math.sqrt(Math.pow(p0.x - p1.x,2) + Math.pow(p0.y - p1.y,2)); + d2 = Math.sqrt(Math.pow(p1.x - p2.x,2) + Math.pow(p1.y - p2.y,2)); + d3 = Math.sqrt(Math.pow(p2.x - p3.x,2) + Math.pow(p2.y - p3.y,2)); - if (this.options[this.side].visible == false || this.amountOfGroups == 0 || this.options.enabled == false || activeGroups == 0) { - this.hide(); - } - else { - this.show(); - if (this.options[this.side].position == 'top-left' || this.options[this.side].position == 'bottom-left') { - 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 = 0 +'px'; - this.svg.style.right = ''; - } - else { - 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 = 0 +'px'; - this.svg.style.left = ''; - } + // Catmull-Rom to Cubic Bezier conversion matrix + // + // A = 2d1^2a + 3d1^a * d2^a + d3^2a + // B = 2d3^2a + 3d3^a * d2^a + d2^2a + // + // [ 0 1 0 0 ] + // [ -d2^2a/N A/N d1^2a/N 0 ] + // [ 0 d3^2a/M B/M -d2^2a/M ] + // [ 0 0 1 0 ] - if (this.options[this.side].position == 'top-left' || this.options[this.side].position == 'top-right') { - this.dom.frame.style.top = 4 - Number(this.body.dom.center.style.top.replace("px","")) + 'px'; - this.dom.frame.style.bottom = ''; - } - else { - this.dom.frame.style.bottom = 4 - Number(this.body.dom.center.style.top.replace("px","")) + 'px'; - this.dom.frame.style.top = ''; - } + // [ 0 1 0 0 ] + // [ -d2pow2a/N A/N d1pow2a/N 0 ] + // [ 0 d3pow2a/M B/M -d2pow2a/M ] + // [ 0 0 1 0 ] - if (this.options.icons == false) { - 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'; - } - else { - this.dom.frame.style.width = this.options.iconSize + 15 + this.dom.textArea.offsetWidth + 10 + 'px' - this.drawLegendIcons(); - } + d3powA = Math.pow(d3, alpha); + d3pow2A = Math.pow(d3,2*alpha); + d2powA = Math.pow(d2, alpha); + d2pow2A = Math.pow(d2,2*alpha); + d1powA = Math.pow(d1, alpha); + d1pow2A = Math.pow(d1,2*alpha); - var content = ''; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { - content += this.groups[groupId].content + '
'; - } - } - } - this.dom.textArea.innerHTML = content; - this.dom.textArea.style.lineHeight = ((0.75 * this.options.iconSize) + this.options.iconSpacing) + 'px'; - } - }; + A = 2*d1pow2A + 3*d1powA * d2powA + d2pow2A; + B = 2*d3pow2A + 3*d3powA * d2powA + d2pow2A; + N = 3*d1powA * (d1powA + d2powA); + if (N > 0) {N = 1 / N;} + M = 3*d3powA * (d3powA + d2powA); + if (M > 0) {M = 1 / M;} - Legend.prototype.drawLegendIcons = function() { - if (this.dom.frame.parentNode) { - DOMutil.prepareElements(this.svgElements); - var padding = window.getComputedStyle(this.dom.frame).paddingTop; - var iconOffset = Number(padding.replace('px','')); - var x = iconOffset; - var iconWidth = this.options.iconSize; - var iconHeight = 0.75 * this.options.iconSize; - var y = iconOffset + 0.5 * iconHeight + 3; + bp1 = { x: ((-d2pow2A * p0.x + A*p1.x + d1pow2A * p2.x) * N), + y: ((-d2pow2A * p0.y + A*p1.y + d1pow2A * p2.y) * N)}; - this.svg.style.width = iconWidth + 5 + iconOffset + 'px'; + bp2 = { x: (( d3pow2A * p1.x + B*p2.x - d2pow2A * p3.x) * M), + y: (( d3pow2A * p1.y + B*p2.y - d2pow2A * p3.y) * M)}; - for (var groupId in this.groups) { - if (this.groups.hasOwnProperty(groupId)) { - if (this.groups[groupId].visible == true && (this.linegraphOptions.visibility[groupId] === undefined || this.linegraphOptions.visibility[groupId] == true)) { - this.groups[groupId].drawIcon(x, y, this.svgElements, this.svg, iconWidth, iconHeight); - y += iconHeight + this.options.iconSpacing; - } - } + if (bp1.x == 0 && bp1.y == 0) {bp1 = p1;} + if (bp2.x == 0 && bp2.y == 0) {bp2 = p2;} + d += "C" + + bp1.x + "," + + bp1.y + " " + + bp2.x + "," + + bp2.y + " " + + p2.x + "," + + p2.y + " "; } - DOMutil.cleanupElements(this.svgElements); + return d; } }; - module.exports = Legend; + /** + * this generates the SVG path for a linear drawing between datapoints. + * @param data + * @returns {string} + * @private + */ + LineGraph.prototype._linear = function(data) { + // linear + var d = ""; + for (var i = 0; i < data.length; i++) { + if (i == 0) { + d += data[i].x + "," + data[i].y; + } + else { + d += " " + data[i].x + "," + data[i].y; + } + } + return d; + }; + + module.exports = LineGraph; /***/ }, diff --git a/dist/vis.map b/dist/vis.map index e49d38fa..2d239d3f 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","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DataStep","Range","stack","TimeStep","components","items","Item","ItemBox","ItemPoint","ItemRange","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","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","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearch","orderedItems","range","field","field2","maxIterations","iteration","found","low","high","newLow","newHigh","guess","isVisible","start","console","log","binarySearchGeneric","sidePreference","newGuess","prevValue","nextValue","__WEBPACK_AMD_DEFINE_RESULT__","global","dfl","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","deprecate","msg","fn","printMsg","suppressDeprecationWarnings","warn","firstTime","apply","padToken","func","count","leftZeroFill","ordinalizeToken","period","lang","ordinal","Language","Moment","config","checkOverflow","Duration","duration","normalizedInput","normalizeObjectUnits","years","year","quarters","quarter","months","month","weeks","week","days","day","hours","hour","minutes","minute","seconds","second","milliseconds","millisecond","_milliseconds","_days","_months","_data","_bubble","cloneMoment","result","momentProperties","absRound","number","ceil","targetLength","forceSign","output","abs","sign","addOrSubtractDurationFromMoment","mom","isAdding","updateOffset","_d","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","_lang","results","utc","set","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","_pf","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","_strict","normalizeLanguage","makeAs","model","_isUTC","zone","_offset","local","loadLang","values","abbr","languages","unloadLang","getLangDefinition","j","next","get","k","hasModule","slice","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","_l","_meridiemParse","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","parseTokenOrdinal","RegExp","regexpEscape","unescapeFormat","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parts","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","parseInt","_dayOfYear","parseTwoDigitYear","_isPm","isPM","parseFloat","_useUTC","_tzm","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","w","weekYear","weekday","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dayOfYear","dateFromConfig","date","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","_i","now","getUTCFullYear","getFullYear","getMonth","getDate","makeDateFromStringAndFormat","_f","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","makeDateFromInput","aspNetJsonRegex","y","M","ms","setFullYear","setUTCFullYear","parseWeekday","language","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","round","args","relativeTimeThresholds","dd","dm","dy","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","add","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","res","dayOfMonth","unit","makeAccessor","keepTime","makeDurationGetter","name","makeDurationAsGetter","factor","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","_isAMomentObject","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","meridiem","A","H","S","SS","SSS","SSSS","Z","ZZ","z","zoneAbbr","zz","zoneName","X","unix","lists","pop","DDDD","_monthsShort","monthName","regex","_monthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LT","L","LL","LLL","LLLL","val","charAt","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","diff","_ordinal","postformat","_invalidDate","ret","parseIso","isDuration","inp","version","defaultFormat","relativeTimeThreshold","threshold","limit","_abbr","langData","obj","flags","parseZone","clone","isDSTShifted","parsingFlags","invalidAt","inputString","dur","subtract","asFloat","that","zoneDiff","startOf","from","time","humanize","fromNow","sod","isDST","getDay","endOf","isAfter","isBefore","isSame","offset","getTimezoneOffset","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","dates","isoWeeks","toJSON","data","withSuffix","difference","as","toIsoString","asSeconds","asMonths","require","noGlobal","webpackContext","req","webpackContextResolve","map","keys","resolve","webpackPolyfill","paths","children","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","createElement","drawPoint","x","group","point","drawPoints","style","setAttributeNS","size","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","item","col","cols","getValue","update","updatedIds","addOrUpdate","_updateItem","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","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","_ids","_onEvent","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","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","setOptions","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","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","to","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","getMouseX","startMouseY","getMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","delay","mouseX","mouseY","tooltipTimeout","clearTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","setTimeout","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","clientX","targetTouches","clientY","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","LN10","step1","pow","step2","step5","toPrecision","getStep","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setItems","Core","newDataSet","initialLoad","fit","setWindow","setGroups","groups","setSelection","focus","getSelection","itemData","middle","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","context","inStr","find","inArray","hasParent","node","parent","getCenter","touches","pageX","pageY","touch","getVelocity","deltaTime","deltaX","deltaY","getAngle","touch1","touch2","atan2","getDirection","getDistance","getScale","getRotation","isVertical","direction","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","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","timer","holdTimeout","holdThreshold","Hold","Release","Infinity","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","moveable","zoomable","zoomMin","zoomMax","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","hammerUtil","changed","_applyRange","newStart","newEnd","getRange","conversion","allowDragging","diffRange","fakeGesture","pointerDate","_pointerToDate","zoom","initDate","move","destroy","_isResized","resized","_previousWidth","_previousHeight","Activator","backgroundVertical","backgroundHorizontal","centerContainer","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","prevent_default","events","isActive","scrollTop","scrollTopMin","clickToUse","activator","_initAutoResize","component","active","_stopAutoResize","setCustomTime","getCustomTime","getVisibleItems","what","dataRange","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","repaint","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","foreground","majorLines","majorTexts","minorLines","minorTexts","minimumStep","lineTop","showMinorLabels","showMajorLabels","locale","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","insertBefore","minorCharWidth","first","xFirstMajorLabel","hasNext","isMajor","_repaintMinorText","getLabelMinor","_repaintMajorText","getLabelMajor","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","majorCharWidth","arr","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","autoScale","SCALE","DAY","WEEKDAY","setMinimumStep","roundToMinor","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","setScale","newScale","newStep","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","showCurrentTime","locales","title","currentTimeTimer","custom","showCustomTime","eventParams","drag","dragging","align","groupOrder","selectable","editable","updateTime","updateGroup","onAdd","onUpdate","onMove","onRemove","axis","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","_moveToGroup","groupId","oldGroup","UNGROUPED","box","labelSet","_updateUngrouped","_onSelectItem","_onMultiSelectItem","_onAddItem","show","addCallback","markDirty","hide","ii","unselect","select","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","offsetTop","offsetLeft","firstGroupIndex","firstGroupId","ungrouped","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_removeItem","groupData","groupOptions","oldGroupId","displayed","_constructByEndArray","endArray","itemFromTarget","selected","dragLeftItem","dragRightItem","itemProps","groupFromTarget","changes","ctrlKey","shiftKey","oldSelection","newSelection","xAbs","newItem","itemSetFromTarget","byStart","byEnd","inner","marker","Element","getLabelWidth","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","nostack","repositionY","setParent","_checkIfVisible","removeFromDataSet","orderByStart","orderByEnd","initialPosByStart","newVisibleItems","initialPosByEnd","_checkIfInvisible","repositionX","EPSILON","aTime","bTime","force","iMax","collidingItem","jj","collision","baseClassName","getComputedStyle","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","anchor","deleteButton","itemSetHeight","marginLeft","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","mousetrap","activate","display","unbind","_addEvent","_characterFromEvent","fromCharCode","_MAP","_KEYCODE_MAP","_stop","tag_name","tagName","contentEditable","_modifiersMatch","modifiers1","modifiers2","_resetSequences","do_not_reset","active_sequences","_sequence_levels","_inside_sequence","_getMatches","character","modifiers","combination","matches","_isModifier","seq","level","combo","_eventModifiers","altKey","metaKey","_fireCallback","cancelBubble","_handleCharacter","processed_sequence_callback","_handleKey","keyCode","_ignore_next_keyup","_resetSequenceTimer","_reset_timer","_getReverseMap","_REVERSE_MAP","_pickBestAction","_bindSequence","_increaseSequence","_callbackAndReset","_bindSingle","sequence_name","sequence","_SPECIAL_ALIASES","_SHIFT_MAP","_bindMultiple","combinations",8,9,13,16,17,18,20,27,32,33,34,35,36,37,38,39,40,45,46,91,93,224,106,107,109,110,111,186,187,188,189,190,191,192,219,220,221,222,"~","!","@","#","$","%","^","&","*","(",")","_","+",":","\"","<",">","?","|","command","return","escape","_direct_map","linegraph","getLegend","isGroupVisible","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","handleOverlap","catmullRom","parametrization","alpha","dataAxis","icons","customRange","legend","abortedGraphUpdate","lastStart","svgElements","groupsUsingDefaultStyles","rangePerPixelInv","svg","_updateGraph","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","removeGroup","addGroup","groupsContent","ungroupedCounter","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_convertXcoordinates","_getYRanges","_updateYAxis","_convertYcoordinates","_drawLineGraph","_drawBarGraphs","dataContainer","_applySampling","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","barCombinedData","barCombinedDataLeft","barCombinedDataRight","ignore","intersections","_getDataIntersections","_getStackedBarYRange","combinedData","accumulated","xpos","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","_toggleAxisVisiblity","drawIcons","master","lineOffset","stepPixelsForced","stepPixels","axisUsed","coreDistance","drawData","barPoints","minWidth","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","zeroPosition","path","svgHeight","_catmullRom","_linear","dFill","fillPath","_drawPoints","datapoints","xValue","yValue","extractedData","convertValue","setZeroPosition","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","linegraphOptions","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","amountOfGroups","graphOptions","lineContainer","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","activeGroups","_redrawLabels","deadSpace","marginRange","amountOfSteps","stepDifference","valueAtZero","marginEnd","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","stepIndex","marginStart","majorSteps","minorSteps","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","rounded","usingDefaultStyle","SVGcontainer","fillHeight","outline","barWidth","bar1Height","bar2Height","icon","side","iconSize","iconSpacing","textArea","drawLegendIcons","paddingTop","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","maxPhysicsTicksPerRender","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fixed","fontColor","fontSize","fontFace","highlightColor","edges","widthSelectionMultiplier","hoverWidth","fontFill","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","theta","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","freezeForStabilization","smoothCurves","dynamic","roundness","dynamicSmoothCurves","maxVelocity","minVelocity","stabilize","stabilizationIterations","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","hoverObj","controlNodesActive","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","_setupHierarchicalLayout","zoomExtent","startWithClustering","MixinLoader","_getScriptPath","scripts","getElementsByTagName","_getRange","minY","maxY","minX","maxX","nodeId","_findCenter","_centerNetwork","initialZoom","disableStart","zoomLevel","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","pinch","_onTap","_onDoubleTap","_onRelease","_onMouseMoveTitle","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","getTitle","isOverlappingWith","edge","connected","popup","setPosition","setText","oldNodesData","_updateSelection","_resetLevels","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","setValueRange","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","draw","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","iterations","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","checkMovement","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","_doInAllActiveSectors","_doInSupportSector","_animationStep","_handleNavigation","calculationTime","maxSteps","timeRequired","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","ua","requiresTimeout","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","storePosition","dataArray","allowedToMoveX","allowedToMoveY","focusOnNode","nodePosition","requiredScale","canvasCenter","distanceFromCenter","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","convertEdge","dotEdge","graphEdge","graphData","dotNode","graphNode","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","attributes","gNode","defaultIndex","DEFAULT","load","url","img","Image","onload","imagelist","grouplist","networkConstants","dynamicEdges","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","fx","fy","vx","vy","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScaleInv","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","attachEdge","detachEdge","originalLabel","triggerFunction","groupObj","imageObj","_drawDatabase","resize","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","distanceToBorder","_setForce","_addForce","isFixed","globalAlpha","drawImage","_label","textSize","getTextSize","clusterLineWidth","selectionLineWidth","borderWidthSelected","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","lineCount","yLine","measureText","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fromId","toId","widthSelected","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","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","arrow","edgeSegmentLength","fromBorderDist","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","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","maxWidth","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","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","centerX","centerY","_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","_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","_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","nodeIds","getSelectedNodes","edgeIds","getSelectedEdges","idArray","RangeError","selectNodes","selectEdges","_clearManipulatorBar","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","addNodeButton","_createAddNodeToolbar","addEdgeButton","_createAddEdgeToolbar","editButton","_editNode","_createEditEdgeToolbar","editModeButton","backButton","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","smooth","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","wrapper","navigationDivs","navigationDivActions","_stopMovement","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","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 +{"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","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DataStep","Range","stack","TimeStep","components","items","Item","ItemBox","ItemPoint","ItemRange","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","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","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearch","orderedItems","range","field","field2","maxIterations","iteration","found","low","high","newLow","newHigh","guess","isVisible","start","console","log","binarySearchGeneric","sidePreference","newGuess","prevValue","nextValue","__WEBPACK_AMD_DEFINE_RESULT__","global","dfl","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","deprecate","msg","fn","printMsg","suppressDeprecationWarnings","warn","firstTime","apply","padToken","func","count","leftZeroFill","ordinalizeToken","period","lang","ordinal","Language","Moment","config","checkOverflow","Duration","duration","normalizedInput","normalizeObjectUnits","years","year","quarters","quarter","months","month","weeks","week","days","day","hours","hour","minutes","minute","seconds","second","milliseconds","millisecond","_milliseconds","_days","_months","_data","_bubble","cloneMoment","result","momentProperties","absRound","number","ceil","targetLength","forceSign","output","abs","sign","addOrSubtractDurationFromMoment","mom","isAdding","updateOffset","_d","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","_lang","results","utc","set","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","_pf","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","_strict","normalizeLanguage","makeAs","model","_isUTC","zone","_offset","local","loadLang","values","abbr","languages","unloadLang","getLangDefinition","j","next","get","k","hasModule","slice","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","_l","_meridiemParse","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","parseTokenOrdinal","RegExp","regexpEscape","unescapeFormat","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parts","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","parseInt","_dayOfYear","parseTwoDigitYear","_isPm","isPM","parseFloat","_useUTC","_tzm","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","w","weekYear","weekday","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dayOfYear","dateFromConfig","date","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","_i","now","getUTCFullYear","getFullYear","getMonth","getDate","makeDateFromStringAndFormat","_f","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","makeDateFromInput","aspNetJsonRegex","y","M","ms","setFullYear","setUTCFullYear","parseWeekday","language","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","round","args","relativeTimeThresholds","dd","dm","dy","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","add","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","res","dayOfMonth","unit","makeAccessor","keepTime","makeDurationGetter","name","makeDurationAsGetter","factor","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","_isAMomentObject","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","meridiem","A","H","S","SS","SSS","SSSS","Z","ZZ","z","zoneAbbr","zz","zoneName","X","unix","lists","pop","DDDD","_monthsShort","monthName","regex","_monthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LT","L","LL","LLL","LLLL","val","charAt","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","diff","_ordinal","postformat","_invalidDate","ret","parseIso","isDuration","inp","version","defaultFormat","relativeTimeThreshold","threshold","limit","_abbr","langData","obj","flags","parseZone","clone","isDSTShifted","parsingFlags","invalidAt","inputString","dur","subtract","asFloat","that","zoneDiff","startOf","from","time","humanize","fromNow","sod","isDST","getDay","endOf","isAfter","isBefore","isSame","offset","getTimezoneOffset","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","dates","isoWeeks","toJSON","data","withSuffix","difference","as","toIsoString","asSeconds","asMonths","require","noGlobal","webpackContext","req","webpackContextResolve","map","keys","resolve","webpackPolyfill","paths","children","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","createElement","drawPoint","x","group","point","drawPoints","style","setAttributeNS","size","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","item","col","cols","getValue","update","updatedIds","addOrUpdate","_updateItem","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","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","_ids","_onEvent","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","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","setOptions","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","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","to","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","getMouseX","startMouseY","getMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","delay","mouseX","mouseY","tooltipTimeout","clearTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","setTimeout","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","clientX","targetTouches","clientY","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","LN10","step1","pow","step2","step5","toPrecision","getStep","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setItems","Core","newDataSet","initialLoad","fit","setWindow","setGroups","groups","setSelection","focus","getSelection","itemData","middle","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","context","inStr","find","inArray","hasParent","node","parent","getCenter","touches","pageX","pageY","touch","getVelocity","deltaTime","deltaX","deltaY","getAngle","touch1","touch2","atan2","getDirection","getDistance","getScale","getRotation","isVertical","direction","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","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","timer","holdTimeout","holdThreshold","Hold","Release","Infinity","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","moveable","zoomable","zoomMin","zoomMax","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","hammerUtil","changed","_applyRange","newStart","newEnd","getRange","conversion","allowDragging","diffRange","fakeGesture","pointerDate","_pointerToDate","zoom","initDate","move","destroy","_isResized","resized","_previousWidth","_previousHeight","Activator","backgroundVertical","backgroundHorizontal","centerContainer","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","prevent_default","events","isActive","scrollTop","scrollTopMin","clickToUse","activator","_initAutoResize","component","active","_stopAutoResize","setCustomTime","getCustomTime","getVisibleItems","what","dataRange","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","repaint","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","foreground","majorLines","majorTexts","minorLines","minorTexts","minimumStep","lineTop","showMinorLabels","showMajorLabels","locale","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","insertBefore","minorCharWidth","first","xFirstMajorLabel","hasNext","isMajor","_repaintMinorText","getLabelMinor","_repaintMajorText","getLabelMajor","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","majorCharWidth","arr","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","autoScale","SCALE","DAY","WEEKDAY","setMinimumStep","roundToMinor","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","setScale","newScale","newStep","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","showCurrentTime","locales","title","currentTimeTimer","custom","showCustomTime","eventParams","drag","dragging","align","groupOrder","selectable","editable","updateTime","updateGroup","onAdd","onUpdate","onMove","onRemove","axis","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","_moveToGroup","groupId","oldGroup","UNGROUPED","box","labelSet","_updateUngrouped","_onSelectItem","_onMultiSelectItem","_onAddItem","show","addCallback","markDirty","hide","ii","unselect","select","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","offsetTop","offsetLeft","firstGroupIndex","firstGroupId","ungrouped","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_removeItem","groupData","groupOptions","oldGroupId","displayed","_constructByEndArray","endArray","itemFromTarget","selected","dragLeftItem","dragRightItem","itemProps","groupFromTarget","changes","ctrlKey","shiftKey","oldSelection","newSelection","xAbs","newItem","itemSetFromTarget","byStart","byEnd","inner","marker","Element","getLabelWidth","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","nostack","repositionY","setParent","_checkIfVisible","removeFromDataSet","orderByStart","orderByEnd","initialPosByStart","newVisibleItems","initialPosByEnd","_checkIfInvisible","repositionX","EPSILON","aTime","bTime","force","iMax","collidingItem","jj","collision","baseClassName","getComputedStyle","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","anchor","deleteButton","itemSetHeight","marginLeft","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","mousetrap","activate","display","unbind","_addEvent","_characterFromEvent","fromCharCode","_MAP","_KEYCODE_MAP","_stop","tag_name","tagName","contentEditable","_modifiersMatch","modifiers1","modifiers2","_resetSequences","do_not_reset","active_sequences","_sequence_levels","_inside_sequence","_getMatches","character","modifiers","combination","matches","_isModifier","seq","level","combo","_eventModifiers","altKey","metaKey","_fireCallback","cancelBubble","_handleCharacter","processed_sequence_callback","_handleKey","keyCode","_ignore_next_keyup","_resetSequenceTimer","_reset_timer","_getReverseMap","_REVERSE_MAP","_pickBestAction","_bindSequence","_increaseSequence","_callbackAndReset","_bindSingle","sequence_name","sequence","_SPECIAL_ALIASES","_SHIFT_MAP","_bindMultiple","combinations",8,9,13,16,17,18,20,27,32,33,34,35,36,37,38,39,40,45,46,91,93,224,106,107,109,110,111,186,187,188,189,190,191,192,219,220,221,222,"~","!","@","#","$","%","^","&","*","(",")","_","+",":","\"","<",">","?","|","command","return","escape","_direct_map","linegraph","getLegend","isGroupVisible","customRange","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","marginRange","rounded","svg","linegraphOptions","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","lineOffset","master","svgElements","amountOfGroups","addGroup","graphOptions","removeGroup","lineContainer","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","changeCalled","activeGroups","_redrawLabels","amountOfSteps","stepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","side","iconSize","iconSpacing","textArea","drawLegendIcons","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","lastStart","rangePerPixelInv","_updateGraph","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","preprocessedGroupData","processedGroupData","groupRanges","minDate","maxDate","_getRelevantData","_convertXcoordinates","_getYRanges","_updateYAxis","_convertYcoordinates","_drawLineGraph","_drawBarGraphs","dataContainer","_applySampling","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","barCombinedData","barCombinedDataLeft","barCombinedDataRight","ignore","intersections","_getDataIntersections","_getStackedBarYRange","combinedData","accumulated","xpos","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","_toggleAxisVisiblity","drawIcons","axisUsed","coreDistance","drawData","barPoints","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","svgHeight","_catmullRom","_linear","dFill","_drawPoints","datapoints","xValue","yValue","extractedData","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","maxPhysicsTicksPerRender","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fixed","fontColor","fontSize","fontFace","highlightColor","edges","widthSelectionMultiplier","hoverWidth","fontFill","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","theta","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","freezeForStabilization","smoothCurves","dynamic","roundness","dynamicSmoothCurves","maxVelocity","minVelocity","stabilize","stabilizationIterations","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","hoverObj","controlNodesActive","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","_setupHierarchicalLayout","zoomExtent","startWithClustering","MixinLoader","_getScriptPath","scripts","getElementsByTagName","_getRange","minY","maxY","minX","maxX","nodeId","_findCenter","_centerNetwork","initialZoom","disableStart","zoomLevel","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","pinch","_onTap","_onDoubleTap","_onRelease","_onMouseMoveTitle","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","getTitle","isOverlappingWith","edge","connected","popup","setPosition","setText","oldNodesData","_updateSelection","_resetLevels","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","setValueRange","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","draw","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","iterations","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","checkMovement","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","_doInAllActiveSectors","_doInSupportSector","_animationStep","_handleNavigation","calculationTime","maxSteps","timeRequired","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","ua","requiresTimeout","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","storePosition","dataArray","allowedToMoveX","allowedToMoveY","focusOnNode","nodePosition","requiredScale","canvasCenter","distanceFromCenter","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","convertEdge","dotEdge","graphEdge","graphData","dotNode","graphNode","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","attributes","gNode","defaultIndex","DEFAULT","load","url","img","Image","onload","imagelist","grouplist","networkConstants","dynamicEdges","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","fx","fy","vx","vy","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScaleInv","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","attachEdge","detachEdge","originalLabel","triggerFunction","groupObj","imageObj","_drawDatabase","resize","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","distanceToBorder","_setForce","_addForce","isFixed","globalAlpha","drawImage","_label","textSize","getTextSize","clusterLineWidth","selectionLineWidth","borderWidthSelected","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","lineCount","yLine","measureText","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fromId","toId","widthSelected","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","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","arrow","edgeSegmentLength","fromBorderDist","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","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","maxWidth","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","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","centerX","centerY","_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","_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","_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","nodeIds","getSelectedNodes","edgeIds","getSelectedEdges","idArray","RangeError","selectNodes","selectEdges","_clearManipulatorBar","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","addNodeButton","_createAddNodeToolbar","addEdgeButton","_createAddEdgeToolbar","editButton","_editNode","_createEditEdgeToolbar","editModeButton","backButton","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","smooth","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","wrapper","navigationDivs","navigationDivActions","_stopMovement","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","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 537200c0..02bd6e6c 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -22,15 +22,15 @@ * License for the specific language governing permissions and limitations under * the License. */ -!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(8),e.Graph3d=i(9),e.graph3d={Camera:i(13),Filter:i(14),Point2d:i(12),Point3d:i(11),Slider:i(15),StepNumber:i(16)},e.Timeline=i(17),e.Graph2d=i(38),e.timeline={DataStep:i(41),Range:i(20),stack:i(31),TimeStep:i(25),components:{items:{Item:i(33),ItemBox:i(34),ItemPoint:i(35),ItemRange:i(32)},Component:i(22),CurrentTime:i(26),CustomTime:i(28),DataAxis:i(40),GraphGroup:i(42),Group:i(30),ItemSet:i(29),Legend:i(43),LineGraph:i(39),TimeAxis:i(24)}},e.Network=i(44),e.network={Edge:i(50),Groups:i(47),Images:i(48),Node:i(49),Popup:i(51),dotparser:i(45),gephiParser:i(46)},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(18)},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":t instanceof Array?"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(t instanceof Array)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}},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;sa;)o=void 0===s?n[u][i]:n[u][i][s],n[u].isVisible(e)?h=!0:(o=r&&console.log("BinarySearch too many iterations. Aborting.")}return u},exports.binarySearchGeneric=function(t,e,i,s){var o,n,r,a,h=1e4,d=0,l=t,c=!1,p=0,u=l.length,f=p,g=u,m=Math.floor(.5*(u+p));if(0==u)m=-1;else if(1==u)r=l[m][i],m=r==e?0:-1;else{for(u-=1;0==c&&h>d;)n=l[Math.max(0,m-1)][i],r=l[m][i],a=l[Math.min(l.length-1,m+1)][i],r==e||e>n&&r>e||e>r&&a>e?(c=!0,r!=e&&("before"==s?e>n&&r>e&&(m=Math.max(0,m-1)):e>r&&a>e&&(m=Math.min(l.length-1,m+1)))):(e>r?f=Math.floor(.5*(u+p)):g=Math.floor(.5*(u+p)),o=Math.floor(.5*(u+p)),p==f&&u==g?(m=-1,c=!0):(u=g,p=f,m=Math.floor(.5*(u+p)))),d++;d>=h&&console.log("BinarySearch too many iterations. Aborting.")}return m}},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(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function h(t,e){function i(){ve.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}var s=!0;return f(function(){return s&&(i(),s=!1),e.apply(this,arguments)},e)}function d(t,e){return function(i){return v(t.call(this,i),e)}}function l(t,e){return function(i){return this.lang().ordinal(t.call(this,i),e)}}function c(){}function p(t){L(t),f(this,t)}function u(t){var e=S(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._bubble()}function f(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return e.hasOwnProperty("toString")&&(t.toString=e.toString),e.hasOwnProperty("valueOf")&&(t.valueOf=e.valueOf),t}function g(t){var e,i={};for(e in t)t.hasOwnProperty(e)&&ke.hasOwnProperty(e)&&(i[e]=t[e]);return i}function m(t){return 0>t?Math.ceil(t):Math.floor(t)}function v(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&C(t[s])!==C(e[s]))&&r++;return r+n}function w(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=ri[t]||ai[e]||e}return t}function S(t){var e,i,s={};for(i in t)t.hasOwnProperty(i)&&(e=w(i),e&&(s[e]=t[i]));return s}function M(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}ve[t]=function(s,o){var r,a,h=ve.fn._lang[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=ve().utc().set(i,t);return h.call(ve.fn._lang,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function C(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function E(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function D(t,e,i){return re(ve([t,11,31+e-i]),e,i).week}function T(t){return O(t)?366:365}function O(t){return t%4===0&&t%100!==0||t%400===0}function L(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Me]<0||t._a[Me]>11?Me:t._a[Ce]<1||t._a[Ce]>E(t._a[Se],t._a[Me])?Ce:t._a[Ee]<0||t._a[Ee]>23?Ee:t._a[De]<0||t._a[De]>59?De:t._a[Te]<0||t._a[Te]>59?Te:t._a[Oe]<0||t._a[Oe]>999?Oe:-1,t._pf._overflowDayOfYear&&(Se>e||e>Ce)&&(e=Ce),t._pf.overflow=e)}function k(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._isValid}function N(t){return t?t.toLowerCase().replace("_","-"):t}function I(t,e){return e._isUTC?ve(t).zone(e._offset||0):ve(t).local()}function A(t,e){return e.abbr=t,Le[t]||(Le[t]=new c),Le[t].set(e),Le[t]}function z(t){delete Le[t]}function P(t){var e,s,o,n,r=0,a=function(t){if(!Le[t]&&Ne)try{i(4)("./"+t)}catch(e){}return Le[t]};if(!t)return ve.fn._lang;if(!b(t)){if(s=a(t))return s;t=[t]}for(;r0;){if(s=a(n.slice(0,e).join("-")))return s;if(o&&o.length>=e&&x(n,o,!0)>=e-1)break;e--}r++}return ve.fn._lang}function R(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function F(t){var e,i,s=t.match(Pe);for(e=0,i=s.length;i>e;e++)s[e]=pi[s[e]]?pi[s[e]]:R(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 H(t,e){return t.isValid()?(e=Y(e,t.lang()),hi[e]||(hi[e]=F(e)),hi[e](t)):t.lang().invalidDate()}function Y(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Re.lastIndex=0;s>=0&&Re.test(t);)t=t.replace(Re,i),Re.lastIndex=0,s-=1;return t}function B(t,e){var i,s=e._strict;switch(t){case"Q":return Ze;case"DDDD":return Ke;case"YYYY":case"GGGG":case"gggg":return s?$e:Ye;case"Y":case"G":case"g":return Qe;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?Je:Be;case"S":if(s)return Ze;case"SS":if(s)return qe;case"SSS":if(s)return Ke;case"DDD":return He;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ge;case"a":case"A":return P(e._l)._meridiemParse;case"X":return Ve;case"Z":case"ZZ":return je;case"T":return Ue;case"SSSS":return We;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?qe:Fe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Fe;case"Do":return Xe;default:return i=new RegExp(K(q(t.replace("\\","")),"i"))}}function W(t){t=t||"";var e=t.match(je)||[],i=e[e.length-1]||[],s=(i+"").match(oi)||["-",0,0],o=+(60*s[1])+C(s[2]);return"+"===s[0]?-o:o}function G(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Me]=3*(C(e)-1));break;case"M":case"MM":null!=e&&(o[Me]=C(e)-1);break;case"MMM":case"MMMM":s=P(i._l).monthsParse(e),null!=s?o[Me]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ce]=C(e));break;case"Do":null!=e&&(o[Ce]=C(parseInt(e,10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=C(e));break;case"YY":o[Se]=ve.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Se]=C(e);break;case"a":case"A":i._isPm=P(i._l).isPM(e);break;case"H":case"HH":case"h":case"hh":o[Ee]=C(e);break;case"m":case"mm":o[De]=C(e);break;case"s":case"ss":o[Te]=C(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Oe]=C(1e3*("0."+e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=W(e);break;case"dd":case"ddd":case"dddd":s=P(i._l).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]=C(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=ve.parseTwoDigitYear(e)}}function j(t){var e,i,s,o,n,a,h,d;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Se],re(ve(),1,4).year),s=r(e.W,1),o=r(e.E,1)):(d=P(t._l),n=d._week.dow,a=d._week.doy,i=r(e.gg,t._a[Se],re(ve(),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=ae(i,s,o,a,n),t._a[Se]=h.year,t._dayOfYear=h.dayOfYear}function U(t){var e,i,s,o,n=[];if(!t._d){for(s=X(t),t._w&&null==t._a[Ce]&&null==t._a[Me]&&j(t),t._dayOfYear&&(o=r(t._a[Se],s[Se]),t._dayOfYear>T(o)&&(t._pf._overflowDayOfYear=!0),i=ie(o,0,t._dayOfYear),t._a[Me]=i.getUTCMonth(),t._a[Ce]=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];t._d=(t._useUTC?ie:ee).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm)}}function V(t){var e;t._d||(e=S(t._i),t._a=[e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond],U(t))}function X(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function Z(t){if(t._f===ve.ISO_8601)return void J(t);t._a=[],t._pf.empty=!0;var e,i,s,o,n,r=P(t._l),a=""+t._i,h=a.length,d=0;for(s=Y(t._f,r).match(Pe)||[],e=0;e0&&t._pf.unusedInput.push(n),a=a.slice(a.indexOf(i)+i.length),d+=i.length),pi[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),G(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._isPm&&t._a[Ee]<12&&(t._a[Ee]+=12),t._isPm===!1&&12===t._a[Ee]&&(t._a[Ee]=0),U(t),L(t)}function q(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function K(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(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));f(t,i||e)}function J(t){var e,i,s=t._i,o=ti.exec(s);if(o){for(t._pf.iso=!0,e=0,i=ii.length;i>e;e++)if(ii[e][1].exec(s)){t._f=ii[e][0]+(o[6]||" ");break}for(e=0,i=si.length;i>e;e++)if(si[e][1].exec(s)){t._f+=si[e][0];break}s.match(je)&&(t._f+="Z"),Z(t)}else t._isValid=!1}function Q(t){J(t),t._isValid===!1&&(delete t._isValid,ve.createFromInputFallback(t))}function te(t){var e=t._i,i=Ie.exec(e);e===n?t._d=new Date:i?t._d=new Date(+i[1]):"string"==typeof e?Q(t):b(e)?(t._a=e.slice(0),U(t)):_(e)?t._d=new Date(+e):"object"==typeof e?V(t):"number"==typeof e?t._d=new Date(e):ve.createFromInputFallback(t)}function ee(t,e,i,s,o,n,r){var a=new Date(t,e,i,s,o,n,r);return 1970>t&&a.setFullYear(t),a}function ie(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function se(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 oe(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ne(t,e,i){var s=we(Math.abs(t)/1e3),o=we(s/60),n=we(o/60),r=we(n/24),a=we(r/365),h=s0,h[4]=i,oe.apply({},h)}function re(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=ve(t).add("d",n),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ae(t,e,i,s,o){var n,r,a=ie(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:T(t-1)+r}}function he(t){var e=t._i,i=t._f;return null===e||i===n&&""===e?ve.invalid({nullInput:!0}):("string"==typeof e&&(t._i=e=P().preparse(e)),ve.isMoment(e)?(t=g(e),t._d=new Date(+e._d)):i?b(i)?$(t):Z(t):te(t),new p(t))}function de(t,e){var i,s;if(1===e.length&&b(e[0])&&(e=e[0]),!e.length)return ve();for(i=e[0],s=1;s=0?"+":"-";return e+v(Math.abs(t),6)},gg:function(){return v(this.weekYear()%100,2)},gggg:function(){return v(this.weekYear(),4)},ggggg:function(){return v(this.weekYear(),5)},GG:function(){return v(this.isoWeekYear()%100,2)},GGGG:function(){return v(this.isoWeekYear(),4)},GGGGG:function(){return v(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().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 C(this.milliseconds()/100)},SS:function(){return v(C(this.milliseconds()/10),2)},SSS:function(){return v(this.milliseconds(),3)},SSSS:function(){return v(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+v(C(t/60),2)+":"+v(C(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+v(C(t/60),2)+v(C(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},ui=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];li.length;)be=li.pop(),pi[be+"o"]=l(pi[be],be);for(;ci.length;)be=ci.pop(),pi[be+be]=d(pi[be],2);for(pi.DDDD=d(pi.DDD,3),f(c.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e},_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){var e,i,s;for(this._monthsParse||(this._monthsParse=[]),e=0;12>e;e++)if(this._monthsParse[e]||(i=ve.utc([2e3,e]),s="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[e]=new RegExp(s.replace(".",""),"i")),this._monthsParse[e].test(t))return e},_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=ve([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:{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){var i=this._calendar[t];return"function"==typeof i?i.apply(e):i},_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",preparse:function(t){return t},postformat:function(t){return t},week:function(t){return re(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),ve=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=a(),he(o)},ve.suppressDeprecationWarnings=!1,ve.createFromInputFallback=h("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)}),ve.min=function(){var t=[].slice.call(arguments,0);return de("isBefore",t)},ve.max=function(){var t=[].slice.call(arguments,0);return de("isAfter",t)},ve.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=a(),he(o).utc()},ve.unix=function(t){return ve(1e3*t)},ve.duration=function(t,e){var i,s,o,n=t,r=null;return ve.isDuration(t)?n={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(n={},e?n[e]=t:n.milliseconds=t):(r=Ae.exec(t))?(i="-"===r[1]?-1:1,n={y:0,d:C(r[Ce])*i,h:C(r[Ee])*i,m:C(r[De])*i,s:C(r[Te])*i,ms:C(r[Oe])*i}):(r=ze.exec(t))&&(i="-"===r[1]?-1:1,o=function(t){var e=t&&parseFloat(t.replace(",",".")); +!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(8),e.Graph3d=i(9),e.graph3d={Camera:i(13),Filter:i(14),Point2d:i(12),Point3d:i(11),Slider:i(15),StepNumber:i(16)},e.Timeline=i(17),e.Graph2d=i(38),e.timeline={DataStep:i(39),Range:i(20),stack:i(31),TimeStep:i(25),components:{items:{Item:i(33),ItemBox:i(34),ItemPoint:i(35),ItemRange:i(32)},Component:i(22),CurrentTime:i(26),CustomTime:i(28),DataAxis:i(40),GraphGroup:i(41),Group:i(30),ItemSet:i(29),Legend:i(42),LineGraph:i(43),TimeAxis:i(24)}},e.Network=i(44),e.network={Edge:i(50),Groups:i(47),Images:i(48),Node:i(49),Popup:i(51),dotparser:i(45),gephiParser:i(46)},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(18)},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":t instanceof Array?"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(t instanceof Array)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}},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;sa;)o=void 0===s?n[u][i]:n[u][i][s],n[u].isVisible(e)?h=!0:(o=r&&console.log("BinarySearch too many iterations. Aborting.")}return u},exports.binarySearchGeneric=function(t,e,i,s){var o,n,r,a,h=1e4,d=0,l=t,c=!1,p=0,u=l.length,f=p,g=u,m=Math.floor(.5*(u+p));if(0==u)m=-1;else if(1==u)r=l[m][i],m=r==e?0:-1;else{for(u-=1;0==c&&h>d;)n=l[Math.max(0,m-1)][i],r=l[m][i],a=l[Math.min(l.length-1,m+1)][i],r==e||e>n&&r>e||e>r&&a>e?(c=!0,r!=e&&("before"==s?e>n&&r>e&&(m=Math.max(0,m-1)):e>r&&a>e&&(m=Math.min(l.length-1,m+1)))):(e>r?f=Math.floor(.5*(u+p)):g=Math.floor(.5*(u+p)),o=Math.floor(.5*(u+p)),p==f&&u==g?(m=-1,c=!0):(u=g,p=f,m=Math.floor(.5*(u+p)))),d++;d>=h&&console.log("BinarySearch too many iterations. Aborting.")}return m}},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(){return{empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1}}function h(t,e){function i(){ve.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}var s=!0;return f(function(){return s&&(i(),s=!1),e.apply(this,arguments)},e)}function d(t,e){return function(i){return v(t.call(this,i),e)}}function l(t,e){return function(i){return this.lang().ordinal(t.call(this,i),e)}}function c(){}function p(t){L(t),f(this,t)}function u(t){var e=S(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._bubble()}function f(t,e){for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return e.hasOwnProperty("toString")&&(t.toString=e.toString),e.hasOwnProperty("valueOf")&&(t.valueOf=e.valueOf),t}function g(t){var e,i={};for(e in t)t.hasOwnProperty(e)&&ke.hasOwnProperty(e)&&(i[e]=t[e]);return i}function m(t){return 0>t?Math.ceil(t):Math.floor(t)}function v(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&C(t[s])!==C(e[s]))&&r++;return r+n}function w(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=ri[t]||ai[e]||e}return t}function S(t){var e,i,s={};for(i in t)t.hasOwnProperty(i)&&(e=w(i),e&&(s[e]=t[i]));return s}function M(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}ve[t]=function(s,o){var r,a,h=ve.fn._lang[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=ve().utc().set(i,t);return h.call(ve.fn._lang,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function C(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function E(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function D(t,e,i){return re(ve([t,11,31+e-i]),e,i).week}function T(t){return O(t)?366:365}function O(t){return t%4===0&&t%100!==0||t%400===0}function L(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Me]<0||t._a[Me]>11?Me:t._a[Ce]<1||t._a[Ce]>E(t._a[Se],t._a[Me])?Ce:t._a[Ee]<0||t._a[Ee]>23?Ee:t._a[De]<0||t._a[De]>59?De:t._a[Te]<0||t._a[Te]>59?Te:t._a[Oe]<0||t._a[Oe]>999?Oe:-1,t._pf._overflowDayOfYear&&(Se>e||e>Ce)&&(e=Ce),t._pf.overflow=e)}function k(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._isValid}function N(t){return t?t.toLowerCase().replace("_","-"):t}function I(t,e){return e._isUTC?ve(t).zone(e._offset||0):ve(t).local()}function A(t,e){return e.abbr=t,Le[t]||(Le[t]=new c),Le[t].set(e),Le[t]}function z(t){delete Le[t]}function P(t){var e,s,o,n,r=0,a=function(t){if(!Le[t]&&Ne)try{i(4)("./"+t)}catch(e){}return Le[t]};if(!t)return ve.fn._lang;if(!b(t)){if(s=a(t))return s;t=[t]}for(;r0;){if(s=a(n.slice(0,e).join("-")))return s;if(o&&o.length>=e&&x(n,o,!0)>=e-1)break;e--}r++}return ve.fn._lang}function R(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function F(t){var e,i,s=t.match(Pe);for(e=0,i=s.length;i>e;e++)s[e]=pi[s[e]]?pi[s[e]]:R(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 H(t,e){return t.isValid()?(e=Y(e,t.lang()),hi[e]||(hi[e]=F(e)),hi[e](t)):t.lang().invalidDate()}function Y(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Re.lastIndex=0;s>=0&&Re.test(t);)t=t.replace(Re,i),Re.lastIndex=0,s-=1;return t}function B(t,e){var i,s=e._strict;switch(t){case"Q":return Ze;case"DDDD":return Ke;case"YYYY":case"GGGG":case"gggg":return s?$e:Ye;case"Y":case"G":case"g":return Qe;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?Je:Be;case"S":if(s)return Ze;case"SS":if(s)return qe;case"SSS":if(s)return Ke;case"DDD":return He;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Ge;case"a":case"A":return P(e._l)._meridiemParse;case"X":return Ve;case"Z":case"ZZ":return je;case"T":return Ue;case"SSSS":return We;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?qe:Fe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Fe;case"Do":return Xe;default:return i=new RegExp(K(q(t.replace("\\","")),"i"))}}function W(t){t=t||"";var e=t.match(je)||[],i=e[e.length-1]||[],s=(i+"").match(oi)||["-",0,0],o=+(60*s[1])+C(s[2]);return"+"===s[0]?-o:o}function G(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Me]=3*(C(e)-1));break;case"M":case"MM":null!=e&&(o[Me]=C(e)-1);break;case"MMM":case"MMMM":s=P(i._l).monthsParse(e),null!=s?o[Me]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ce]=C(e));break;case"Do":null!=e&&(o[Ce]=C(parseInt(e,10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=C(e));break;case"YY":o[Se]=ve.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Se]=C(e);break;case"a":case"A":i._isPm=P(i._l).isPM(e);break;case"H":case"HH":case"h":case"hh":o[Ee]=C(e);break;case"m":case"mm":o[De]=C(e);break;case"s":case"ss":o[Te]=C(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Oe]=C(1e3*("0."+e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=W(e);break;case"dd":case"ddd":case"dddd":s=P(i._l).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]=C(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=ve.parseTwoDigitYear(e)}}function j(t){var e,i,s,o,n,a,h,d;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Se],re(ve(),1,4).year),s=r(e.W,1),o=r(e.E,1)):(d=P(t._l),n=d._week.dow,a=d._week.doy,i=r(e.gg,t._a[Se],re(ve(),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=ae(i,s,o,a,n),t._a[Se]=h.year,t._dayOfYear=h.dayOfYear}function U(t){var e,i,s,o,n=[];if(!t._d){for(s=X(t),t._w&&null==t._a[Ce]&&null==t._a[Me]&&j(t),t._dayOfYear&&(o=r(t._a[Se],s[Se]),t._dayOfYear>T(o)&&(t._pf._overflowDayOfYear=!0),i=ie(o,0,t._dayOfYear),t._a[Me]=i.getUTCMonth(),t._a[Ce]=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];t._d=(t._useUTC?ie:ee).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm)}}function V(t){var e;t._d||(e=S(t._i),t._a=[e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond],U(t))}function X(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function Z(t){if(t._f===ve.ISO_8601)return void J(t);t._a=[],t._pf.empty=!0;var e,i,s,o,n,r=P(t._l),a=""+t._i,h=a.length,d=0;for(s=Y(t._f,r).match(Pe)||[],e=0;e0&&t._pf.unusedInput.push(n),a=a.slice(a.indexOf(i)+i.length),d+=i.length),pi[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),G(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._isPm&&t._a[Ee]<12&&(t._a[Ee]+=12),t._isPm===!1&&12===t._a[Ee]&&(t._a[Ee]=0),U(t),L(t)}function q(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function K(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function $(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));f(t,i||e)}function J(t){var e,i,s=t._i,o=ti.exec(s);if(o){for(t._pf.iso=!0,e=0,i=ii.length;i>e;e++)if(ii[e][1].exec(s)){t._f=ii[e][0]+(o[6]||" ");break}for(e=0,i=si.length;i>e;e++)if(si[e][1].exec(s)){t._f+=si[e][0];break}s.match(je)&&(t._f+="Z"),Z(t)}else t._isValid=!1}function Q(t){J(t),t._isValid===!1&&(delete t._isValid,ve.createFromInputFallback(t))}function te(t){var e=t._i,i=Ie.exec(e);e===n?t._d=new Date:i?t._d=new Date(+i[1]):"string"==typeof e?Q(t):b(e)?(t._a=e.slice(0),U(t)):_(e)?t._d=new Date(+e):"object"==typeof e?V(t):"number"==typeof e?t._d=new Date(e):ve.createFromInputFallback(t)}function ee(t,e,i,s,o,n,r){var a=new Date(t,e,i,s,o,n,r);return 1970>t&&a.setFullYear(t),a}function ie(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function se(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 oe(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ne(t,e,i){var s=we(Math.abs(t)/1e3),o=we(s/60),n=we(o/60),r=we(n/24),a=we(r/365),h=s0,h[4]=i,oe.apply({},h)}function re(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=ve(t).add("d",n),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ae(t,e,i,s,o){var n,r,a=ie(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:T(t-1)+r}}function he(t){var e=t._i,i=t._f;return null===e||i===n&&""===e?ve.invalid({nullInput:!0}):("string"==typeof e&&(t._i=e=P().preparse(e)),ve.isMoment(e)?(t=g(e),t._d=new Date(+e._d)):i?b(i)?$(t):Z(t):te(t),new p(t))}function de(t,e){var i,s;if(1===e.length&&b(e[0])&&(e=e[0]),!e.length)return ve();for(i=e[0],s=1;s=0?"+":"-";return e+v(Math.abs(t),6)},gg:function(){return v(this.weekYear()%100,2)},gggg:function(){return v(this.weekYear(),4)},ggggg:function(){return v(this.weekYear(),5)},GG:function(){return v(this.isoWeekYear()%100,2)},GGGG:function(){return v(this.isoWeekYear(),4)},GGGGG:function(){return v(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.lang().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.lang().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 C(this.milliseconds()/100)},SS:function(){return v(C(this.milliseconds()/10),2)},SSS:function(){return v(this.milliseconds(),3)},SSSS:function(){return v(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+v(C(t/60),2)+":"+v(C(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+v(C(t/60),2)+v(C(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},X:function(){return this.unix()},Q:function(){return this.quarter()}},ui=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];li.length;)be=li.pop(),pi[be+"o"]=l(pi[be],be);for(;ci.length;)be=ci.pop(),pi[be+be]=d(pi[be],2);for(pi.DDDD=d(pi.DDD,3),f(c.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e},_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){var e,i,s;for(this._monthsParse||(this._monthsParse=[]),e=0;12>e;e++)if(this._monthsParse[e]||(i=ve.utc([2e3,e]),s="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[e]=new RegExp(s.replace(".",""),"i")),this._monthsParse[e].test(t))return e},_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=ve([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:{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){var i=this._calendar[t];return"function"==typeof i?i.apply(e):i},_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",preparse:function(t){return t},postformat:function(t){return t},week:function(t){return re(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),ve=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=a(),he(o)},ve.suppressDeprecationWarnings=!1,ve.createFromInputFallback=h("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)}),ve.min=function(){var t=[].slice.call(arguments,0);return de("isBefore",t)},ve.max=function(){var t=[].slice.call(arguments,0);return de("isAfter",t)},ve.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=a(),he(o).utc()},ve.unix=function(t){return ve(1e3*t)},ve.duration=function(t,e){var i,s,o,n=t,r=null;return ve.isDuration(t)?n={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(n={},e?n[e]=t:n.milliseconds=t):(r=Ae.exec(t))?(i="-"===r[1]?-1:1,n={y:0,d:C(r[Ce])*i,h:C(r[Ee])*i,m:C(r[De])*i,s:C(r[Te])*i,ms:C(r[Oe])*i}):(r=ze.exec(t))&&(i="-"===r[1]?-1:1,o=function(t){var e=t&&parseFloat(t.replace(",",".")); return(isNaN(e)?0:e)*i},n={y:o(r[2]),M:o(r[3]),d:o(r[4]),h:o(r[5]),m:o(r[6]),s:o(r[7]),w:o(r[8])}),s=new u(n),ve.isDuration(t)&&t.hasOwnProperty("_lang")&&(s._lang=t._lang),s},ve.version=_e,ve.defaultFormat=ei,ve.ISO_8601=function(){},ve.momentProperties=ke,ve.updateOffset=function(){},ve.relativeTimeThreshold=function(t,e){return di[t]===n?!1:(di[t]=e,!0)},ve.lang=function(t,e){var i;return t?(e?A(N(t),e):null===e?(z(t),t="en"):Le[t]||P(t),i=ve.duration.fn._lang=ve.fn._lang=P(t),i._abbr):ve.fn._lang._abbr},ve.langData=function(t){return t&&t._lang&&t._lang._abbr&&(t=t._lang._abbr),P(t)},ve.isMoment=function(t){return t instanceof p||null!=t&&t.hasOwnProperty("_isAMomentObject")},ve.isDuration=function(t){return t instanceof u},be=ui.length-1;be>=0;--be)M(ui[be]);ve.normalizeUnits=function(t){return w(t)},ve.invalid=function(t){var e=ve.utc(0/0);return null!=t?f(e._pf,t):e._pf.userInvalidated=!0,e},ve.parseZone=function(){return ve.apply(null,arguments).parseZone()},ve.parseTwoDigitYear=function(t){return C(t)+(C(t)>68?1900:2e3)},f(ve.fn=p.prototype,{clone:function(){return ve(this)},valueOf:function(){return+this._d+6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().lang("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=ve(this).utc();return 00:!1},parsingFlags:function(){return f({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(){return this.zone(0)},local:function(){return this.zone(0),this._isUTC=!1,this},format:function(t){var e=H(this,t||ve.defaultFormat);return this.lang().postformat(e)},add:function(t,e){var i;return i="string"==typeof t&&"string"==typeof e?ve.duration(isNaN(+e)?+t:+e,isNaN(+e)?e:t):"string"==typeof t?ve.duration(+e,t):ve.duration(t,e),y(this,i,1),this},subtract:function(t,e){var i;return i="string"==typeof t&&"string"==typeof e?ve.duration(isNaN(+e)?+t:+e,isNaN(+e)?e:t):"string"==typeof t?ve.duration(+e,t):ve.duration(t,e),y(this,i,-1),this},diff:function(t,e,i){var s,o,n=I(t,this),r=6e4*(this.zone()-n.zone());return e=w(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+n.daysInMonth()),o=12*(this.year()-n.year())+(this.month()-n.month()),o+=(this-ve(this).startOf("month")-(n-ve(n).startOf("month")))/s,o-=6e4*(this.zone()-ve(this).startOf("month").zone()-(n.zone()-ve(n).startOf("month").zone()))/s,"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:m(o)},from:function(t,e){return ve.duration(this.diff(t)).lang(this.lang()._abbr).humanize(!e)},fromNow:function(t){return this.from(ve(),t)},calendar:function(t){var e=t||ve(),i=I(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.lang().calendar(o,this))},isLeapYear:function(){return O(this.year())},isDST:function(){return this.zone()+ve(t).startOf(e)},isBefore:function(t,e){return e="undefined"!=typeof e?e:"millisecond",+this.clone().startOf(e)<+ve(t).startOf(e)},isSame:function(t,e){return e=e||"ms",+this.clone().startOf(e)===+I(t,this).startOf(e)},min:h("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(t){return t=ve.apply(null,arguments),this>t?this:t}),max:h("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(t){return t=ve.apply(null,arguments),t>this?this:t}),zone:function(t,e){var i=this._offset||0;return null==t?this._isUTC?i:this._d.getTimezoneOffset():("string"==typeof t&&(t=W(t)),Math.abs(t)<16&&(t=60*t),this._offset=t,this._isUTC=!0,i!==t&&(!e||this._changeInProgress?y(this,ve.duration(i-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,ve.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?ve(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return E(this.year(),this.month())},dayOfYear:function(t){var e=we((ve(this).startOf("day")-ve(this).startOf("year"))/864e5)+1;return null==t?e:this.add("d",t-e)},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=re(this,this.lang()._week.dow,this.lang()._week.doy).year;return null==t?e:this.add("y",t-e)},isoWeekYear:function(t){var e=re(this,1,4).year;return null==t?e:this.add("y",t-e)},week:function(t){var e=this.lang().week(this);return null==t?e:this.add("d",7*(t-e))},isoWeek:function(t){var e=re(this,1,4).week;return null==t?e:this.add("d",7*(t-e))},weekday:function(t){var e=(this.day()+7-this.lang()._week.dow)%7;return null==t?e:this.add("d",t-e)},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return D(this.year(),1,4)},weeksInYear:function(){var t=this._lang._week;return D(this.year(),t.dow,t.doy)},get:function(t){return t=w(t),this[t]()},set:function(t,e){return t=w(t),"function"==typeof this[t]&&this[t](e),this},lang:function(t){return t===n?this._lang:(this._lang=P(t),this)}}),ve.fn.millisecond=ve.fn.milliseconds=ue("Milliseconds",!1),ve.fn.second=ve.fn.seconds=ue("Seconds",!1),ve.fn.minute=ve.fn.minutes=ue("Minutes",!1),ve.fn.hour=ve.fn.hours=ue("Hours",!0),ve.fn.date=ue("Date",!0),ve.fn.dates=h("dates accessor is deprecated. Use date instead.",ue("Date",!0)),ve.fn.year=ue("FullYear",!0),ve.fn.years=h("years accessor is deprecated. Use year instead.",ue("FullYear",!0)),ve.fn.days=ve.fn.day,ve.fn.months=ve.fn.month,ve.fn.weeks=ve.fn.week,ve.fn.isoWeeks=ve.fn.isoWeek,ve.fn.quarters=ve.fn.quarter,ve.fn.toJSON=ve.fn.toISOString,f(ve.duration.fn=u.prototype,{_bubble:function(){var t,e,i,s,o=this._milliseconds,n=this._days,r=this._months,a=this._data;a.milliseconds=o%1e3,t=m(o/1e3),a.seconds=t%60,e=m(t/60),a.minutes=e%60,i=m(e/60),a.hours=i%24,n+=m(i/24),a.days=n%30,r+=m(n/30),a.months=r%12,s=m(r/12),a.years=s},weeks:function(){return m(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*C(this._months/12)},humanize:function(t){var e=+this,i=ne(e,!t,this.lang());return t&&(i=this.lang().pastFuture(e,i)),this.lang().postformat(i)},add:function(t,e){var i=ve.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=ve.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=w(t),this[t.toLowerCase()+"s"]()},as:function(t){return t=w(t),this["as"+t.charAt(0).toUpperCase()+t.slice(1)+"s"]()},lang:ve.fn.lang,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"}});for(be in ni)ni.hasOwnProperty(be)&&(ge(be,ni[be]),fe(be.toLowerCase()));ge("Weeks",6048e5),ve.duration.fn.asMonths=function(){return(+this-31536e6*this.years())/2592e6+12*this.years()},ve.lang("en",{ordinal:function(t){var e=t%10,i=1===C(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Ne?o.exports=ve:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(xe.moment=ye),ve}.call(e,i,e,o),!(s!==n&&(o.exports=s)),me(!0))}).call(this)}).call(e,function(){return this}(),i(5)(t))},function(t,e,i){function s(t){return i(o(t))}function o(t){return n[t]||function(){throw new Error("Cannot find module '"+t+"'.")}()}var n={};s.keys=function(){return Object.keys(n)},s.resolve=o,t.exports=s},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){var s;return e.hasOwnProperty(t)?e[t].redundant.length>0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElement(t),i.appendChild(s)):(s=document.createElement(t),e[t]={used:[],redundant:[]},i.appendChild(s)),e[t].used.push(s),s},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.setAttributeNS(null,"class",s.className+" point")):(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),r.setAttributeNS(null,"class",s.className+" point")),r},e.drawBar=function(t,i,s,o,n,r,a){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)}var o=i(1);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 f=h[p];c[f]=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=this,r=n._fieldId,a=function(t){var e=t[r];n._data[e]?(e=n._updateItem(t),s.push(e)):(e=n._addItem(t),i.push(e))};if(Array.isArray(t))for(var h=0,d=t.length;d>h;h++)a(t[h]);else if(o.isDataTable(t))for(var l=this._getColumnNames(t),c=0,p=t.getNumberOfRows();p>c;c++){for(var u={},f=0,g=l.length;g>f;f++){var m=l[f];u[m]=t.getValue(c,f)}a(u)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s},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,f=i&&i.filter,g=[];if(void 0!=t)d=n._getItem(t,u),f&&!f(d)&&(d=null);else if(void 0!=e)for(c=0,p=e.length;p>c;c++)d=n._getItem(e[c],u),(!f||f(d))&&g.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=n._getItem(l,u),(!f||f(d))&&g.push(d));if(i&&i.order&&void 0==t&&this._sort(g,i.order),i&&i.fields){var m=i.fields;if(void 0!=t)d=this._filterFields(d,m);else for(c=0,p=g.length;p>c;c++)g[c]=this._filterFields(g[c],m)}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(g[c]);return s}return g},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(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",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 l,this.eye=new h(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)}var o=i(10),n=i(7),r=i(8),a=i(1),h=i(11),d=i(12),l=i(13),c=i(14),p=i(15),u=i(16);o(s.prototype),s.prototype._setScale=function(){this.scale=new h(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 g=(t-p)/(f-p),m=240*g,v=this._hsv2rgb(m,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 u(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new h(x,r,this.zMin)),Math.cos(2*_)>0?(m.textAlign="center",m.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(" "+i.getCurrent()+" ",o.x,o.y),i.next()}for(m.lineWidth=1,s=void 0===this.defaultYStep,i=new u(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new h(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(m.textAlign="center",m.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(" "+i.getCurrent()+" ",o.x,o.y),i.next();for(m.lineWidth=1,s=void 0===this.defaultZStep,i=new u(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 h(n,r,i.getCurrent())),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(t.x-b,t.y),m.stroke(),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.colorAxis,m.fillText(i.getCurrent()+" ",t.x-5,t.y),i.next();m.lineWidth=1,t=this._convert3Dto2D(new h(n,r,this.zMin)),e=this._convert3Dto2D(new h(n,r,this.zMax)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),m.lineWidth=1,p=this._convert3Dto2D(new h(this.xMin,this.yMin,this.zMin)),f=this._convert3Dto2D(new h(this.xMax,this.yMin,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(p.x,p.y),m.lineTo(f.x,f.y),m.stroke(),p=this._convert3Dto2D(new h(this.xMin,this.yMax,this.zMin)),f=this._convert3Dto2D(new h(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(p.x,p.y),m.lineTo(f.x,f.y),m.stroke(),m.lineWidth=1,t=this._convert3Dto2D(new h(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new h(this.xMin,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.stroke(),t=this._convert3Dto2D(new h(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new h(this.xMax,this.yMax,this.zMin)),m.strokeStyle=this.colorAxis,m.beginPath(),m.moveTo(t.x,t.y),m.lineTo(e.x,e.y),m.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 h(n,r,this.zMin)),Math.cos(2*_)>0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*_)<0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(w,o.x,o.y));var S=this.yLabel;S.length>0&&(l=.1/this.scale.x,n=Math.sin(_)>0?this.xMin-l:this.xMax+l,r=(this.yMin+this.yMax)/2,o=this._convert3Dto2D(new h(n,r,this.zMin)),Math.cos(2*_)<0?(m.textAlign="center",m.textBaseline="top"):Math.sin(2*_)>0?(m.textAlign="right",m.textBaseline="middle"):(m.textAlign="left",m.textBaseline="middle"),m.fillStyle=this.colorAxis,m.fillText(S,o.x,o.y));var M=this.zLabel;M.length>0&&(d=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 h(n,r,a)),m.textAlign="right",m.textBaseline="middle",m.fillStyle=this.colorAxis,m.fillText(M,o.x-d,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,d,l,c,p,u,f,g=this.frame.canvas,m=g.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(f=(t.point.z+e.point.z+i.point.z+o.point.z)/4,c=240*(1-(f-this.zMin)*this.scale.z/this.verticalRatio),p=1,this.showShadow?(u=Math.min(1+S.x/M/2,1),a=this._hsv2rgb(c,p,u),d=a):(u=1,a=this._hsv2rgb(c,p,u),d=this.colorAxis)):(a="gray",d=this.colorAxis),l=.5,m.lineWidth=l,m.fillStyle=a,m.strokeStyle=d,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(o.screen.x,o.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(n=0;np&&(p=0);var u,f,g;this.style===s.STYLE.DOTCOLOR?(u=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(u,1,1),g=this._hsv2rgb(u,1,.8)):this.style===s.STYLE.DOTSIZE?(f=this.colorDot,g=this.colorDotBorder):(u=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(u,1,1),g=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=g,i.fillStyle=f,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=getMouseX(t),this.startMouseY=getMouseY(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)},a.addEventListener(document,"mousemove",e.onmousemove),a.addEventListener(document,"mouseup",e.onmouseup),a.preventDefault(t)}},s.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(getMouseX(t))-this.startMouseX,i=parseFloat(getMouseY(t))-this.startMouseY,s=this.startArmRotation.horizontal+e/200,o=this.startArmRotation.vertical+i/200,n=4,r=Math.sin(n/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 d(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 l=n.surfaces;if(l)for(var c=l.length-1;c>=0;c--){var p=l[c],u=p.corners,f=[u[0].screen,u[1].screen,u[2].screen],g=[u[2].screen,u[3].screen,u[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,g))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)}}},getMouseX=function(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0},getMouseY=function(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0},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){Point2d=function(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0},t.exports=Point2d},function(t,e,i){var s=i(11);Camera=function(){this.armLocation=new s,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new s,this.cameraRotation=new s(.5*Math.PI,0,0),this.calculateCameraOrientation()},Camera.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},Camera.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()},Camera.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},Camera.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},Camera.prototype.getArmLength=function(){return this.armLength},Camera.prototype.getCameraLocation=function(){return this.cameraLocation},Camera.prototype.getCameraRotation=function(){return this.cameraRotation},Camera.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=Camera},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(8);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){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");var n=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)},util:{snap:null,toScreen:n._toScreen.bind(n),toGlobalScreen:n._toGlobalScreen.bind(n),toTime:n._toTime.bind(n),toGlobalTime:n._toGlobalTime.bind(n)}},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,i&&this.setOptions(i),e?this.setItems(e):this.redraw()}var o=(i(10),i(18),i(1)),n=i(7),r=i(8),a=i(20),h=i(23),d=i(24),l=i(26),c=i(28),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.itemSet&&this.itemSet.setItems(e),i&&("start"in this.options||"end"in this.options)){this.fit();var s="start"in this.options?o.convert(this.options.start,"Date"):null,a="end"in this.options?o.convert(this.options.end,"Date"):null;this.setWindow(s,a)}},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)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t){if(this.itemsData&&void 0!=t){var e=Array.isArray(t)?t:[t],i=this.itemsData.getDataSet().get(e,{type:{start:"Date",end:"Date"}}),s=null,o=null;i.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===s||s>e)&&(s=e),(null===o||i>o)&&(o=i)});var n=(s+o)/2,r=Math.max(this.range.end-this.range.start,1.1*(o-s));this.range.setRange(n-r/2,n+r/2)}},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(19):function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var s;!function(o,n){"use strict";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 C(t,e){return new C.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",f=a.POINTER_TOUCH="touch",g=a.POINTER_PEN="pen",m=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[m]=t[0],h[v]=t[1],h[y]=t[2],h},getTouchList:function(t,e){if(a.HAS_POINTEREVENTS)return S.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=f;return x.inStr(s.type,"mouse")||S.matchType(u,s)?o=u:S.matchType(g,s)&&(o=g),{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()}}}},S=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[f]=i===(e.MSPOINTER_TYPE_TOUCH||f),s[g]=i===(e.MSPOINTER_TYPE_PEN||g),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,m,function(t){i.enabled&&t.eventType==m?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[m],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 m: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 m: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 m: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("days",-3).valueOf(),this.end=i.clone().add("days",4).valueOf(),this.body=t,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.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(21),h=i(2),d=i(22);s.prototype=new d,s.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},s.prototype.setRange=function(t,e){var i=this._applyRange(t,e);if(i){var s={start:new Date(this.start),end:new Date(this.end)};this.body.emitter.emit("rangechange",s),this.body.emitter.emit("rangechanged",s)}},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 this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t){return s.conversion(this.start,this.end,t)},s.conversion=function(t,e,i){return 0!=i&&e-t!=0?{offset:t,scale:i/(e-t)}:{offset:0,scale:1}},s.prototype._onDragStart=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},s.prototype._onDrag=function(t){if(this.options.moveable){var e=this.options.direction;if(o(e),this.props.touch.allowDragging){var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY,s=this.props.touch.end-this.props.touch.start,n="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,r=-i/n*s;this._applyRange(this.props.touch.start+r,this.props.touch.end+r),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.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)}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},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,i=this._pointerToDate(this.props.touch.center),s=parseInt(i+(this.props.touch.start-i)*e),o=parseInt(i+(this.props.touch.end-i)*e);this.setRange(s,o)}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i){var s=this.body.domProps.center.width;return e=this.conversion(s),t.x/e.scale+e.offset}var n=this.body.domProps.center.height;return e=this.conversion(n),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e){null==e&&(e=(this.start+this.end)/2);var i=e+(this.start-e)*t,s=e+(this.end-e)*t;this.setRange(i,s)},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(18);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){function s(){}var o=i(10),n=i(18),r=i(1),a=(i(7),i(8),i(20),i(24),i(26),i(28),i(29),i(36));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("change",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)),this.hammer=n(this.dom.root,{prevent_default:!0}),this.listeners={};var e=this,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={},!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"];r.selectiveExtend(e,this.options,t),"clickToUse"in t&&(t.clickToUse?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(){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)}(null!==e||null!==i)&&this.range.setRange(e,i)},s.prototype.setWindow=function(t,e){if(1==arguments.length){var i=arguments[0];this.range.setRange(i.start,i.end)}else this.range.setRange(t,e)},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){"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;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),h=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom; s.root.style.height=r.option.asSize(e.height,h+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var d=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=d,i.leftContainer.height=d,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 l=i.root.width-i.left.width-i.right.width-n;i.center.width=l,i.centerContainer.width=l,i.top.width=l,i.bottom.width=l,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+"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 c=this.props.scrollTop;"bottom"==e.orientation&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=c+"px",s.left.style.left="0",s.left.style.top=c+"px",s.right.style.left="0",s.right.style.top=c+"px";var p=0==this.props.scrollTop?"hidden":"",u=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";s.shadowTop.style.visibility=p,s.shadowBottom.style.visibility=u,s.shadowTopLeft.style.visibility=p,s.shadowBottomLeft.style.visibility=u,s.shadowTopRight.style.visibility=p,s.shadowBottomRight.style.visibility=u,this.components.forEach(function(e){t=e.redraw()||t}),t&&this.redraw()}},s.prototype.repaint=function(){throw new Error("Function repaint is deprecated. Use redraw instead.")},s.prototype._toTime=function(t){var e=this.range.conversion(this.props.center.width);return new Date(t/e.scale+e.offset)},s.prototype._toGlobalTime=function(t){var e=this.range.conversion(this.props.root.width);return new Date(t/e.scale+e.offset)},s.prototype._toScreen=function(t){var e=this.range.conversion(this.props.center.width);return(t.valueOf()-e.offset)*e.scale},s.prototype._toGlobalScreen=function(t){var e=this.range.conversion(this.props.root.width);return(t.valueOf()-e.offset)*e.scale},s.prototype._initAutoResize=function(){1==this.options.autoResize?this._startAutoResize():this._stopAutoResize()},s.prototype._startAutoResize=function(){var t=this;this._stopAutoResize(),this._onResize=function(){return 1!=t.options.autoResize?void t._stopAutoResize():void(t.dom.root&&(t.dom.root.clientWidth!=t.props.lastWidth||t.dom.root.clientHeight!=t.props.lastHeight)&&(t.props.lastWidth=t.dom.root.clientWidth,t.props.lastHeight=t.dom.root.clientHeight,t.emit("change")))},r.addEventListener(window,"resize",this._onResize),this.watchTimer=setInterval(this._onResize,1e3)},s.prototype._stopAutoResize=function(){this.watchTimer&&(clearInterval(this.watchTimer),this.watchTimer=void 0),r.removeEventListener(window,"resize",this._onResize),this._onResize=null},s.prototype._onTouch=function(){this.touch.allowDragging=!0},s.prototype._onPinch=function(){this.touch.allowDragging=!1},s.prototype._onDragStart=function(){this.touch.initialScrollTop=this.props.scrollTop},s.prototype._onDrag=function(t){if(this.touch.allowDragging){var e=t.gesture.deltaY,i=this._getScrollTop(),s=this._setScrollTop(this.touch.initialScrollTop+e);s!=i&&this.redraw()}},s.prototype._setScrollTop=function(t){return this.props.scrollTop=t,this._updateScrollTop(),this.props.scrollTop},s.prototype._updateScrollTop=function(){var t=Math.min(this.props.centerContainer.height-this.props.center.height,0);return t!=this.props.scrollTopMin&&("bottom"==this.options.orientation&&(this.props.scrollTop+=t-this.props.scrollTopMin),this.props.scrollTopMin=t),this.props.scrollTop>0&&(this.props.scrollTop=0),this.props.scrollTopd;){d++;var l=n.getCurrent(),c=this.body.util.toScreen(l),p=n.isMajor();this.options.showMinorLabels&&this._repaintMinorText(c,n.getLabelMinor(),t),p&&this.options.showMajorLabels?(c>0&&(void 0==h&&(h=c),this._repaintMajorText(c,n.getLabelMajor(),t)),this._repaintMajorLine(c,t)):this._repaintMinorLine(c,t),n.next()}if(this.options.showMajorLabels){var u=this.body.util.toTime(0),f=n.getLabelMajor(u),g=f.length*(this.props.majorCharWidth||10)+10;(void 0==h||h>g)&&this._repaintMajorText(0,f,t)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i){var s=this.dom.redundant.minorTexts.shift();if(!s){var o=document.createTextNode("");s=document.createElement("div"),s.appendChild(o),s.className="text minor",this.dom.foreground.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?this.props.majorLabelHeight+"px":"0",s.style.left=t+"px"},s.prototype._repaintMajorText=function(t,e,i){var s=this.dom.redundant.majorTexts.shift();if(!s){var o=document.createTextNode(e);s=document.createElement("div"),s.className="text major",s.appendChild(o),this.dom.foreground.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?"0":this.props.minorLabelHeight+"px",s.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e){var i=this.dom.redundant.minorLines.shift();i||(i=document.createElement("div"),i.className="grid vertical minor",this.dom.background.appendChild(i)),this.dom.minorLines.push(i);var s=this.props;i.style.top="top"==e?s.majorLabelHeight+"px":this.body.domProps.top.height+"px",i.style.height=s.minorLineHeight+"px",i.style.left=t-s.minorLineWidth/2+"px"},s.prototype._repaintMajorLine=function(t,e){var i=this.dom.redundant.majorLines.shift();i||(i=document.createElement("DIV"),i.className="grid vertical major",this.dom.background.appendChild(i)),this.dom.majorLines.push(i);var s=this.props;i.style.top="top"==e?"0":this.body.domProps.top.height+"px",i.style.left=t-s.majorLineWidth/2+"px",i.style.height=s.majorLineHeight+"px"},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text minor 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.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale=s.SCALE.DAY,this.step=1,this.setRange(t,e,i)}var o=i(2);s.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},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 s.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case s.SCALE.MONTH:this.current.setDate(1);case s.SCALE.DAY:case s.SCALE.WEEKDAY:this.current.setHours(0);case s.SCALE.HOUR:this.current.setMinutes(0);case s.SCALE.MINUTE:this.current.setSeconds(0);case s.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case s.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case s.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case s.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case s.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case s.SCALE.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 s.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case s.SCALE.SECOND:this.current=new Date(this.current.valueOf()+1e3*this.step);break;case s.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case s.SCALE.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 s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case s.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case s.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case s.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case s.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case s.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case s.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case s.SCALE.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,o=864e5,n=36e5,r=6e4,a=1e3,h=1;1e3*e>t&&(this.scale=s.SCALE.YEAR,this.step=1e3),500*e>t&&(this.scale=s.SCALE.YEAR,this.step=500),100*e>t&&(this.scale=s.SCALE.YEAR,this.step=100),50*e>t&&(this.scale=s.SCALE.YEAR,this.step=50),10*e>t&&(this.scale=s.SCALE.YEAR,this.step=10),5*e>t&&(this.scale=s.SCALE.YEAR,this.step=5),e>t&&(this.scale=s.SCALE.YEAR,this.step=1),3*i>t&&(this.scale=s.SCALE.MONTH,this.step=3),i>t&&(this.scale=s.SCALE.MONTH,this.step=1),5*o>t&&(this.scale=s.SCALE.DAY,this.step=5),2*o>t&&(this.scale=s.SCALE.DAY,this.step=2),o>t&&(this.scale=s.SCALE.DAY,this.step=1),o/2>t&&(this.scale=s.SCALE.WEEKDAY,this.step=1),4*n>t&&(this.scale=s.SCALE.HOUR,this.step=4),n>t&&(this.scale=s.SCALE.HOUR,this.step=1),15*r>t&&(this.scale=s.SCALE.MINUTE,this.step=15),10*r>t&&(this.scale=s.SCALE.MINUTE,this.step=10),5*r>t&&(this.scale=s.SCALE.MINUTE,this.step=5),r>t&&(this.scale=s.SCALE.MINUTE,this.step=1),15*a>t&&(this.scale=s.SCALE.SECOND,this.step=15),10*a>t&&(this.scale=s.SCALE.SECOND,this.step=10),5*a>t&&(this.scale=s.SCALE.SECOND,this.step=5),a>t&&(this.scale=s.SCALE.SECOND,this.step=1),200*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=200),100*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=100),50*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=50),10*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=10),5*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=5),h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=1)}},s.prototype.snap=function(t){var e=new Date(t.valueOf());if(this.scale==s.SCALE.YEAR){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(this.scale==s.SCALE.MONTH)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(this.scale==s.SCALE.DAY){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(this.scale==s.SCALE.WEEKDAY){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(this.scale==s.SCALE.HOUR){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(this.scale==s.SCALE.MINUTE){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(this.scale==s.SCALE.SECOND)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(this.scale==s.SCALE.MILLISECOND){var o=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/o)*o)}return e},s.prototype.isMajor=function(){switch(this.scale){case s.SCALE.MILLISECOND:return 0==this.current.getMilliseconds();case s.SCALE.SECOND:return 0==this.current.getSeconds();case s.SCALE.MINUTE:return 0==this.current.getHours()&&0==this.current.getMinutes();case s.SCALE.HOUR:return 0==this.current.getHours();case s.SCALE.WEEKDAY:case s.SCALE.DAY:return 1==this.current.getDate();case s.SCALE.MONTH:return 0==this.current.getMonth();case s.SCALE.YEAR:return!1;default:return!1}},s.prototype.getLabelMinor=function(t){switch(void 0==t&&(t=this.current),this.scale){case s.SCALE.MILLISECOND:return o(t).format("SSS");case s.SCALE.SECOND:return o(t).format("s");case s.SCALE.MINUTE:return o(t).format("HH:mm");case s.SCALE.HOUR:return o(t).format("HH:mm");case s.SCALE.WEEKDAY:return o(t).format("ddd D");case s.SCALE.DAY:return o(t).format("D");case s.SCALE.MONTH:return o(t).format("MMM");case s.SCALE.YEAR:return o(t).format("YYYY");default:return""}},s.prototype.getLabelMajor=function(t){switch(void 0==t&&(t=this.current),this.scale){case s.SCALE.MILLISECOND:return o(t).format("HH:mm:ss");case s.SCALE.SECOND:return o(t).format("D MMMM HH:mm");case s.SCALE.MINUTE:case s.SCALE.HOUR:return o(t).format("ddd D MMMM");case s.SCALE.WEEKDAY:case s.SCALE.DAY:return o(t).format("MMMM YYYY");case s.SCALE.MONTH:return o(t).format("YYYY");case s.SCALE.YEAR:return"";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._create(),this.setOptions(e)}var o=i(1),n=i(22),r=i(2),a=i(27);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,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)},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(18),n=i(1),r=i(22),a=i(2),h=i(27);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=new Date(t.valueOf()),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){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"center",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)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=r.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)}function o(t,e){if(e&&e.groupId!=t.data.group){var i=t.parent;i.remove(t),i.order(),e.add(t),e.order(),t.data.group=e.groupId}}var n=i(18),r=i(1),a=i(7),h=i(8),d=i(22),l=i(30),c=i(34),p=i(35),u=i(32),f="__ungrouped__";s.prototype=new d,s.types={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 o=document.createElement("div");o.className="labelset",this.dom.labelSet=o,this._updateUngrouped(),this.hammer=n(this.body.dom.centerContainer,{prevent_default:!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"];r.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&&(r.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&&r.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&&r.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){if(e in t){var i=t[e];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"].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.top.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=r.option.asSize,s=this.options,o=s.orientation,n=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;a.className="itemset"+(h?" editable":""),n=this._orderGroups()||n;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},f={item:t.item,axis:t.item.vertical/2},g=0,m=t.axis+t.item.vertical;return r.forEach(this.groups,function(t){var i=t==p?u:f,s=t.redraw(e,i,c);n=s||n,g+=t.height}),g=Math.max(g,m),this.stackDirty=!1,a.style.height=i(g),this.props.top=a.offsetTop,this.props.left=a.offsetLeft,this.props.width=a.offsetWidth,this.props.height=g,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",n=this._isResized()||n},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=this.groups[f];if(this.groupsData)t&&(t.hide(),delete this.groups[f]);else if(!t){var e=null,i=null;t=new l(e,i,this),this.groups[f]=t;for(var s in this.items)this.items.hasOwnProperty(s)&&t.add(this.items[s]);t.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 a||t instanceof h))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(r.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;r.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&&(r.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 a||t instanceof h))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;r.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")},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._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=i.type||e.options.type||(i.end?"range":"box"),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")},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"))},s.prototype._order=function(){r.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)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);r.extend(o,{height:null}),s=new l(t,i,e),e.groups[t]=s;for(var n in e.items)if(e.items.hasOwnProperty(n)){var a=e.items[n];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change")},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")},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!r.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.groupsData?t.data.group:f,i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.data=e,t.displayed&&t.redraw(),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this.groupsData?t.data.group:f,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);var i=this.groupsData?t.data.group:f,s=this.groups[i];s&&s.remove(t)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||o.length>0)&&this.body.emitter.emit("select",{items:this.getSelection()}),t.stopPropagation()}},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 n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.update(t)})}else{var a=r.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]=r.randomUUID();var p=s.groupFromTarget(t);p&&(l.group=p.groupId),this.options.onAdd(l,function(t){t&&e.itemsData.add(l)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=s.itemFromTarget(t);if(i){e=this.getSelection();var o=e.indexOf(i.id);-1==o?e.push(i.id):e.splice(o,1),this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()}),t.stopPropagation()}}},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.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this._create(),this.setData(e)}var o=i(1),n=i(31),r=i(32);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,i),o.removeClassName(this.dom.foreground,i),o.removeClassName(this.dom.background,i),o.removeClassName(this.dom.axis,i)),o.addClassName(this.dom.label,i),o.addClassName(this.dom.foreground,i),o.addClassName(this.dom.background,i),o.addClassName(this.dom.axis,i))},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);var a,h=this.visibleItems;if(h.length){var d=h[0].top,l=h[0].top+h[0].height;if(o.forEach(h,function(t){d=Math.min(d,t.top),l=Math.max(l,t.top+t.height)}),d>e.axis){var c=d-e.axis;l-=c,o.forEach(h,function(t){t.top-=c})}a=l+e.item.vertical/2}else a=e.axis+e.item.vertical;a=Math.max(a,this.props.label.height);var p=this.dom.foreground;this.top=p.offsetTop,this.left=p.offsetLeft,this.width=p.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 u=0,f=this.visibleItems.length;f>u;u++){var g=this.visibleItems[u];g.repositionY()}return s},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),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},s.prototype.remove=function(t){delete this.items[t.id],t.setParent(this.itemSet);var e=this.visibleItems.indexOf(t);-1!=e&&this.visibleItems.splice(e,1)},s.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},s.prototype.order=function(){var t=o.toArray(this.items);this.orderedItems.byStart=t,this.orderedItems.byEnd=this._constructByEndArray(t),n.orderByStart(this.orderedItems.byStart),n.orderByEnd(this.orderedItems.byEnd)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0)for(n=0;n=0&&!this._checkIfInvisible(t.byStart[n],r,i);n--);for(n=s+1;n=0&&!this._checkIfInvisible(t.byEnd[n],r,i);n--);for(n=a+1;no;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(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&&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){var i,s;for(i=0,s=t.length;s>i;i++)t[i].top=e.axis},e.collision=function(t,e,s){return t.left-s.horizontal+ie.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(18),n=i(33);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.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 time axis: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)t.content.innerHTML="",t.content.appendChild(this.content);else{if(void 0==this.data.content)throw new Error('Property "content" missing in item '+this.data.id);t.content.innerHTML=this.content}this.dirty=!0}this.data.title!=this.title&&(t.box.title=this.data.title,this.title=this.data.title);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=i&&(this.className=i,t.box.className=this.baseClassName+i,this.dirty=!0),this.dirty&&(this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,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=this.props,i=this.parent.width,s=this.conversion.toScreen(this.data.start),o=this.conversion.toScreen(this.data.end),n=this.options.padding;-i>s&&(s=-i),o>2*i&&(o=2*i);var r=Math.max(o-s,1);this.overflow?(t=Math.max(-s,0),this.left=s,this.width=r+this.props.content.width):(t=0>s?Math.min(-s,o-s-e.content.width-2*n):0,this.left=s,this.width=r),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",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(18);s.prototype.select=function(){this.selected=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,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)},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(33);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.start-1?!1:"INPUT"==i||"SELECT"==i||"TEXTAREA"==i||e.contentEditable&&"true"==e.contentEditable}function o(t,e){return t.sort().join(",")===e.sort().join(",")}function n(t){t=t||{};var e,i=!1;for(e in E)t[e]?i=!0:E[e]=0;i||(T=!1)}function r(t,e,i,s,n){var r,a,h=[];if(!M[t])return[];for("keyup"==i&&c(t)&&(e=[t]),r=0;r95&&112>t||_.hasOwnProperty(t)&&(y[_[t]]=t)}return y}function f(t,e,i){return i||(i=u()[t]?"keydown":"keypress"),"keypress"==i&&e.length&&(i="keydown"),i}function g(t,e,s,o){E[t]=0,o||(o=f(e[0],[]));var r,a=function(){T=o,++E[t],p()},d=function(t){h(s,t),"keyup"!==o&&(D=i(t)),setTimeout(n,10)};for(r=0;r1)return g(t,d,e,i);for(h="+"===t?["+"]:t.split("+"),n=0;n":".","?":"/","|":"\\"},S={option:"alt",command:"meta","return":"enter",escape:"esc"},M={},C={},E={},D=!1,T=!1,O=1;20>O;++O)_[111+O]="f"+O;for(O=0;9>=O;++O)_[O+96]=O;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var L={bind:function(t,e,i){return v(t instanceof Array?t:[t],e,i),C[t+":"+i]=e,this},unbind:function(t,e){return C[t+":"+e]&&(delete C[t+":"+e],this.bind(t,function(){},e)),this},trigger:function(t,e){return C[t+":"+e](),this},reset:function(){return M={},C={},this}};t.exports=L},function(t,e,i){function s(t,e,i,s){var n=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)},util:{snap:null,toScreen:n._toScreen.bind(n),toGlobalScreen:n._toGlobalScreen.bind(n),toTime:n._toTime.bind(n),toGlobalTime:n._toGlobalTime.bind(n)}},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,i&&this.setOptions(i),s&&this.setGroups(s),e?this.setItems(e):this.redraw()}var o=(i(10),i(18),i(1)),n=i(7),r=i(8),a=i(20),h=i(23),d=i(24),l=i(26),c=i(28),p=i(39);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&&("start"in this.options||"end"in this.options)){this.fit();var s="start"in this.options?o.convert(this.options.start,"Date"):null,a="end"in this.options?o.convert(this.options.end,"Date"):null;this.setWindow(s,a)}},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.options.groups.visibility[t]||1==this.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,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;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.body.emitter.on("rangechange",function(){if(0!=i.lastStart){var t=i.body.range.start-i.lastStart,e=i.body.range.end-i.body.range.start; -if(0!=i.width){var s=i.width/e,o=t*s;i.svg.style.left=-i.width-o+"px"}}}),this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.width),i._updateGraph.apply(i)}),this._create(),this.body.emitter.emit("change")}var o=i(1),n=i(6),r=i(7),a=i(8),h=i(22),d=i(40),l=i(42),c=i(43),p="__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","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];o.selectiveDeepExtend(e,this.options,t),o.mergeOptions(this.options,t,"catmullRom"),o.mergeOptions(this.options,t,"drawPoints"),o.mergeOptions(this.options,t,"shaded"),o.mergeOptions(this.options,t,"legend"),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)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(p)&&this.groups[p].setOptions(t)}this.dom.frame&&this._updateGraph()},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.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&&(o.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;o.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e)}this._updateUngrouped(),this._updateGraph(),this.redraw()},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(o.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;o.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._onUpdate()},s.prototype._onUpdate=function(){this._updateUngrouped(),this._updateAllGroupData(),this._updateGraph(),this.redraw()},s.prototype._onAdd=function(t){this._onUpdate(t)},s.prototype._onRemove=function(t){this._onUpdate(t)},s.prototype._onUpdateGroups=function(t){for(var e=0;e0){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),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=[],d=[];if(t.length>0){for(n=0;n0)if(o=this.groups[t[n]],"line"==o.options.style||"stack"!=o.options.barChart.handleOverlap){var l=s[0].y,c=s[0].y;for(r=0;rs[r].y?s[r].y:l,c=c0&&(h.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x}),p={},this._getDataIntersections(p,h),i.__barchartLeft=this._getStackedBarYRange(p,h),i.__barchartLeft.yAxisOrientation="left",t.push("__barchartLeft")),d.length>0&&(d.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x}),p={},this._getDataIntersections(p,d),i.__barchartRight=this._getStackedBarYRange(p,d),i.__barchartRight.yAxisOrientation="right",t.push("__barchartRight"))}},s.prototype._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=o0){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,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&&(e.hide(),i=!0):e.dom.frame.parentNode||(e.show(),i=!0),i},s.prototype._drawBarGraphs=function(t,e){var i,s,o,r,a,h,d=[],l={},c=0;for(a=0;a0&&(i=Math.min(i,Math.abs(d[a-1].x-s))),o=this._getSafeDrawData(i,r,p);else{var f=a+(l[s].amount-l[s].resolved),g=a-(l[s].resolved+1);f0&&(i=Math.min(i,Math.abs(d[g].x-s))),o=this._getSafeDrawData(i,r,p),l[s].resolved+=1,"stack"==r.options.barChart.handleOverlap?(u=l[s].accumulated,l[s].accumulated+=r.zeroPosition-d[a].y):"sideBySide"==r.options.barChart.handleOverlap&&(o.width=o.width/l[s].amount,o.offset+=l[s].resolved*o.width-.5*o.width*(l[s].amount+1),"left"==r.options.barChart.align?o.offset-=.5*o.width:"right"==r.options.barChart.align&&(o.offset+=.5*o.width))}n.drawBar(d[a].x+o.offset,d[a].y-u,o.width,r.zeroPosition-d[a].y,r.className+" bar",this.svgElements,this.svg),1==r.options.drawPoints.enabled&&n.drawPoint(d[a].x+o.offset,d[a].y-u,r,this.svgElements,this.svg)}},s.prototype._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.prototype._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.prototype._drawLineGraph=function(t,e){if(null!=t&&t.length>0){var i,s,o=Number(this.svg.style.height.replace("px",""));if(i=n.getSVGElement("path",this.svgElements,this.svg),i.setAttributeNS(null,"class",e.className),s=1==e.options.catmullRom.enabled?this._catmullRom(t,e):this._linear(t),1==e.options.shaded.enabled){var r,a=n.getSVGElement("path",this.svgElements,this.svg);r="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+s+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+o+" "+s+"L"+t[t.length-1].x+","+o,a.setAttributeNS(null,"class",e.className+" fill"),a.setAttributeNS(null,"d",r)}i.setAttributeNS(null,"d","M"+s),1==e.options.drawPoints.enabled&&this._drawPoints(t,e,this.svgElements,this.svg)}},s.prototype._drawPoints=function(t,e,i,s,o){void 0===o&&(o=0);for(var r=0;rl;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.prototype._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,f,g,m,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",S=t.length,M=0;S-1>M;M++)s=0==M?t[0]:t[M-1],o=t[M],n=t[M+1],r=S>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)),m=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*m*v+b,f=3*x*(x+v),f>0&&(f=1/f),g=3*m*(m+v),g>0&&(g=1/g),a={x:(-b*s.x+p*o.x+_*n.x)*f,y:(-b*s.y+p*o.y+_*n.y)*f},h={x:(y*o.x+u*n.x-b*r.x)*g,y:(y*o.y+u*n.y-b*r.y)*g},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.prototype._linear=function(t){for(var e="",i=0;ih;h++)i.previous();o=this.height/s}else o+=.25;this.valueAtZero=i.marginEnd;var d=0,l=1;this.maxLabelSize=0;for(var c=0;l=0&&this._redrawLabel(c-2,i.getCurrent(),t,"yAxis major",this.props.majorCharHeight),this._redrawLine(c,t,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(c,t,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),l++}this.conversionFactor=0==this.master?c/(this.valueAtZero-i.current):this.dom.frame.offsetHeight/i.marginRange;var u=1==this.options.icons?this.options.iconWidth+this.options.labelOffsetX+15:this.options.labelOffsetX+15;return this.maxLabelSize>this.width-u&&1==this.options.visible?(this.width=this.maxLabelSize+u,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+u),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),!1)},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.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,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(){for(var t=""+Number(this.current).toPrecision(5),e=t.length-1;e>0;e--){if("0"!=t[e]){if("."==t[e]||","==t[e]){t=t.slice(0,e);break}break}t=t.slice(0,e)}return t},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);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))}},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.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),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),f=Math.round((o-2*c)/3);n.drawBar(t+.5*c+f,e+d-p-1,c,p,this.className+" bar",i,s),n.drawBar(t+1.5*c+f+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}},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(6),r=i(22);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._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.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{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=""):(this.dom.frame.style.bottom=4-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 i="";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]||(i+=this.groups[e].content+"
"));this.dom.textArea.innerHTML=i,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._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=.5*this.renderTimestep,this.maxPhysicsTicksPerRender=3,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null},this.defaultOptions={nodes:{mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fixed:!1,fontColor:"black",fontSize:14,fontFace:"verdana",level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},borderColor:"#2B7CE9",backgroundColor:"#97C2FC",highlightColor:"#D2E5FF",group:void 0,borderWidth:1},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,theta:1/.6,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"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},dynamicSmoothCurves:!0,maxVelocity:30,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,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.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1;var o=this;this.groups=new u,this.images=new f,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.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),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(!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(10),n=i(18),r=i(37),a=i(1),h=i(21),d=i(7),l=i(8),c=i(45),p=i(46),u=i(47),f=i(48),g=i(49),m=i(50),v=i(51),y=i(52),b=i(36),_=i(63);i(64),o(s.prototype),s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;et.x&&(s=t.x),ot.y&&(e=t.y),i=this.constants.clustering.initialMaxNodes?49.07548/(o+142.05338)+91444e-8:12.662/(o+7.4147)+.0964822:1==this.constants.clustering.enabled&&o>=this.constants.clustering.initialMaxNodes?77.5271985/(o+187.266146)+476710517e-13:30.5062972/(o+19.93597763)+.08413486;var n=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);i*=n}else{var r=1.1*(Math.abs(s.minX)+Math.abs(s.maxX)),a=1.1*(Math.abs(s.minY)+Math.abs(s.maxY)),h=this.frame.canvas.clientWidth/r,d=this.frame.canvas.clientHeight/a;i=d>=h?h:d}i>1&&(i=1),this._setScale(i),this._centerNetwork(s),0==e&&(this.moving=!0,this.start())},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),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);if(this._putDataInSector(),!e)if(this.constants.stabilize){var o=this;setTimeout(function(){o._stabilize(),o.start()},0)}else this.start()},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))),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=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=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("doubletap",e._onDoubleTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("release",e._onRelease.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("DOMMouseScroll",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;this.mousetrap=r,this.mousetrap.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.mousetrap.bind("up",this._moveUp.bind(t),"keydown"),this.mousetrap.bind("up",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("down",this._moveDown.bind(t),"keydown"),this.mousetrap.bind("down",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("left",this._moveLeft.bind(t),"keydown"),this.mousetrap.bind("left",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("right",this._moveRight.bind(t),"keydown"),this.mousetrap.bind("right",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("=",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("=",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("-",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("-",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("[",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("[",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("]",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("]",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pageup",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("pageup",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.mousetrap.bind("escape",this._createManipulatorBar.bind(t)),this.mousetrap.bind("del",this._deleteSelected.bind(t)))},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){this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),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,null!=e){t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1);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){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(){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()},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 g&&r.id!=a||r instanceof m||null==r)&&(this._blurObject(this.hoverObj.nodes[a]),delete this.hoverObj.nodes[a]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj;if(void 0==this.popupObj){var o=this.nodes;for(e in o)if(o.hasOwnProperty(e)){var n=o[e];if(void 0!==n.getTitle()&&n.isOverlappingWith(i)){this.popupObj=n;break}}}if(void 0===this.popupObj){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!==a.getTitle()&&a.isOverlappingWith(i)){this.popupObj=a;break}}}if(this.popupObj){if(this.popupObj!=s){var h=this;h.popup||(h.popup=new v(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupObj.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},s.prototype.setSize=function(t,e){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.frame.canvas.height=this.frame.canvas.clientHeight,this.emit("resize",{width:this.frame.canvas.width,height:this.frame.canvas.height})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(t instanceof Array)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 g(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){for(var e=this.nodes,i=this.nodesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n],a=i.get(n);r?r.setProperties(a,this.constants):(r=new g(properties,this.images,this.groups,this.constants),e[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._reconnectEdges(),this._updateValueRange(e)},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(t instanceof Array)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 m(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},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 m(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=[]);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(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},this._doInAllSectors("_drawAllSectorNodes",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",t,!1),1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",t),t.restore()},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(e in s)s.hasOwnProperty(e)&&(s[e].discreteStepLimited(i,this.constants.maxVelocity),o=!0);else for(e in s)s.hasOwnProperty(e)&&(s[e].discreteStep(i),o=!0);if(1==o&&(void 0===t||1==t)){var n=this.constants.minVelocity/Math.max(this.scale,.05);n>.5*this.constants.maxVelocity?this.moving=!0:(this.moving=this._isMoving(n),0==this.moving&&this.emit("stabilized",{iterations:null}),this.moving=this.moving||this.configurePhysics)}},s.prototype._physicsTick=function(){this.freezeSimulation||1==this.moving&&(this._doInAllActiveSectors("_initializeForceCalculation"),this._doInAllActiveSectors("_discreteStepNodes"),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&this._doInSupportSector("_discreteStepNodes",!1),this._findCenter(this._getRange()))},s.prototype._animationStep=function(){this.timer=void 0,this._handleNavigation(),this.start();var t=Date.now(),e=1;this._physicsTick();for(var i=Date.now()-t;i<.9*(this.renderTimestep-this.renderTime)&&ei;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(k=C.NULL,L="";" "==O||" "==O||"\n"==O||"\r"==O;)o();do{var t=!1;if("#"==O){for(var e=T-1;" "==D.charAt(e)||" "==D.charAt(e);)e--;if("\n"==D.charAt(e)||""==D.charAt(e)){for(;""!=O&&"\n"!=O;)o();t=!0}}if("/"==O&&"/"==n()){for(;""!=O&&"\n"!=O;)o();t=!0}if("/"==O&&"*"==n()){for(;""!=O;){if("*"==O&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==O||" "==O||"\n"==O||"\r"==O;)o()}while(t);if(""==O)return void(k=C.DELIMITER);var i=O+n();if(E[i])return k=C.DELIMITER,L=i,o(),void o();if(E[O])return k=C.DELIMITER,L=O,void o();if(r(O)||"-"==O){for(L+=O,o();r(O);)L+=O,o();return"false"==L?L=!1:"true"==L?L=!0:isNaN(Number(L))||(L=Number(L)),void(k=C.IDENTIFIER)}if('"'==O){for(o();""!=O&&('"'!=O||'"'==O&&'"'==n());)L+=O,'"'==O&&o(),o();if('"'!=O)throw x('End of string " expected');return o(),void(k=C.IDENTIFIER)}for(k=C.UNKNOWN;""!=O;)L+=O,o();throw new SyntaxError('Syntax error in part "'+w(L,30)+'"')}function u(){var t={};if(s(),p(),"strict"==L&&(t.strict=!0,p()),("graph"==L||"digraph"==L)&&(t.type=L,p()),k==C.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),f(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==L&&"}"!=L;)g(t),";"==L&&p()}function g(t){var e=m(t);if(e)return void b(t,e);var i=v(t);if(!i){if(k!=C.IDENTIFIER)throw x("Identifier expected");var s=L;if(p(),"="==L){if(p(),k!=C.IDENTIFIER)throw x("Identifier expected");t[s]=L,p()}else y(t,s)}}function m(t){var e=null;if("subgraph"==L&&(e={},e.type="subgraph",p(),k==C.IDENTIFIER&&(e.id=L,p())),"{"==L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=L)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"==L?(p(),t.node=_(),"node"):"edge"==L?(p(),t.edge=_(),"edge"):"graph"==L?(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(;"->"==L||"--"==L;){var i,s=L;p();var o=m(t);if(o)i=o;else{if(k!=C.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==L;){for(p(),t={};""!==L&&"]"!=L;){if(k!=C.IDENTIFIER)throw x("Attribute name expected");var e=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),k!=C.IDENTIFIER)throw x("Attribute value expected");var i=L;h(t,e,i),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(L,30)+'" (char '+T+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){t instanceof Array?t.forEach(function(t){e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}):e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}function M(t){function e(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e}var s=i(t),o={nodes:[],edges:[],options:{}};return s.nodes&&s.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),o.nodes.push(e)}),s.edges&&s.edges.forEach(function(t){var i,s;i=t.from instanceof Object?t.from.nodes:{id:t.from},s=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var i=e(t);o.edges.push(i)}),S(i,s,function(i,s){var n=c(o,i.id,s.id,t.type,t.attr),r=e(n);o.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var i=e(t);o.edges.push(i)})}),s.attr&&(o.options=s.attr),o}var C={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},E={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},D="",T=0,O="",L="",k=C.NULL,N=/[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;re?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.options.radius=(this.options.radiusMin+this.options.radiusMax)/2;else{var i=(this.options.radiusMax-this.options.radiusMin)/(e-t);this.options.radius=(this.value-t)*i+this.options.radiusMin}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.networkScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this._label(t,this.label,this.x,e,void 0,"top")},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.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),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._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(this.x,this.y,this.options.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,this.options.radius),t.fill(),t.stroke(),this._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._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.label&&this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top",!0)},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)},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,t.fillStyle=this.options.fontColor||"black",t.textAlign=o||"center",t.textBaseline=n||"middle";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=0;h>c;c++)t.fillText(a[c],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.min(this.widthSelected,this.options.widthMax)*this.networkScaleInv:1==this.hover?Math.min(this.options.hoverWidth,this.options.widthMax)*this.networkScaleInv:this.options.width*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.y0||o.length>0)&&this.body.emitter.emit("select",{items:this.getSelection()}),t.stopPropagation()}},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 n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.update(t)})}else{var a=r.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]=r.randomUUID();var p=s.groupFromTarget(t);p&&(l.group=p.groupId),this.options.onAdd(l,function(t){t&&e.itemsData.add(l)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=s.itemFromTarget(t);if(i){e=this.getSelection();var o=e.indexOf(i.id);-1==o?e.push(i.id):e.splice(o,1),this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()}),t.stopPropagation()}}},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.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this._create(),this.setData(e)}var o=i(1),n=i(31),r=i(32);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,i),o.removeClassName(this.dom.foreground,i),o.removeClassName(this.dom.background,i),o.removeClassName(this.dom.axis,i)),o.addClassName(this.dom.label,i),o.addClassName(this.dom.foreground,i),o.addClassName(this.dom.background,i),o.addClassName(this.dom.axis,i))},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);var a,h=this.visibleItems;if(h.length){var d=h[0].top,l=h[0].top+h[0].height;if(o.forEach(h,function(t){d=Math.min(d,t.top),l=Math.max(l,t.top+t.height)}),d>e.axis){var c=d-e.axis;l-=c,o.forEach(h,function(t){t.top-=c})}a=l+e.item.vertical/2}else a=e.axis+e.item.vertical;a=Math.max(a,this.props.label.height);var p=this.dom.foreground;this.top=p.offsetTop,this.left=p.offsetLeft,this.width=p.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 u=0,f=this.visibleItems.length;f>u;u++){var g=this.visibleItems[u];g.repositionY()}return s},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),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},s.prototype.remove=function(t){delete this.items[t.id],t.setParent(this.itemSet);var e=this.visibleItems.indexOf(t);-1!=e&&this.visibleItems.splice(e,1)},s.prototype.removeFromDataSet=function(t){this.itemSet.removeItem(t.id)},s.prototype.order=function(){var t=o.toArray(this.items);this.orderedItems.byStart=t,this.orderedItems.byEnd=this._constructByEndArray(t),n.orderByStart(this.orderedItems.byStart),n.orderByEnd(this.orderedItems.byEnd)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0)for(n=0;n=0&&!this._checkIfInvisible(t.byStart[n],r,i);n--);for(n=s+1;n=0&&!this._checkIfInvisible(t.byEnd[n],r,i);n--);for(n=a+1;no;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(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&&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){var i,s;for(i=0,s=t.length;s>i;i++)t[i].top=e.axis},e.collision=function(t,e,s){return t.left-s.horizontal+ie.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(18),n=i(33);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.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 time axis: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.data.content!=this.content){if(this.content=this.data.content,this.content instanceof Element)t.content.innerHTML="",t.content.appendChild(this.content);else{if(void 0==this.data.content)throw new Error('Property "content" missing in item '+this.data.id);t.content.innerHTML=this.content}this.dirty=!0}this.data.title!=this.title&&(t.box.title=this.data.title,this.title=this.data.title);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");this.className!=i&&(this.className=i,t.box.className=this.baseClassName+i,this.dirty=!0),this.dirty&&(this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,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=this.props,i=this.parent.width,s=this.conversion.toScreen(this.data.start),o=this.conversion.toScreen(this.data.end),n=this.options.padding;-i>s&&(s=-i),o>2*i&&(o=2*i);var r=Math.max(o-s,1);this.overflow?(t=Math.max(-s,0),this.left=s,this.width=r+this.props.content.width):(t=0>s?Math.min(-s,o-s-e.content.width-2*n):0,this.left=s,this.width=r),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",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(18);s.prototype.select=function(){this.selected=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,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)},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(33);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.start-1?!1:"INPUT"==i||"SELECT"==i||"TEXTAREA"==i||e.contentEditable&&"true"==e.contentEditable}function o(t,e){return t.sort().join(",")===e.sort().join(",")}function n(t){t=t||{};var e,i=!1;for(e in E)t[e]?i=!0:E[e]=0;i||(T=!1)}function r(t,e,i,s,n){var r,a,h=[];if(!M[t])return[];for("keyup"==i&&c(t)&&(e=[t]),r=0;r95&&112>t||_.hasOwnProperty(t)&&(y[_[t]]=t)}return y}function f(t,e,i){return i||(i=u()[t]?"keydown":"keypress"),"keypress"==i&&e.length&&(i="keydown"),i}function g(t,e,s,o){E[t]=0,o||(o=f(e[0],[]));var r,a=function(){T=o,++E[t],p()},d=function(t){h(s,t),"keyup"!==o&&(D=i(t)),setTimeout(n,10)};for(r=0;r1)return g(t,d,e,i);for(h="+"===t?["+"]:t.split("+"),n=0;n":".","?":"/","|":"\\"},S={option:"alt",command:"meta","return":"enter",escape:"esc"},M={},C={},E={},D=!1,T=!1,O=1;20>O;++O)_[111+O]="f"+O;for(O=0;9>=O;++O)_[O+96]=O;e(document,"keypress",l),e(document,"keydown",l),e(document,"keyup",l);var L={bind:function(t,e,i){return v(t instanceof Array?t:[t],e,i),C[t+":"+i]=e,this},unbind:function(t,e){return C[t+":"+e]&&(delete C[t+":"+e],this.bind(t,function(){},e)),this},trigger:function(t,e){return C[t+":"+e](),this},reset:function(){return M={},C={},this}};t.exports=L},function(t,e,i){function s(t,e,i,s){var n=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)},util:{snap:null,toScreen:n._toScreen.bind(n),toGlobalScreen:n._toGlobalScreen.bind(n),toTime:n._toTime.bind(n),toGlobalTime:n._toGlobalTime.bind(n)}},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,i&&this.setOptions(i),s&&this.setGroups(s),e?this.setItems(e):this.redraw()}var o=(i(10),i(18),i(1)),n=i(7),r=i(8),a=i(20),h=i(23),d=i(24),l=i(26),c=i(28),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&&("start"in this.options||"end"in this.options)){this.fit();var s="start"in this.options?o.convert(this.options.start,"Date"):null,a="end"in this.options?o.convert(this.options.end,"Date"):null;this.setWindow(s,a)}},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){function e(t,e,i,s,o){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.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,t==e&&(this._start=t-.75,this._end=e+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,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(){for(var t=""+Number(this.current).toPrecision(5),e=t.length-1;e>0;e--){if("0"!=t[e]){if("."==t[e]||","==t[e]){t=t.slice(0,e);break}break}t=t.slice(0,e)}return t},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=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,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{}},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.stepPixels=25,this.stepPixelsForced=25,this.lineOffset=0,this.master=!0,this.svgElements={},this.groups={},this.amountOfGroups=0,this._create()}var o=i(1),n=i(6),r=i(22),a=i(39);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"];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.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)},s.prototype.show=function(){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.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){this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px"):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px"),t=this._redrawLabels(),1==this.options.icons&&this._redrawGroupIcons()}return t},s.prototype._redrawLabels=function(){n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var t=this.options.orientation,e=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,i=new a(this.range.start,this.range.end,e,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation]);this.step=i;var s=(this.dom.frame.offsetHeight-i.deadSpace*(this.dom.frame.offsetHeight/i.marginRange))/((i.marginRange-i.deadSpace)/i.step);this.stepPixels=s;var o=this.height/s,r=0;if(0==this.master){s=this.stepPixelsForced,r=Math.round(this.dom.frame.offsetHeight/s-o);for(var h=0;.5*r>h;h++)i.previous();o=this.height/s}else o+=.25;this.valueAtZero=i.marginEnd;var d=0,l=1;this.maxLabelSize=0;for(var c=0;l=0&&this._redrawLabel(c-2,i.getCurrent(),t,"yAxis major",this.props.majorCharHeight),this._redrawLine(c,t,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(c,t,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),l++}this.conversionFactor=0==this.master?c/(this.valueAtZero-i.current):this.dom.frame.offsetHeight/i.marginRange;var u=1==this.options.icons?this.options.iconWidth+this.options.labelOffsetX+15:this.options.labelOffsetX+15;return this.maxLabelSize>this.width-u&&1==this.options.visible?(this.width=this.maxLabelSize+u,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+u),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),!1)},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSize"));this.dom.textArea.innerHTML=i,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,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;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.body.emitter.on("rangechange",function(){if(0!=i.lastStart){var t=i.body.range.start-i.lastStart,e=i.body.range.end-i.body.range.start;if(0!=i.width){var s=i.width/e,o=t*s;i.svg.style.left=-i.width-o+"px"}}}),this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.width),i._updateGraph.apply(i)}),this._create(),this.body.emitter.emit("change")}var o=i(1),n=i(6),r=i(7),a=i(8),h=i(22),d=i(40),l=i(41),c=i(42),p="__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","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];o.selectiveDeepExtend(e,this.options,t),o.mergeOptions(this.options,t,"catmullRom"),o.mergeOptions(this.options,t,"drawPoints"),o.mergeOptions(this.options,t,"shaded"),o.mergeOptions(this.options,t,"legend"),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)),this.yAxisLeft&&void 0!==t.dataAxis&&(this.yAxisLeft.setOptions(this.options.dataAxis),this.yAxisRight.setOptions(this.options.dataAxis)),this.legendLeft&&void 0!==t.legend&&(this.legendLeft.setOptions(this.options.legend),this.legendRight.setOptions(this.options.legend)),this.groups.hasOwnProperty(p)&&this.groups[p].setOptions(t)}this.dom.frame&&this._updateGraph()},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.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&&(o.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;o.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e)}this._updateUngrouped(),this._updateGraph(),this.redraw()},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(o.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;o.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._onUpdate()},s.prototype._onUpdate=function(){this._updateUngrouped(),this._updateAllGroupData(),this._updateGraph(),this.redraw()},s.prototype._onAdd=function(t){this._onUpdate(t)},s.prototype._onRemove=function(t){this._onUpdate(t)},s.prototype._onUpdateGroups=function(t){for(var e=0;e0){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),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=[],d=[];if(t.length>0){for(n=0;n0)if(o=this.groups[t[n]],"line"==o.options.style||"stack"!=o.options.barChart.handleOverlap){var l=s[0].y,c=s[0].y;for(r=0;rs[r].y?s[r].y:l,c=c0&&(h.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x}),p={},this._getDataIntersections(p,h),i.__barchartLeft=this._getStackedBarYRange(p,h),i.__barchartLeft.yAxisOrientation="left",t.push("__barchartLeft")),d.length>0&&(d.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x}),p={},this._getDataIntersections(p,d),i.__barchartRight=this._getStackedBarYRange(p,d),i.__barchartRight.yAxisOrientation="right",t.push("__barchartRight"))}},s.prototype._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=o0){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,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&&(e.hide(),i=!0):e.dom.frame.parentNode||(e.show(),i=!0),i},s.prototype._drawBarGraphs=function(t,e){var i,s,o,r,a,h,d=[],l={},c=0;for(a=0;a0&&(i=Math.min(i,Math.abs(d[a-1].x-s))),o=this._getSafeDrawData(i,r,p);else{var f=a+(l[s].amount-l[s].resolved),g=a-(l[s].resolved+1);f0&&(i=Math.min(i,Math.abs(d[g].x-s))),o=this._getSafeDrawData(i,r,p),l[s].resolved+=1,"stack"==r.options.barChart.handleOverlap?(u=l[s].accumulated,l[s].accumulated+=r.zeroPosition-d[a].y):"sideBySide"==r.options.barChart.handleOverlap&&(o.width=o.width/l[s].amount,o.offset+=l[s].resolved*o.width-.5*o.width*(l[s].amount+1),"left"==r.options.barChart.align?o.offset-=.5*o.width:"right"==r.options.barChart.align&&(o.offset+=.5*o.width))}n.drawBar(d[a].x+o.offset,d[a].y-u,o.width,r.zeroPosition-d[a].y,r.className+" bar",this.svgElements,this.svg),1==r.options.drawPoints.enabled&&n.drawPoint(d[a].x+o.offset,d[a].y-u,r,this.svgElements,this.svg)}},s.prototype._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.prototype._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.prototype._drawLineGraph=function(t,e){if(null!=t&&t.length>0){var i,s,o=Number(this.svg.style.height.replace("px",""));if(i=n.getSVGElement("path",this.svgElements,this.svg),i.setAttributeNS(null,"class",e.className),s=1==e.options.catmullRom.enabled?this._catmullRom(t,e):this._linear(t),1==e.options.shaded.enabled){var r,a=n.getSVGElement("path",this.svgElements,this.svg);r="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+s+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+o+" "+s+"L"+t[t.length-1].x+","+o,a.setAttributeNS(null,"class",e.className+" fill"),a.setAttributeNS(null,"d",r)}i.setAttributeNS(null,"d","M"+s),1==e.options.drawPoints.enabled&&this._drawPoints(t,e,this.svgElements,this.svg)}},s.prototype._drawPoints=function(t,e,i,s,o){void 0===o&&(o=0);for(var r=0;rl;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.prototype._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,f,g,m,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",S=t.length,M=0;S-1>M;M++)s=0==M?t[0]:t[M-1],o=t[M],n=t[M+1],r=S>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)),m=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*m*v+b,f=3*x*(x+v),f>0&&(f=1/f),g=3*m*(m+v),g>0&&(g=1/g),a={x:(-b*s.x+p*o.x+_*n.x)*f,y:(-b*s.y+p*o.y+_*n.y)*f},h={x:(y*o.x+u*n.x-b*r.x)*g,y:(y*o.y+u*n.y-b*r.y)*g},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.prototype._linear=function(t){for(var e="",i=0;it.x&&(s=t.x),ot.y&&(e=t.y),i=this.constants.clustering.initialMaxNodes?49.07548/(o+142.05338)+91444e-8:12.662/(o+7.4147)+.0964822:1==this.constants.clustering.enabled&&o>=this.constants.clustering.initialMaxNodes?77.5271985/(o+187.266146)+476710517e-13:30.5062972/(o+19.93597763)+.08413486;var n=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);i*=n}else{var r=1.1*(Math.abs(s.minX)+Math.abs(s.maxX)),a=1.1*(Math.abs(s.minY)+Math.abs(s.maxY)),h=this.frame.canvas.clientWidth/r,d=this.frame.canvas.clientHeight/a;i=d>=h?h:d}i>1&&(i=1),this._setScale(i),this._centerNetwork(s),0==e&&(this.moving=!0,this.start())},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),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);if(this._putDataInSector(),!e)if(this.constants.stabilize){var o=this;setTimeout(function(){o._stabilize(),o.start()},0)}else this.start()},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))),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=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=document.createElement("DIV");t.style.color="red",t.style.fontWeight="bold",t.style.padding="10px",t.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(t)}var e=this;this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",e._onTap.bind(e)),this.hammer.on("doubletap",e._onDoubleTap.bind(e)),this.hammer.on("hold",e._onHold.bind(e)),this.hammer.on("pinch",e._onPinch.bind(e)),this.hammer.on("touch",e._onTouch.bind(e)),this.hammer.on("dragstart",e._onDragStart.bind(e)),this.hammer.on("drag",e._onDrag.bind(e)),this.hammer.on("dragend",e._onDragEnd.bind(e)),this.hammer.on("release",e._onRelease.bind(e)),this.hammer.on("mousewheel",e._onMouseWheel.bind(e)),this.hammer.on("DOMMouseScroll",e._onMouseWheel.bind(e)),this.hammer.on("mousemove",e._onMouseMoveTitle.bind(e)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;this.mousetrap=r,this.mousetrap.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.mousetrap.bind("up",this._moveUp.bind(t),"keydown"),this.mousetrap.bind("up",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("down",this._moveDown.bind(t),"keydown"),this.mousetrap.bind("down",this._yStopMoving.bind(t),"keyup"),this.mousetrap.bind("left",this._moveLeft.bind(t),"keydown"),this.mousetrap.bind("left",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("right",this._moveRight.bind(t),"keydown"),this.mousetrap.bind("right",this._xStopMoving.bind(t),"keyup"),this.mousetrap.bind("=",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("=",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("-",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("-",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("[",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("[",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("]",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("]",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pageup",this._zoomIn.bind(t),"keydown"),this.mousetrap.bind("pageup",this._stopZoom.bind(t),"keyup"),this.mousetrap.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.mousetrap.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.mousetrap.bind("escape",this._createManipulatorBar.bind(t)),this.mousetrap.bind("del",this._deleteSelected.bind(t)))},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){this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),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,null!=e){t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1);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){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(){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()},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 g&&r.id!=a||r instanceof m||null==r)&&(this._blurObject(this.hoverObj.nodes[a]),delete this.hoverObj.nodes[a]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj;if(void 0==this.popupObj){var o=this.nodes;for(e in o)if(o.hasOwnProperty(e)){var n=o[e];if(void 0!==n.getTitle()&&n.isOverlappingWith(i)){this.popupObj=n;break}}}if(void 0===this.popupObj){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!==a.getTitle()&&a.isOverlappingWith(i)){this.popupObj=a;break}}}if(this.popupObj){if(this.popupObj!=s){var h=this;h.popup||(h.popup=new v(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupObj.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},s.prototype.setSize=function(t,e){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.frame.canvas.height=this.frame.canvas.clientHeight,this.emit("resize",{width:this.frame.canvas.width,height:this.frame.canvas.height})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(t instanceof Array)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 g(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){for(var e=this.nodes,i=this.nodesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n],a=i.get(n);r?r.setProperties(a,this.constants):(r=new g(properties,this.images,this.groups,this.constants),e[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._reconnectEdges(),this._updateValueRange(e)},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(t instanceof Array)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 m(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},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 m(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=[]);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(){var t=this.frame.canvas.getContext("2d"),e=this.frame.canvas.width,i=this.frame.canvas.height;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},this._doInAllSectors("_drawAllSectorNodes",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",t,!1),1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",t),t.restore()},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(e in s)s.hasOwnProperty(e)&&(s[e].discreteStepLimited(i,this.constants.maxVelocity),o=!0);else for(e in s)s.hasOwnProperty(e)&&(s[e].discreteStep(i),o=!0);if(1==o&&(void 0===t||1==t)){var n=this.constants.minVelocity/Math.max(this.scale,.05);n>.5*this.constants.maxVelocity?this.moving=!0:(this.moving=this._isMoving(n),0==this.moving&&this.emit("stabilized",{iterations:null}),this.moving=this.moving||this.configurePhysics)}},s.prototype._physicsTick=function(){this.freezeSimulation||1==this.moving&&(this._doInAllActiveSectors("_initializeForceCalculation"),this._doInAllActiveSectors("_discreteStepNodes"),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&this._doInSupportSector("_discreteStepNodes",!1),this._findCenter(this._getRange()))},s.prototype._animationStep=function(){this.timer=void 0,this._handleNavigation(),this.start();var t=Date.now(),e=1;this._physicsTick();for(var i=Date.now()-t;i<.9*(this.renderTimestep-this.renderTime)&&ei;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(k=C.NULL,L="";" "==O||" "==O||"\n"==O||"\r"==O;)o();do{var t=!1;if("#"==O){for(var e=T-1;" "==D.charAt(e)||" "==D.charAt(e);)e--;if("\n"==D.charAt(e)||""==D.charAt(e)){for(;""!=O&&"\n"!=O;)o();t=!0}}if("/"==O&&"/"==n()){for(;""!=O&&"\n"!=O;)o();t=!0}if("/"==O&&"*"==n()){for(;""!=O;){if("*"==O&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==O||" "==O||"\n"==O||"\r"==O;)o()}while(t);if(""==O)return void(k=C.DELIMITER);var i=O+n();if(E[i])return k=C.DELIMITER,L=i,o(),void o();if(E[O])return k=C.DELIMITER,L=O,void o();if(r(O)||"-"==O){for(L+=O,o();r(O);)L+=O,o();return"false"==L?L=!1:"true"==L?L=!0:isNaN(Number(L))||(L=Number(L)),void(k=C.IDENTIFIER)}if('"'==O){for(o();""!=O&&('"'!=O||'"'==O&&'"'==n());)L+=O,'"'==O&&o(),o();if('"'!=O)throw x('End of string " expected');return o(),void(k=C.IDENTIFIER)}for(k=C.UNKNOWN;""!=O;)L+=O,o();throw new SyntaxError('Syntax error in part "'+w(L,30)+'"')}function u(){var t={};if(s(),p(),"strict"==L&&(t.strict=!0,p()),("graph"==L||"digraph"==L)&&(t.type=L,p()),k==C.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),f(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==L&&"}"!=L;)g(t),";"==L&&p()}function g(t){var e=m(t);if(e)return void b(t,e);var i=v(t);if(!i){if(k!=C.IDENTIFIER)throw x("Identifier expected");var s=L;if(p(),"="==L){if(p(),k!=C.IDENTIFIER)throw x("Identifier expected");t[s]=L,p()}else y(t,s)}}function m(t){var e=null;if("subgraph"==L&&(e={},e.type="subgraph",p(),k==C.IDENTIFIER&&(e.id=L,p())),"{"==L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=L)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"==L?(p(),t.node=_(),"node"):"edge"==L?(p(),t.edge=_(),"edge"):"graph"==L?(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(;"->"==L||"--"==L;){var i,s=L;p();var o=m(t);if(o)i=o;else{if(k!=C.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==L;){for(p(),t={};""!==L&&"]"!=L;){if(k!=C.IDENTIFIER)throw x("Attribute name expected");var e=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),k!=C.IDENTIFIER)throw x("Attribute value expected");var i=L;h(t,e,i),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(L,30)+'" (char '+T+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){t instanceof Array?t.forEach(function(t){e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}):e instanceof Array?e.forEach(function(e){i(t,e)}):i(t,e)}function M(t){function e(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e}var s=i(t),o={nodes:[],edges:[],options:{}};return s.nodes&&s.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),o.nodes.push(e)}),s.edges&&s.edges.forEach(function(t){var i,s;i=t.from instanceof Object?t.from.nodes:{id:t.from},s=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var i=e(t);o.edges.push(i)}),S(i,s,function(i,s){var n=c(o,i.id,s.id,t.type,t.attr),r=e(n);o.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var i=e(t);o.edges.push(i)})}),s.attr&&(o.options=s.attr),o}var C={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},E={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},D="",T=0,O="",L="",k=C.NULL,N=/[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;re?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.options.radius=(this.options.radiusMin+this.options.radiusMax)/2;else{var i=(this.options.radiusMax-this.options.radiusMin)/(e-t);this.options.radius=(this.value-t)*i+this.options.radiusMin}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.networkScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this._label(t,this.label,this.x,e,void 0,"top")},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.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),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._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(this.x,this.y,this.options.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,this.options.radius),t.fill(),t.stroke(),this._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._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.label&&this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top",!0)},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)},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,t.fillStyle=this.options.fontColor||"black",t.textAlign=o||"center",t.textBaseline=n||"middle";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=0;h>c;c++)t.fillText(a[c],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.min(this.widthSelected,this.options.widthMax)*this.networkScaleInv:1==this.hover?Math.min(this.options.hoverWidth,this.options.widthMax)*this.networkScaleInv:this.options.width*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.yl.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){1==this.selected?(t.strokeStyle=this.options.color.highlight,t.fillStyle=this.options.color.highlight):1==this.hover?(t.strokeStyle=this.options.color.hover,t.fillStyle=this.options.color.hover):(t.strokeStyle=this.options.color.color,t.fillStyle=this.options.color.color),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),f=(r-u)/r;if(1==this.options.smoothCurves.enabled&&null!=s.x?(c=(1-f)*s.x+f*this.to.x,p=(1-f)*s.y+f*this.to.y):(c=(1-f)*this.from.x+f*this.to.x,p=(1-f)*this.from.y+f*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 g;if(1==this.options.smoothCurves.enabled&&null!=s){var m=.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));g={x:m,y:v}}else g=this._pointOnLine(.5);this._label(t,this.label,g.x,g.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&&(g=this._pointOnCircle(y,b,w,.5),this._label(t,this.label,g.x,g.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){if(this.from!=this.to){if(1==this.options.smoothCurves.enabled){var r,a;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)r=this.via.x,a=this.via.y;else{var h=this._getViaCoordinates();r=h.x,a=h.y}var d,l,c,p,u,f,g,m=1e9;for(l=0;10>l;l++)c=.1*l,p=Math.pow(1-c,2)*t+2*c*(1-c)*r+Math.pow(c,2)*i,u=Math.pow(1-c,2)*e+2*c*(1-c)*a+Math.pow(c,2)*s,l>0&&(d=this._getDistanceToLine(f,g,p,u,o,n),m=m>d?d:m),f=p,g=u;return m}return this._getDistanceToLine(t,e,i,s,o,n)}var p,u,v,y,b=.25*this.physics.springLength,_=this.from;return _.width>_.height?(p=_.x+.5*_.width,u=_.y-b):(p=_.x+b,u=_.y-.5*_.height),v=p-o,y=u-n,Math.abs(Math.sqrt(v*v+y*y)-b)},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))},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.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){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){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,f=4/3,g=this.constants.physics.repulsion.nodeDistance,m=g;for(d=0;di&&(r=.5*m>i?1:v*i+f,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=i,s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.theta){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)),f=.5*u,g=.5*(o+r),m=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:g-f,maxX:g+f,minY:m-f,maxY:m+f},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);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 Node({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](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInSupportSector=function(t,e){if(void 0===e)this._switchToSupportSector(),this[t]();else{this._switchToSupportSector();var i=Array.prototype.splice.call(arguments,1);i.length>1?this[t](i[0],i[1]):this[t](e)}this._loadLatestSector()},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;ee;e++){s=t[e];var o=this.nodes[s];if(!o)throw new RangeError('Node with id "'+s+'" not found');this._selectObject(o,!0,!0)}console.log("setSelection is deprecated. Please use selectNodes instead."),this.redraw()},e.selectNodes=function(t,e){var i,s,o;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),i=0,s=t.length;s>i;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)}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,highlightEdges)}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(49),n=i(50);e._clearManipulatorBar=function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild)},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=document.getElementById("network-manipulationDiv"),e=document.getElementById("network-manipulation-closeDiv"),i=document.getElementById("network-manipulation-editMode");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._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDiv.innerHTML=""+t.addNode+"
"+t.addEdge+"",1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?this.manipulationDiv.innerHTML+="
"+t.editNode+"":1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDiv.innerHTML+="
"+t.editEdge+""),0==this._selectionIsEmpty()&&(this.manipulationDiv.innerHTML+="
"+t.del+"");var e=document.getElementById("network-manipulate-addNode");e.onclick=this._createAddNodeToolbar.bind(this);var i=document.getElementById("network-manipulate-connectNode");if(i.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit){var s=document.getElementById("network-manipulate-editNode");s.onclick=this._editNode.bind(this)}else if(1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()){var s=document.getElementById("network-manipulate-editEdge");s.onclick=this._createEditEdgeToolbar.bind(this)}if(0==this._selectionIsEmpty()){var o=document.getElementById("network-manipulate-delete");o.onclick=this._deleteSelected.bind(this)}var n=document.getElementById("network-manipulation-closeDiv");n.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{this.editModeDiv.innerHTML=""+t.edit+"";var r=document.getElementById("network-manipulate-editModeButton");r.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.manipulationDiv.innerHTML=""+t.back+"
"+t.addDescription+"";var e=document.getElementById("network-manipulate-back");e.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.manipulationDiv.innerHTML=""+t.back+"
"+t.edgeDescription+"";var e=document.getElementById("network-manipulate-back");e.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._handleOnRelease=this._handleOnRelease,this._handleTouch=this._handleConnect,this._handleOnRelease=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.manipulationDiv.innerHTML=""+t.back+"
"+t.editEdgeDescription+"";var e=document.getElementById("network-manipulate-back");e.onclick=this._createManipulatorBar.bind(this),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._handleOnRelease=this._handleOnRelease,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._handleOnRelease=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);null!=e&&(e.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._selectObject(e,!1),this.sectors.support.nodes.targetNode=new o({id:"targetNode"},{},{},this.constants),this.sectors.support.nodes.targetNode.x=e.x,this.sectors.support.nodes.targetNode.y=e.y,this.sectors.support.nodes.targetViaNode=new o({id:"targetViaNode"},{},{},this.constants),this.sectors.support.nodes.targetViaNode.x=e.x,this.sectors.support.nodes.targetViaNode.y=e.y,this.sectors.support.nodes.targetViaNode.parentEdgeId="connectionEdge",this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:this.sectors.support.nodes.targetNode.id},this,this.constants),this.edges.connectionEdge.from=e,this.edges.connectionEdge.connected=!0,this.edges.connectionEdge.smooth=!0,this.edges.connectionEdge.selected=!0,this.edges.connectionEdge.to=this.sectors.support.nodes.targetNode,this.edges.connectionEdge.via=this.sectors.support.nodes.targetViaNode,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center);this.sectors.support.nodes.targetNode.x=this._XconvertDOMtoCanvas(e.x),this.sectors.support.nodes.targetNode.y=this._YconvertDOMtoCanvas(e.y),this.sectors.support.nodes.targetViaNode.x=.5*(this._XconvertDOMtoCanvas(e.x)+this.edges.connectionEdge.from.x),this.sectors.support.nodes.targetViaNode.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()))}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var e=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var i=this._getNodeAt(t);null!=i&&(i.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(e,i.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(!(this.triggerFunctions.del.length=2))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(18));e._cleanNavigation=function(){var t=document.getElementById("network-navigation_wrapper");t&&t.parentNode&&t.parentNode.removeChild(t),document.onmouseup=null},e._loadNavigationElements=function(){this._cleanNavigation(),this.navigationDivs={};var t=["up","down","left","right","zoomIn","zoomOut","zoomExtends"],e=["_moveUp","_moveDown","_moveLeft","_moveRight","_zoomIn","_zoomOut","zoomExtent"];this.navigationDivs.wrapper=document.createElement("div"),this.navigationDivs.wrapper.id="network-navigation_wrapper",this.frame.appendChild(this.navigationDivs.wrapper);for(var i=this,o=0;o0){"RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?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,e.length>1&&this._setLevel(t+1,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,f=e+(s-r/2),g=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,f),this.bezierCurveTo(l,f+d,p+h,g,p,g),this.bezierCurveTo(p-h,g,t,f+d,t,f),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}})}])}); diff --git a/lib/timeline/Graph2d.js b/lib/timeline/Graph2d.js index b165d162..5874e5b7 100644 --- a/lib/timeline/Graph2d.js +++ b/lib/timeline/Graph2d.js @@ -190,7 +190,7 @@ Graph2d.prototype.getLegend = function(groupId, width, height) { */ Graph2d.prototype.isGroupVisible = function(groupId) { if (this.linegraph.groups[groupId] !== undefined) { - return (this.linegraph.groups[groupId].visible && (this.options.groups.visibility[groupId] === undefined || this.options.groups.visibility[groupId] == true)); + return (this.linegraph.groups[groupId].visible && (this.linegraph.options.groups.visibility[groupId] === undefined || this.linegraph.options.groups.visibility[groupId] == true)); } else { return false;