diff --git a/dist/vis.js b/dist/vis.js index e91f4756..23267576 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.8.1 - * @date 2015-09-07 + * @version 4.8.2 + * @date 2015-09-14 * * @license * Copyright (C) 2011-2015 Almende B.V, http://almende.com @@ -388,7 +388,11 @@ return /******/ (function(modules) { // webpackBootstrap } else if (Array.isArray(b[prop])) { throw new TypeError('Arrays are not supported by deepExtend'); } else { - a[prop] = b[prop]; + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; + } else { + a[prop] = b[prop]; + } } } } @@ -433,7 +437,11 @@ return /******/ (function(modules) { // webpackBootstrap a[prop].push(b[prop][i]); } } else { - a[prop] = b[prop]; + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; + } else { + a[prop] = b[prop]; + } } } } @@ -472,7 +480,11 @@ return /******/ (function(modules) { // webpackBootstrap a[prop].push(b[prop][i]); } } else { - a[prop] = b[prop]; + if (b[prop] === null && a[prop] !== undefined && allowDeletion === true) { + delete a[prop]; + } else { + a[prop] = b[prop]; + } } } } @@ -551,11 +563,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return new Date(Number(match[1])); // parse number } else { - return moment(object).toDate(); // parse string - } + return moment(object).toDate(); // parse string + } } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); - } + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + } case 'Moment': if (exports.isNumber(object)) { @@ -572,11 +584,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return moment(Number(match[1])); // parse number } else { - return moment(object); // parse string - } + return moment(object); // parse string + } } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); - } + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type Date'); + } case 'ISODate': if (exports.isNumber(object)) { @@ -591,11 +603,11 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date return new Date(Number(match[1])).toISOString(); // parse number } else { - return new Date(object).toISOString(); // parse string - } + return new Date(object).toISOString(); // parse string + } } else { - throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); - } + throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ISODate'); + } case 'ASPDate': if (exports.isNumber(object)) { @@ -609,8 +621,8 @@ return /******/ (function(modules) { // webpackBootstrap // object is an ASP date value = new Date(Number(match[1])).valueOf(); // parse number } else { - value = new Date(object).valueOf(); // parse string - } + value = new Date(object).valueOf(); // parse string + } return '/Date(' + value + ')/'; } else { throw new Error('Cannot convert object of type ' + exports.getType(object) + ' to type ASPDate'); @@ -842,13 +854,13 @@ return /******/ (function(modules) { // webpackBootstrap if (element.addEventListener) { if (useCapture === undefined) useCapture = false; - if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { - action = 'DOMMouseScroll'; // For Firefox + if (action === "mousewheel" && navigator.userAgent.indexOf("Firefox") >= 0) { + action = "DOMMouseScroll"; // For Firefox } element.addEventListener(action, listener, useCapture); } else { - element.attachEvent('on' + action, listener); // IE browsers + element.attachEvent("on" + action, listener); // IE browsers } }; @@ -864,14 +876,14 @@ return /******/ (function(modules) { // webpackBootstrap // non-IE browsers if (useCapture === undefined) useCapture = false; - if (action === 'mousewheel' && navigator.userAgent.indexOf('Firefox') >= 0) { - action = 'DOMMouseScroll'; // For Firefox + if (action === "mousewheel" && navigator.userAgent.indexOf("Firefox") >= 0) { + action = "DOMMouseScroll"; // For Firefox } element.removeEventListener(action, listener, useCapture); } else { // IE browsers - element.detachEvent('on' + action, listener); + element.detachEvent("on" + action, listener); } }; @@ -884,8 +896,8 @@ return /******/ (function(modules) { // webpackBootstrap if (event.preventDefault) { event.preventDefault(); // non-IE browsers } else { - event.returnValue = false; // IE browsers - } + event.returnValue = false; // IE browsers + } }; /** @@ -1050,17 +1062,17 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} */ exports.overrideOpacity = function (color, opacity) { - if (color.indexOf('rgba') != -1) { + if (color.indexOf("rgba") != -1) { return color; - } else if (color.indexOf('rgb') != -1) { - var rgb = color.substr(color.indexOf('(') + 1).replace(')', '').split(','); - return 'rgba(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ',' + opacity + ')'; + } else if (color.indexOf("rgb") != -1) { + var rgb = color.substr(color.indexOf("(") + 1).replace(")", "").split(","); + return "rgba(" + rgb[0] + "," + rgb[1] + "," + rgb[2] + "," + opacity + ")"; } else { var rgb = exports.hexToRGB(color); if (rgb == null) { return color; } else { - return 'rgba(' + rgb.r + ',' + rgb.g + ',' + rgb.b + ',' + opacity + ')'; + return "rgba(" + rgb.r + "," + rgb.g + "," + rgb.b + "," + opacity + ")"; } } }; @@ -1074,7 +1086,7 @@ return /******/ (function(modules) { // webpackBootstrap * @constructor */ exports.RGBToHex = function (red, green, blue) { - return '#' + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1); + return "#" + ((1 << 24) + (red << 16) + (green << 8) + blue).toString(16).slice(1); }; /** @@ -1290,12 +1302,12 @@ return /******/ (function(modules) { // webpackBootstrap }; exports.isValidRGB = function (rgb) { - rgb = rgb.replace(' ', ''); + rgb = rgb.replace(" ", ""); var isOk = /rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(rgb); return isOk; }; exports.isValidRGBA = function (rgba) { - rgba = rgba.replace(' ', ''); + rgba = rgba.replace(" ", ""); var isOk = /rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(rgba); return isOk; }; @@ -1308,11 +1320,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} */ exports.selectiveBridgeObject = function (fields, referenceObject) { - if (typeof referenceObject == 'object') { + if (typeof referenceObject == "object") { var objectTo = Object.create(referenceObject); for (var i = 0; i < fields.length; i++) { if (referenceObject.hasOwnProperty(fields[i])) { - if (typeof referenceObject[fields[i]] == 'object') { + if (typeof referenceObject[fields[i]] == "object") { objectTo[fields[i]] = exports.bridgeObject(referenceObject[fields[i]]); } } @@ -1331,11 +1343,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} */ exports.bridgeObject = function (referenceObject) { - if (typeof referenceObject == 'object') { + if (typeof referenceObject == "object") { var objectTo = Object.create(referenceObject); for (var i in referenceObject) { if (referenceObject.hasOwnProperty(i)) { - if (typeof referenceObject[i] == 'object') { + if (typeof referenceObject[i] == "object") { objectTo[i] = exports.bridgeObject(referenceObject[i]); } } @@ -1357,10 +1369,10 @@ return /******/ (function(modules) { // webpackBootstrap */ exports.mergeOptions = function (mergeTarget, options, option) { var allowDeletion = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; + var globalOptions = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4]; if (options[option] === null) { - mergeTarget[option] = undefined; - delete mergeTarget[option]; + mergeTarget[option] = Object.create(globalOptions[option]); } else { if (options[option] !== undefined) { if (typeof options[option] === 'boolean') { @@ -5125,21 +5137,21 @@ return /******/ (function(modules) { // webpackBootstrap var point; if (groupTemplate.style == 'circle') { point = exports.getSVGElement('circle', JSONcontainer, svgContainer); - point.setAttributeNS(null, 'cx', x); - point.setAttributeNS(null, 'cy', y); - point.setAttributeNS(null, 'r', 0.5 * groupTemplate.size); + point.setAttributeNS(null, "cx", x); + point.setAttributeNS(null, "cy", y); + point.setAttributeNS(null, "r", 0.5 * groupTemplate.size); } else { point = exports.getSVGElement('rect', JSONcontainer, svgContainer); - point.setAttributeNS(null, 'x', x - 0.5 * groupTemplate.size); - point.setAttributeNS(null, 'y', y - 0.5 * groupTemplate.size); - point.setAttributeNS(null, 'width', groupTemplate.size); - point.setAttributeNS(null, 'height', groupTemplate.size); + point.setAttributeNS(null, "x", x - 0.5 * groupTemplate.size); + point.setAttributeNS(null, "y", y - 0.5 * groupTemplate.size); + point.setAttributeNS(null, "width", groupTemplate.size); + point.setAttributeNS(null, "height", groupTemplate.size); } if (groupTemplate.style !== undefined) { - point.setAttributeNS(null, 'style', groupTemplate.style); + point.setAttributeNS(null, "style", groupTemplate.style); } - point.setAttributeNS(null, 'class', groupTemplate.className + ' vis-point'); + point.setAttributeNS(null, "class", groupTemplate.className + " vis-point"); //handle label if (labelObj) { @@ -5156,10 +5168,10 @@ return /******/ (function(modules) { // webpackBootstrap } if (labelObj.className) { - label.setAttributeNS(null, 'class', labelObj.className + ' vis-label'); + label.setAttributeNS(null, "class", labelObj.className + " vis-label"); } - label.setAttributeNS(null, 'x', x); - label.setAttributeNS(null, 'y', y); + label.setAttributeNS(null, "x", x); + label.setAttributeNS(null, "y", y); } return point; @@ -5179,13 +5191,13 @@ return /******/ (function(modules) { // webpackBootstrap y -= height; } var rect = exports.getSVGElement('rect', JSONcontainer, svgContainer); - rect.setAttributeNS(null, 'x', x - 0.5 * width); - rect.setAttributeNS(null, 'y', y); - rect.setAttributeNS(null, 'width', width); - rect.setAttributeNS(null, 'height', height); - rect.setAttributeNS(null, 'class', className); + rect.setAttributeNS(null, "x", x - 0.5 * width); + rect.setAttributeNS(null, "y", y); + rect.setAttributeNS(null, "width", width); + rect.setAttributeNS(null, "height", height); + rect.setAttributeNS(null, "class", className); if (style) { - rect.setAttributeNS(null, 'style', style); + rect.setAttributeNS(null, "style", style); } } }; @@ -5815,8 +5827,8 @@ return /******/ (function(modules) { // webpackBootstrap // TODO: extend order by an Object {field:String, direction:String} // where direction can be 'asc' or 'desc' else { - throw new TypeError('Order must be a function or a string'); - } + throw new TypeError('Order must be a function or a string'); + } }; /** @@ -6592,7 +6604,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this._ids[id]) { delete this._ids[id]; removed.push(id); - } else {} + } else { + // nothing interesting for me :-( + } } } @@ -6636,8 +6650,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataView; - // nothing interesting for me :-( - /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { @@ -6881,9 +6893,11 @@ return /******/ (function(modules) { // webpackBootstrap if (backgroundColor.fill !== undefined) fill = backgroundColor.fill; if (backgroundColor.stroke !== undefined) stroke = backgroundColor.stroke; if (backgroundColor.strokeWidth !== undefined) strokeWidth = backgroundColor.strokeWidth; - } else if (backgroundColor === undefined) {} else { - throw 'Unsupported type of backgroundColor'; - } + } else if (backgroundColor === undefined) { + // use use defaults + } else { + throw 'Unsupported type of backgroundColor'; + } this.frame.style.backgroundColor = fill; this.frame.style.borderColor = stroke; @@ -7589,9 +7603,9 @@ return /******/ (function(modules) { // webpackBootstrap widthMin = dotSize / 2; // px widthMax = dotSize / 2 + dotSize * 2; // Todo: put this in one function } else { - widthMin = 20; // px - widthMax = 20; // px - } + widthMin = 20; // px + widthMax = 20; // px + } var height = Math.max(this.frame.clientHeight * 0.25, 100); var top = this.margin; @@ -8127,9 +8141,9 @@ return /******/ (function(modules) { // webpackBootstrap strokeStyle = this.axisColor; // TODO: should be customizable } } else { - fillStyle = 'gray'; - strokeStyle = this.axisColor; - } + fillStyle = 'gray'; + strokeStyle = this.axisColor; + } ctx.lineWidth = this._getStrokeWidth(point); ctx.fillStyle = fillStyle; @@ -8145,39 +8159,39 @@ return /******/ (function(modules) { // webpackBootstrap } } } else { - // grid style - for (i = 0; i < this.dataPoints.length; i++) { - point = this.dataPoints[i]; - right = this.dataPoints[i].pointRight; - top = this.dataPoints[i].pointTop; + // grid style + for (i = 0; i < this.dataPoints.length; i++) { + point = this.dataPoints[i]; + right = this.dataPoints[i].pointRight; + top = this.dataPoints[i].pointTop; - if (point !== undefined && right !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + right.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + if (point !== undefined && right !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + right.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - ctx.lineWidth = this._getStrokeWidth(point) * 2; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(right.screen.x, right.screen.y); - ctx.stroke(); - } + ctx.lineWidth = this._getStrokeWidth(point) * 2; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(right.screen.x, right.screen.y); + ctx.stroke(); + } - if (point !== undefined && top !== undefined) { - // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 - zAvg = (point.point.z + top.point.z) / 2; - h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; + if (point !== undefined && top !== undefined) { + // calculate Hue from the current value. At zMin the hue is 240, at zMax the hue is 0 + zAvg = (point.point.z + top.point.z) / 2; + h = (1 - (zAvg - this.zMin) * this.scale.z / this.verticalRatio) * 240; - ctx.lineWidth = this._getStrokeWidth(point) * 2; - ctx.strokeStyle = this._hsv2rgb(h, 1, 1); - ctx.beginPath(); - ctx.moveTo(point.screen.x, point.screen.y); - ctx.lineTo(top.screen.x, top.screen.y); - ctx.stroke(); + ctx.lineWidth = this._getStrokeWidth(point) * 2; + ctx.strokeStyle = this._hsv2rgb(h, 1, 1); + ctx.beginPath(); + ctx.moveTo(point.screen.x, point.screen.y); + ctx.lineTo(top.screen.x, top.screen.y); + ctx.stroke(); + } } } - } }; Graph3d.prototype._getStrokeWidth = function (point) { @@ -8884,8 +8898,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Graph3d; - // use use defaults - /***/ }, /* 12 */ /***/ function(module, exports) { @@ -10404,7 +10416,10 @@ return /******/ (function(modules) { // webpackBootstrap var getEnd = function getEnd(item) { var end = item.data.end != undefined ? item.data.end : item.data.start; return util.convert(end, 'Date').valueOf(); - }; + } + + // calculate the date of the left side and right side of the items given + ; interval = max - min; // ms @@ -10412,8 +10427,6 @@ return /******/ (function(modules) { // webpackBootstrap interval = 10; } factor = interval / _this.props.center.width; - - // calculate the date of the left side and right side of the items given util.forEach(_this.itemSet.items, (function (item) { item.show(); @@ -14074,7 +14087,9 @@ return /******/ (function(modules) { // webpackBootstrap /** * Destroy the component. Cleanup DOM and event listeners */ - Component.prototype.destroy = function () {}; + Component.prototype.destroy = function () { + // should be implemented by the component + }; /** * Test whether the component is resized since the last time _isResized() was @@ -14093,8 +14108,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Component; - // should be implemented by the component - /***/ }, /* 27 */ /***/ function(module, exports) { @@ -14169,16 +14182,16 @@ return /******/ (function(modules) { // webpackBootstrap } startDate.dayOfYear(start.dayOfYear()); startDate.year(start.year()); - startDate.subtract(7, "days"); + startDate.subtract(7, 'days'); endDate.dayOfYear(start.dayOfYear()); endDate.year(start.year()); - endDate.subtract(7 - offset, "days"); + endDate.subtract(7 - offset, 'days'); - runUntil.add(1, "weeks"); + runUntil.add(1, 'weeks'); break; case "weekly": - var dayOffset = endDate.diff(startDate, "days"); + var dayOffset = endDate.diff(startDate, 'days'); var day = startDate.day(); // set the start date to the range.start @@ -14190,12 +14203,12 @@ return /******/ (function(modules) { // webpackBootstrap // force startDate.day(day); endDate.day(day); - endDate.add(dayOffset, "days"); + endDate.add(dayOffset, 'days'); - startDate.subtract(1, "weeks"); - endDate.subtract(1, "weeks"); + startDate.subtract(1, 'weeks'); + endDate.subtract(1, 'weeks'); - runUntil.add(1, "weeks"); + runUntil.add(1, 'weeks'); break; case "monthly": if (startDate.month() != endDate.month()) { @@ -14203,26 +14216,26 @@ return /******/ (function(modules) { // webpackBootstrap } startDate.month(start.month()); startDate.year(start.year()); - startDate.subtract(1, "months"); + startDate.subtract(1, 'months'); endDate.month(start.month()); endDate.year(start.year()); - endDate.subtract(1, "months"); - endDate.add(offset, "months"); + endDate.subtract(1, 'months'); + endDate.add(offset, 'months'); - runUntil.add(1, "months"); + runUntil.add(1, 'months'); break; case "yearly": if (startDate.year() != endDate.year()) { offset = 1; } startDate.year(start.year()); - startDate.subtract(1, "years"); + startDate.subtract(1, 'years'); endDate.year(start.year()); - endDate.subtract(1, "years"); - endDate.add(offset, "years"); + endDate.subtract(1, 'years'); + endDate.add(offset, 'years'); - runUntil.add(1, "years"); + runUntil.add(1, 'years'); break; default: console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:", hiddenDates[i].repeat); @@ -14232,20 +14245,20 @@ return /******/ (function(modules) { // webpackBootstrap body.hiddenDates.push({ start: startDate.valueOf(), end: endDate.valueOf() }); switch (hiddenDates[i].repeat) { case "daily": - startDate.add(1, "days"); - endDate.add(1, "days"); + startDate.add(1, 'days'); + endDate.add(1, 'days'); break; case "weekly": - startDate.add(1, "weeks"); - endDate.add(1, "weeks"); + startDate.add(1, 'weeks'); + endDate.add(1, 'weeks'); break; case "monthly": - startDate.add(1, "months"); - endDate.add(1, "months"); + startDate.add(1, 'months'); + endDate.add(1, 'months'); break; case "yearly": - startDate.add(1, "y"); - endDate.add(1, "y"); + startDate.add(1, 'y'); + endDate.add(1, 'y'); break; default: console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:", hiddenDates[i].repeat); @@ -14292,14 +14305,14 @@ return /******/ (function(modules) { // webpackBootstrap } // j start inside i else if (hiddenDates[j].start >= hiddenDates[i].start && hiddenDates[j].start <= hiddenDates[i].end) { - hiddenDates[i].end = hiddenDates[j].end; - hiddenDates[j].remove = true; - } - // j end inside i - else if (hiddenDates[j].end >= hiddenDates[i].start && hiddenDates[j].end <= hiddenDates[i].end) { - hiddenDates[i].start = hiddenDates[j].start; - hiddenDates[j].remove = true; - } + hiddenDates[i].end = hiddenDates[j].end; + hiddenDates[j].remove = true; + } + // j end inside i + else if (hiddenDates[j].end >= hiddenDates[i].start && hiddenDates[j].end <= hiddenDates[i].end) { + hiddenDates[i].start = hiddenDates[j].start; + hiddenDates[j].remove = true; + } } } } @@ -15497,7 +15510,7 @@ return /******/ (function(modules) { // webpackBootstrap if (newScrollTop != oldScrollTop) { this._redraw(); // TODO: this causes two redraws when dragging, the other is triggered by rangechange already - this.emit('verticalDrag'); + this.emit("verticalDrag"); } }; @@ -17083,25 +17096,25 @@ return /******/ (function(modules) { // webpackBootstrap } // if dragged group was move downwards everything above should have an offset else if (origOrder[curPos + orgOffset] == draggedId) { - orgOffset = 1; - continue; - } - // found a group (apart from dragged group) that has the wrong position -> switch with the - // group at the position where other one should be, fix index arrays and continue - else { - var slippedPosition = newOrder.indexOf(origOrder[curPos + orgOffset]); - var switchGroup = groupsData.get(newOrder[curPos + newOffset]); - var shouldBeGroup = groupsData.get(origOrder[curPos + orgOffset]); - this.options.groupOrderSwap(switchGroup, shouldBeGroup, groupsData); - groupsData.update(switchGroup); - groupsData.update(shouldBeGroup); - - var switchGroupId = newOrder[curPos + newOffset]; - newOrder[curPos + newOffset] = origOrder[curPos + orgOffset]; - newOrder[slippedPosition] = switchGroupId; - - curPos++; - } + orgOffset = 1; + continue; + } + // found a group (apart from dragged group) that has the wrong position -> switch with the + // group at the position where other one should be, fix index arrays and continue + else { + var slippedPosition = newOrder.indexOf(origOrder[curPos + orgOffset]); + var switchGroup = groupsData.get(newOrder[curPos + newOffset]); + var shouldBeGroup = groupsData.get(origOrder[curPos + orgOffset]); + this.options.groupOrderSwap(switchGroup, shouldBeGroup, groupsData); + groupsData.update(switchGroup); + groupsData.update(shouldBeGroup); + + var switchGroupId = newOrder[curPos + newOffset]; + newOrder[curPos + newOffset] = origOrder[curPos + orgOffset]; + newOrder[slippedPosition] = switchGroupId; + + curPos++; + } } } } @@ -17302,16 +17315,16 @@ return /******/ (function(modules) { // webpackBootstrap } } } else { - // add/remove this item from the current selection - var index = selection.indexOf(item.id); - if (index == -1) { - // item is not yet selected -> select it - selection.push(item.id); - } else { - // item is already selected -> deselect it - selection.splice(index, 1); + // add/remove this item from the current selection + var index = selection.indexOf(item.id); + if (index == -1) { + // item is not yet selected -> select it + selection.push(item.id); + } else { + // item is already selected -> deselect it + selection.splice(index, 1); + } } - } this.setSelection(selection); @@ -17574,7 +17587,7 @@ return /******/ (function(modules) { // webpackBootstrap */ TimeStep.prototype.setRange = function (start, end, minimumStep) { if (!(start instanceof Date) || !(end instanceof Date)) { - throw 'No legal start or end date in method setRange'; + throw "No legal start or end date in method setRange"; } this._start = start != undefined ? this.moment(start.valueOf()) : new Date(); @@ -17616,7 +17629,7 @@ return /******/ (function(modules) { // webpackBootstrap this.current.seconds(0); case 'second': this.current.milliseconds(0); - //case 'millisecond': // nothing to do for milliseconds + //case 'millisecond': // nothing to do for milliseconds } if (this.step != 1) { @@ -17909,8 +17922,8 @@ return /******/ (function(modules) { // webpackBootstrap clone.add(1, 'month'); // important: first set Date to 1, after that change the month. } else { - clone.date(1); - } + clone.date(1); + } clone.hours(0); clone.minutes(0); @@ -18197,7 +18210,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.checkRangedItems = false; // needed to refresh the ranged items if the window is programatically changed with NO overlap. var me = this; - this.itemSet.body.emitter.on('checkRangedItems', function () { + this.itemSet.body.emitter.on("checkRangedItems", function () { me.checkRangedItems = true; }); @@ -19086,10 +19099,10 @@ return /******/ (function(modules) { // webpackBootstrap // a width which will not change when moving the Timeline // So no re-stacking needed, which is nicer for the eye; } else { - this.left = start; - this.width = boxWidth; - contentWidth = Math.min(end - start, this.props.content.width); - } + this.left = start; + this.width = boxWidth; + contentWidth = Math.min(end - start, this.props.content.width); + } this.dom.box.style.left = this.left + 'px'; this.dom.box.style.width = boxWidth + 'px'; @@ -19117,12 +19130,12 @@ return /******/ (function(modules) { // webpackBootstrap contentLeft = -contentWidth; // ensure it's not visible anymore } } else { - if (start < 0) { - contentLeft = -start; - } else { - contentLeft = 0; + if (start < 0) { + contentLeft = -start; + } else { + contentLeft = 0; + } } - } this.dom.content.style.left = contentLeft + 'px'; } }; @@ -19314,17 +19327,23 @@ return /******/ (function(modules) { // webpackBootstrap /** * Repaint the item */ - Item.prototype.redraw = function () {}; + Item.prototype.redraw = function () { + // should be implemented by the item + }; /** * Reposition the Item horizontally */ - Item.prototype.repositionX = function () {}; + Item.prototype.repositionX = function () { + // should be implemented by the item + }; /** * Reposition the Item vertically */ - Item.prototype.repositionY = function () {}; + Item.prototype.repositionY = function () { + // should be implemented by the item + }; /** * Repaint a delete button on the top right of the item when the item is selected @@ -19483,12 +19502,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Item; - // should be implemented by the item - - // should be implemented by the item - - // should be implemented by the item - /***/ }, /* 35 */ /***/ function(module, exports, __webpack_require__) { @@ -20181,39 +20194,39 @@ return /******/ (function(modules) { // webpackBootstrap } // and when the orientation is bottom: else { - var newTop = this.parent.top; - var totalHeight = 0; - for (var subgroup in subgroups) { - if (subgroups.hasOwnProperty(subgroup)) { - if (subgroups[subgroup].visible == true) { - var newHeight = subgroups[subgroup].height + margin.item.vertical; - totalHeight += newHeight; - if (subgroups[subgroup].index > subgroupIndex) { - newTop += newHeight; + var newTop = this.parent.top; + var totalHeight = 0; + for (var subgroup in subgroups) { + if (subgroups.hasOwnProperty(subgroup)) { + if (subgroups[subgroup].visible == true) { + var newHeight = subgroups[subgroup].height + margin.item.vertical; + totalHeight += newHeight; + if (subgroups[subgroup].index > subgroupIndex) { + newTop += newHeight; + } } } } + height = this.parent.subgroups[itemSubgroup].height + margin.item.vertical; + this.dom.box.style.top = this.parent.height - totalHeight + newTop + 'px'; + this.dom.box.style.bottom = ''; } - height = this.parent.subgroups[itemSubgroup].height + margin.item.vertical; - this.dom.box.style.top = this.parent.height - totalHeight + newTop + 'px'; - this.dom.box.style.bottom = ''; - } } // and in the case of no subgroups: else { - // we want backgrounds with groups to only show in groups. - if (this.parent instanceof BackgroundGroup) { - // if the item is not in a group: - height = Math.max(this.parent.height, this.parent.itemSet.body.domProps.center.height, this.parent.itemSet.body.domProps.centerContainer.height); - this.dom.box.style.top = onTop ? '0' : ''; - this.dom.box.style.bottom = onTop ? '' : '0'; - } else { - height = this.parent.height; - // same alignment for items when orientation is top or bottom - this.dom.box.style.top = this.parent.top + 'px'; - this.dom.box.style.bottom = ''; + // we want backgrounds with groups to only show in groups. + if (this.parent instanceof BackgroundGroup) { + // if the item is not in a group: + height = Math.max(this.parent.height, this.parent.itemSet.body.domProps.center.height, this.parent.itemSet.body.domProps.centerContainer.height); + this.dom.box.style.top = onTop ? '0' : ''; + this.dom.box.style.bottom = onTop ? '' : '0'; + } else { + height = this.parent.height; + // same alignment for items when orientation is top or bottom + this.dom.box.style.top = this.parent.top + 'px'; + this.dom.box.style.bottom = ''; + } } - } this.dom.box.style.height = height + 'px'; }; @@ -21496,8 +21509,6 @@ return /******/ (function(modules) { // webpackBootstrap var _ColorPicker2 = _interopRequireDefault(_ColorPicker); - var util = __webpack_require__(1); - /** * The way this works is for all properties of this.possible options, you can supply the property name in any form to list the options. * Boolean options are recognised as Boolean @@ -21512,6 +21523,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param configureOptions | the fully configured and predefined options set found in allOptions.js * @param pixelRatio | canvas pixel ratio */ + var util = __webpack_require__(1); var Configurator = (function () { function Configurator(parentModule, defaultContainer, configureOptions) { @@ -21545,15 +21557,15 @@ return /******/ (function(modules) { // webpackBootstrap this.wrapper = undefined; } + /** + * refresh all options. + * Because all modules parse their options by themselves, we just use their options. We copy them here. + * + * @param options + */ + _createClass(Configurator, [{ key: 'setOptions', - - /** - * refresh all options. - * Because all modules parse their options by themselves, we just use their options. We copy them here. - * - * @param options - */ value: function setOptions(options) { if (options !== undefined) { // reset the popup history because the indices may have been changed. @@ -21605,13 +21617,13 @@ return /******/ (function(modules) { // webpackBootstrap this._create(); } } - }, { - key: '_create', /** * Create all DOM elements * @private */ + }, { + key: '_create', value: function _create() { var _this = this; @@ -21675,13 +21687,13 @@ return /******/ (function(modules) { // webpackBootstrap this._push(); this.colorPicker.insertTo(this.container); } - }, { - key: '_push', /** * draw all DOM elements on the screen * @private */ + }, { + key: '_push', value: function _push() { this.wrapper = document.createElement('div'); this.wrapper.className = 'vis-configuration-wrapper'; @@ -21692,13 +21704,13 @@ return /******/ (function(modules) { // webpackBootstrap this._showPopupIfNeeded(); } - }, { - key: '_clean', /** * delete all DOM elements * @private */ + }, { + key: '_clean', value: function _clean() { for (var i = 0; i < this.domElements.length; i++) { this.wrapper.removeChild(this.domElements[i]); @@ -21712,8 +21724,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removePopup(); } - }, { - key: '_getValue', /** * get the value from the actualOptions if it exists @@ -21721,6 +21731,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_getValue', value: function _getValue(path) { var base = this.moduleOptions; for (var i = 0; i < path.length; i++) { @@ -21733,8 +21745,6 @@ return /******/ (function(modules) { // webpackBootstrap } return base; } - }, { - key: '_makeItem', /** * all option elements are wrapped in an item @@ -21742,6 +21752,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param domElements * @private */ + }, { + key: '_makeItem', value: function _makeItem(path) { var _arguments = arguments, _this2 = this; @@ -21770,22 +21782,20 @@ return /******/ (function(modules) { // webpackBootstrap } return 0; } - }, { - key: '_makeHeader', /** * header for major subjects * @param name * @private */ + }, { + key: '_makeHeader', value: function _makeHeader(name) { var div = document.createElement('div'); div.className = 'vis-configuration vis-config-header'; div.innerHTML = name; this._makeItem([], div); } - }, { - key: '_makeLabel', /** * make a label, if it is an object label, it gets different styling. @@ -21795,6 +21805,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {HTMLElement} * @private */ + }, { + key: '_makeLabel', value: function _makeLabel(name, path) { var objectLabel = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; @@ -21807,8 +21819,6 @@ return /******/ (function(modules) { // webpackBootstrap } return div; } - }, { - key: '_makeDropdown', /** * make a dropdown list for multiple possible string optoins @@ -21817,6 +21827,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeDropdown', value: function _makeDropdown(arr, value, path) { var select = document.createElement('select'); select.className = 'vis-configuration vis-config-select'; @@ -21845,8 +21857,6 @@ return /******/ (function(modules) { // webpackBootstrap var label = this._makeLabel(path[path.length - 1], path); this._makeItem(path, label, select); } - }, { - key: '_makeRange', /** * make a range object for numeric options @@ -21855,6 +21865,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeRange', value: function _makeRange(arr, value, path) { var defaultValue = arr[0]; var min = arr[1]; @@ -21915,8 +21927,6 @@ return /******/ (function(modules) { // webpackBootstrap this._setupPopup(popupString, itemIndex); } } - }, { - key: '_setupPopup', /** * prepare the popup @@ -21924,13 +21934,15 @@ return /******/ (function(modules) { // webpackBootstrap * @param index * @private */ + }, { + key: '_setupPopup', value: function _setupPopup(string, index) { var _this3 = this; if (this.initialized === true && this.allowCreation === true && this.popupCounter < this.popupLimit) { - var div = document.createElement('div'); - div.id = 'vis-configuration-popup'; - div.className = 'vis-configuration-popup'; + var div = document.createElement("div"); + div.id = "vis-configuration-popup"; + div.className = "vis-configuration-popup"; div.innerHTML = string; div.onclick = function () { _this3._removePopup(); @@ -21939,13 +21951,13 @@ return /******/ (function(modules) { // webpackBootstrap this.popupDiv = { html: div, index: index }; } } - }, { - key: '_removePopup', /** * remove the popup from the dom * @private */ + }, { + key: '_removePopup', value: function _removePopup() { if (this.popupDiv.html !== undefined) { this.popupDiv.html.parentNode.removeChild(this.popupDiv.html); @@ -21954,21 +21966,21 @@ return /******/ (function(modules) { // webpackBootstrap this.popupDiv = {}; } } - }, { - key: '_showPopupIfNeeded', /** * Show the popup if it is needed. * @private */ + }, { + key: '_showPopupIfNeeded', value: function _showPopupIfNeeded() { var _this4 = this; if (this.popupDiv.html !== undefined) { var correspondingElement = this.domElements[this.popupDiv.index]; var rect = correspondingElement.getBoundingClientRect(); - this.popupDiv.html.style.left = rect.left + 'px'; - this.popupDiv.html.style.top = rect.top - 30 + 'px'; // 30 is the height; + this.popupDiv.html.style.left = rect.left + "px"; + this.popupDiv.html.style.top = rect.top - 30 + "px"; // 30 is the height; document.body.appendChild(this.popupDiv.html); this.popupDiv.hideTimeout = setTimeout(function () { _this4.popupDiv.html.style.opacity = 0; @@ -21978,8 +21990,6 @@ return /******/ (function(modules) { // webpackBootstrap }, 1800); } } - }, { - key: '_makeCheckbox', /** * make a checkbox for boolean options. @@ -21988,6 +21998,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeCheckbox', value: function _makeCheckbox(defaultValue, value, path) { var checkbox = document.createElement('input'); checkbox.type = 'checkbox'; @@ -22014,8 +22026,6 @@ return /******/ (function(modules) { // webpackBootstrap var label = this._makeLabel(path[path.length - 1], path); this._makeItem(path, label, checkbox); } - }, { - key: '_makeTextInput', /** * make a text input field for string options. @@ -22024,6 +22034,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeTextInput', value: function _makeTextInput(defaultValue, value, path) { var checkbox = document.createElement('input'); checkbox.type = 'text'; @@ -22041,8 +22053,6 @@ return /******/ (function(modules) { // webpackBootstrap var label = this._makeLabel(path[path.length - 1], path); this._makeItem(path, label, checkbox); } - }, { - key: '_makeColorField', /** * make a color field with a color picker for color fields @@ -22051,6 +22061,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeColorField', value: function _makeColorField(arr, value, path) { var _this5 = this; @@ -22073,8 +22085,6 @@ return /******/ (function(modules) { // webpackBootstrap var label = this._makeLabel(path[path.length - 1], path); this._makeItem(path, label, div); } - }, { - key: '_showColorPicker', /** * used by the color buttons to call the color picker. @@ -22084,6 +22094,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_showColorPicker', value: function _showColorPicker(value, div, path) { var _this6 = this; @@ -22099,8 +22111,6 @@ return /******/ (function(modules) { // webpackBootstrap _this6._update(colorString, path); }); } - }, { - key: '_handleObject', /** * parse an object and draw the correct items @@ -22108,6 +22118,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_handleObject', value: function _handleObject(obj) { var path = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; var checkOnly = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; @@ -22178,8 +22190,6 @@ return /******/ (function(modules) { // webpackBootstrap } return visibleInSet; } - }, { - key: '_handleArray', /** * handle the array type of option @@ -22189,6 +22199,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_handleArray', value: function _handleArray(arr, value, path) { if (typeof arr[0] === 'string' && arr[0] === 'color') { this._makeColorField(arr, value, path); @@ -22207,8 +22219,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_update', /** * called to update the network with the new settings. @@ -22216,11 +22226,13 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_update', value: function _update(value, path) { var options = this._constructOptions(value, path); if (this.parent.body && this.parent.body.emitter && this.parent.body.emitter.emit) { - this.parent.body.emitter.emit('configChange', options); + this.parent.body.emitter.emit("configChange", options); } this.initialized = true; this.parent.setOptions(options); @@ -22314,13 +22326,13 @@ return /******/ (function(modules) { // webpackBootstrap this._create(); } + /** + * this inserts the colorPicker into a div from the DOM + * @param container + */ + _createClass(ColorPicker, [{ key: 'insertTo', - - /** - * this inserts the colorPicker into a div from the DOM - * @param container - */ value: function insertTo(container) { if (this.hammer !== undefined) { this.hammer.destroy(); @@ -22332,18 +22344,18 @@ return /******/ (function(modules) { // webpackBootstrap this._setSize(); } - }, { - key: 'setCallback', /** * the callback is executed on apply and save. Bind it to the application * @param callback */ + }, { + key: 'setCallback', value: function setCallback(callback) { if (typeof callback === 'function') { this.updateCallback = callback; } else { - throw new Error('Function attempted to set as colorPicker callback is not a function.'); + throw new Error("Function attempted to set as colorPicker callback is not a function."); } } }, { @@ -22354,8 +22366,6 @@ return /******/ (function(modules) { // webpackBootstrap return htmlColors[color]; } } - }, { - key: 'setColor', /** * Set the color of the colorPicker @@ -22369,6 +22379,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param color * @param setInitial */ + }, { + key: 'setColor', value: function setColor(color) { var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -22407,19 +22419,19 @@ return /******/ (function(modules) { // webpackBootstrap // set color if (rgba === undefined) { - throw new Error('Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: ' + JSON.stringify(color)); + throw new Error("Unknown color passed to the colorPicker. Supported are strings: rgb, hex, rgba. Object: rgb ({r:r,g:g,b:b,[a:a]}). Supplied: " + JSON.stringify(color)); } else { this._setColor(rgba, setInitial); } } - }, { - key: 'show', /** * this shows the color picker at a location. The hue circle is constructed once and stored. * @param x * @param y */ + }, { + key: 'show', value: function show(x, y) { this.applied = false; this.frame.style.display = 'block'; @@ -22427,8 +22439,6 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.style.left = x + 'px'; this._generateHueCircle(); } - }, { - key: '_hide', // ------------------------------------------ PRIVATE ----------------------------- // @@ -22438,6 +22448,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param storePrevious * @private */ + }, { + key: '_hide', value: function _hide() { var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; @@ -22452,46 +22464,44 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.style.display = 'none'; } - }, { - key: '_save', /** * bound to the save button. Saves and hides. * @private */ + }, { + key: '_save', value: function _save() { this.updateCallback(this.color); this.applied = false; this._hide(); } - }, { - key: '_apply', /** * Bound to apply button. Saves but does not close. Is undone by the cancel button. * @private */ + }, { + key: '_apply', value: function _apply() { this.applied = true; this.updateCallback(this.color); this._updatePicker(this.color); } - }, { - key: '_loadLast', /** * load the color from the previous session. * @private */ + }, { + key: '_loadLast', value: function _loadLast() { if (this.previousColor !== undefined) { this.setColor(this.previousColor, false); } else { - alert('There is no last color to load...'); + alert("There is no last color to load..."); } } - }, { - key: '_setColor', /** * set the color, place the picker @@ -22499,6 +22509,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param setInitial * @private */ + }, { + key: '_setColor', value: function _setColor(rgba) { var setInitial = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -22520,26 +22532,26 @@ return /******/ (function(modules) { // webpackBootstrap this._updatePicker(rgba); } - }, { - key: '_setOpacity', /** * bound to opacity control * @param value * @private */ + }, { + key: '_setOpacity', value: function _setOpacity(value) { this.color.a = value / 100; this._updatePicker(this.color); } - }, { - key: '_setBrightness', /** * bound to brightness control * @param value * @private */ + }, { + key: '_setBrightness', value: function _setBrightness(value) { var hsv = util.RGBToHSV(this.color.r, this.color.g, this.color.b); hsv.v = value / 100; @@ -22548,14 +22560,14 @@ return /******/ (function(modules) { // webpackBootstrap this.color = rgba; this._updatePicker(); } - }, { - key: '_updatePicker', /** * update the colorpicker. A black circle overlays the hue circle to mimic the brightness decreasing. * @param rgba * @private */ + }, { + key: '_updatePicker', value: function _updatePicker() { var rgba = arguments.length <= 0 || arguments[0] === undefined ? this.color : arguments[0]; @@ -22582,13 +22594,13 @@ return /******/ (function(modules) { // webpackBootstrap this.initialColorDiv.style.backgroundColor = 'rgba(' + this.initialColor.r + ',' + this.initialColor.g + ',' + this.initialColor.b + ',' + this.initialColor.a + ')'; this.newColorDiv.style.backgroundColor = 'rgba(' + this.color.r + ',' + this.color.g + ',' + this.color.b + ',' + this.color.a + ')'; } - }, { - key: '_setSize', /** * used by create to set the size of the canvas. * @private */ + }, { + key: '_setSize', value: function _setSize() { this.colorPickerCanvas.style.width = '100%'; this.colorPickerCanvas.style.height = '100%'; @@ -22596,14 +22608,14 @@ return /******/ (function(modules) { // webpackBootstrap this.colorPickerCanvas.width = 289 * this.pixelRatio; this.colorPickerCanvas.height = 289 * this.pixelRatio; } - }, { - key: '_create', /** * create all dom elements * TODO: cleanup, lots of similar dom elements * @private */ + }, { + key: '_create', value: function _create() { this.frame = document.createElement('div'); this.frame.className = 'vis-color-picker'; @@ -22624,10 +22636,10 @@ return /******/ (function(modules) { // webpackBootstrap noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; this.colorPickerCanvas.appendChild(noCanvas); } else { - var ctx = this.colorPickerCanvas.getContext('2d'); + var ctx = this.colorPickerCanvas.getContext("2d"); this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - this.colorPickerCanvas.getContext('2d').setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + this.colorPickerCanvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); } this.colorPickerDiv.className = 'vis-color'; @@ -22676,39 +22688,39 @@ return /******/ (function(modules) { // webpackBootstrap me._setBrightness(this.value); }; - this.brightnessLabel = document.createElement('div'); - this.brightnessLabel.className = 'vis-label vis-brightness'; + this.brightnessLabel = document.createElement("div"); + this.brightnessLabel.className = "vis-label vis-brightness"; this.brightnessLabel.innerHTML = 'brightness:'; - this.opacityLabel = document.createElement('div'); - this.opacityLabel.className = 'vis-label vis-opacity'; + this.opacityLabel = document.createElement("div"); + this.opacityLabel.className = "vis-label vis-opacity"; this.opacityLabel.innerHTML = 'opacity:'; - this.newColorDiv = document.createElement('div'); - this.newColorDiv.className = 'vis-new-color'; + this.newColorDiv = document.createElement("div"); + this.newColorDiv.className = "vis-new-color"; this.newColorDiv.innerHTML = 'new'; - this.initialColorDiv = document.createElement('div'); - this.initialColorDiv.className = 'vis-initial-color'; + this.initialColorDiv = document.createElement("div"); + this.initialColorDiv.className = "vis-initial-color"; this.initialColorDiv.innerHTML = 'initial'; - this.cancelButton = document.createElement('div'); - this.cancelButton.className = 'vis-button vis-cancel'; + this.cancelButton = document.createElement("div"); + this.cancelButton.className = "vis-button vis-cancel"; this.cancelButton.innerHTML = 'cancel'; this.cancelButton.onclick = this._hide.bind(this, false); - this.applyButton = document.createElement('div'); - this.applyButton.className = 'vis-button vis-apply'; + this.applyButton = document.createElement("div"); + this.applyButton.className = "vis-button vis-apply"; this.applyButton.innerHTML = 'apply'; this.applyButton.onclick = this._apply.bind(this); - this.saveButton = document.createElement('div'); - this.saveButton.className = 'vis-button vis-save'; + this.saveButton = document.createElement("div"); + this.saveButton.className = "vis-button vis-save"; this.saveButton.innerHTML = 'save'; this.saveButton.onclick = this._save.bind(this); - this.loadButton = document.createElement('div'); - this.loadButton.className = 'vis-button vis-load'; + this.loadButton = document.createElement("div"); + this.loadButton.className = "vis-button vis-load"; this.loadButton.innerHTML = 'load last'; this.loadButton.onclick = this._loadLast.bind(this); @@ -22726,13 +22738,13 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.appendChild(this.saveButton); this.frame.appendChild(this.loadButton); } - }, { - key: '_bindHammer', /** * bind hammer to the color picker * @private */ + }, { + key: '_bindHammer', value: function _bindHammer() { var _this = this; @@ -22757,13 +22769,13 @@ return /******/ (function(modules) { // webpackBootstrap _this._moveSelector(event); }); } - }, { - key: '_generateHueCircle', /** * generate the hue circle. This is relatively heavy (200ms) and is done only once on the first time it is shown. * @private */ + }, { + key: '_generateHueCircle', value: function _generateHueCircle() { if (this.generated === false) { var ctx = this.colorPickerCanvas.getContext('2d'); @@ -22805,8 +22817,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.generated = true; } - }, { - key: '_moveSelector', /** * move the selector. This is called by hammer functions. @@ -22814,6 +22824,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param event * @private */ + }, { + key: '_moveSelector', value: function _moveSelector(event) { var rect = this.colorPickerDiv.getBoundingClientRect(); var left = event.center.x - rect.left; @@ -22885,15 +22897,15 @@ return /******/ (function(modules) { // webpackBootstrap _classCallCheck(this, Validator); } + /** + * Main function to be called + * @param options + * @param subObject + * @returns {boolean} + */ + _createClass(Validator, null, [{ key: 'validate', - - /** - * Main function to be called - * @param options - * @param subObject - * @returns {boolean} - */ value: function validate(options, referenceOptions, subObject) { errorFound = false; allOptions = referenceOptions; @@ -22904,8 +22916,6 @@ return /******/ (function(modules) { // webpackBootstrap Validator.parse(options, usedOptions, []); return errorFound; } - }, { - key: 'parse', /** * Will traverse an object recursively and check every value @@ -22913,6 +22923,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param referenceOptions * @param path */ + }, { + key: 'parse', value: function parse(options, referenceOptions, path) { for (var option in options) { if (options.hasOwnProperty(option)) { @@ -22920,8 +22932,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'check', /** * Check every value. If the value is an object, call the parse function on that object. @@ -22930,6 +22940,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param referenceOptions * @param path */ + }, { + key: 'check', value: function check(option, options, referenceOptions, path) { if (referenceOptions[option] === undefined && referenceOptions.__any__ === undefined) { Validator.getSuggestion(option, referenceOptions, path); @@ -22951,8 +22963,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'checkFields', /** * @@ -22963,6 +22973,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {String} refOptionType | This is the type object from the reference options * @param {Array} path | where in the object is the option */ + }, { + key: 'checkFields', value: function checkFields(option, options, referenceOptions, referenceOption, refOptionObj, path) { var optionType = Validator.getType(options[option]); var refOptionType = refOptionObj[optionType]; @@ -22972,11 +22984,11 @@ return /******/ (function(modules) { // webpackBootstrap if (refOptionType.indexOf(options[option]) === -1) { console.log('%cInvalid option detected in "' + option + '".' + ' Allowed values are:' + Validator.print(refOptionType) + ' not "' + options[option] + '". ' + Validator.printLocation(path, option), printStyle); errorFound = true; - } else if (optionType === 'object' && referenceOption !== '__any__') { + } else if (optionType === 'object' && referenceOption !== "__any__") { path = util.copyAndExtendArray(path, option); Validator.parse(options[option], referenceOptions[referenceOption], path); } - } else if (optionType === 'object' && referenceOption !== '__any__') { + } else if (optionType === 'object' && referenceOption !== "__any__") { path = util.copyAndExtendArray(path, option); Validator.parse(options[option], referenceOptions[referenceOption], path); } @@ -23049,8 +23061,6 @@ return /******/ (function(modules) { // webpackBootstrap errorFound = true; } - }, { - key: 'findInOptions', /** * traverse the options in search for a match. @@ -23060,6 +23070,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param recursive * @returns {{closestMatch: string, path: Array, distance: number}} */ + }, { + key: 'findInOptions', value: function findInOptions(option, options, path) { var recursive = arguments.length <= 3 || arguments[3] === undefined ? false : arguments[3]; @@ -23119,10 +23131,8 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'print', value: function print(options) { - return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, '').replace(/(\,)/g, ', '); + return JSON.stringify(options).replace(/(\")|(\[)|(\])|(,"__type__")/g, "").replace(/(\,)/g, ', '); } - }, { - key: 'levenshteinDistance', // Compute the edit distance between the two given strings // http://en.wikibooks.org/wiki/Algorithm_Implementation/Strings/Levenshtein_distance#JavaScript @@ -23132,6 +23142,8 @@ return /******/ (function(modules) { // webpackBootstrap The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ + }, { + key: 'levenshteinDistance', value: function levenshteinDistance(a, b) { if (a.length === 0) return b.length; if (b.length === 0) return a.length; @@ -23319,7 +23331,7 @@ return /******/ (function(modules) { // webpackBootstrap global: { align: ['center', 'left', 'right'], autoResize: true, - throttleRedraw: 0, + throttleRedraw: [10, 0, 1000, 10], clickToUse: false, // dataAttributes: ['all'], // FIXME: can be 'all' or string[] editable: { @@ -23626,7 +23638,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this.linegraph.groups[groupId] !== undefined) { return this.linegraph.groups[groupId].getLegend(width, height); } else { - return 'cannot find group:' + groupId; + return "cannot find group:" + groupId; } }; @@ -23943,7 +23955,7 @@ return /******/ (function(modules) { // webpackBootstrap this.updateSVGheight = true; this.updateSVGheightOnResize = true; } else if (this.body.domProps.centerContainer.height !== undefined && options.graphHeight !== undefined) { - if (parseInt((options.graphHeight + '').replace('px', '')) < this.body.domProps.centerContainer.height) { + if (parseInt((options.graphHeight + '').replace("px", '')) < this.body.domProps.centerContainer.height) { this.updateSVGheight = true; } } @@ -24297,7 +24309,7 @@ return /******/ (function(modules) { // webpackBootstrap this.svg.style.left = util.option.asSize(-this.props.width); // if the height of the graph is set as proportional, change the height of the svg - if ((this.options.height + '').indexOf('%') != -1 || this.updateSVGheightOnResize == true) { + if ((this.options.height + '').indexOf("%") != -1 || this.updateSVGheightOnResize == true) { this.updateSVGheight = true; } } @@ -24389,7 +24401,7 @@ return /******/ (function(modules) { // webpackBootstrap return true; } else { if (this.COUNTER > MAX_CYCLES) { - console.log('WARNING: there may be an infinite loop in the _updateGraph emitter cycle.'); + console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."); } this.COUNTER = 0; this.abortedGraphUpdate = false; @@ -24788,7 +24800,7 @@ return /******/ (function(modules) { // webpackBootstrap this.conversionFactor = 1; this.setOptions(options); - this.width = Number(('' + this.options.width).replace('px', '')); + this.width = Number(('' + this.options.width).replace("px", "")); this.minWidth = this.width; this.height = this.linegraphSVG.offsetHeight; this.hidden = false; @@ -24809,7 +24821,7 @@ return /******/ (function(modules) { // webpackBootstrap this._create(); var me = this; - this.body.emitter.on('verticalDrag', function () { + this.body.emitter.on("verticalDrag", function () { me.dom.lineContainer.style.top = me.body.domProps.scrollTop + 'px'; }); } @@ -24843,7 +24855,7 @@ return /******/ (function(modules) { // webpackBootstrap var fields = ['orientation', 'showMinorLabels', 'showMajorLabels', 'icons', 'majorLinesOffset', 'minorLinesOffset', 'labelOffsetX', 'labelOffsetY', 'iconWidth', 'width', 'visible', 'left', 'right', 'alignZeros']; util.selectiveExtend(fields, this.options, options); - this.minWidth = Number(('' + this.options.width).replace('px', '')); + this.minWidth = Number(('' + this.options.width).replace("px", "")); if (redraw === true && this.dom.frame) { this.hide(); @@ -24866,12 +24878,12 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.lineContainer.style.position = 'relative'; // create svg element for graph drawing. - this.svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); - this.svg.style.position = 'absolute'; + 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.svg.style.display = "block"; this.dom.frame.appendChild(this.svg); }; @@ -24985,11 +24997,11 @@ return /******/ (function(modules) { // webpackBootstrap this.hide(); } else { this.show(); - this.height = Number(this.linegraphSVG.style.height.replace('px', '')); + 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; + this.width = this.options.visible === true ? Number(('' + this.options.width).replace("px", "")) : 0; var props = this.props; var frame = this.dom.frame; @@ -25019,7 +25031,7 @@ return /******/ (function(modules) { // webpackBootstrap frame.style.left = '0'; frame.style.bottom = ''; frame.style.width = this.width + 'px'; - frame.style.height = this.height + 'px'; + frame.style.height = this.height + "px"; this.props.width = this.body.domProps.left.width; this.props.height = this.body.domProps.left.height; } else { @@ -25028,7 +25040,7 @@ return /******/ (function(modules) { // webpackBootstrap frame.style.bottom = '0'; frame.style.left = '0'; frame.style.width = this.width + 'px'; - frame.style.height = this.height + 'px'; + frame.style.height = this.height + "px"; this.props.width = this.body.domProps.right.width; this.props.height = this.body.domProps.right.height; } @@ -25152,7 +25164,7 @@ return /******/ (function(modules) { // webpackBootstrap // this will resize the yAxis to accommodate the labels. if (this.maxLabelSize > this.width - offset && this.options.visible === true) { this.width = this.maxLabelSize + offset; - this.options.width = this.width + 'px'; + this.options.width = this.width + "px"; DOMutil.cleanupElements(this.DOMelements.lines); DOMutil.cleanupElements(this.DOMelements.labels); this.redraw(); @@ -25160,17 +25172,17 @@ return /******/ (function(modules) { // webpackBootstrap } // 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(); - resized = true; - } else { - DOMutil.cleanupElements(this.DOMelements.lines); - DOMutil.cleanupElements(this.DOMelements.labels); - resized = false; - } + 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(); + resized = true; + } else { + DOMutil.cleanupElements(this.DOMelements.lines); + DOMutil.cleanupElements(this.DOMelements.labels); + resized = false; + } return resized; }; @@ -25201,10 +25213,10 @@ return /******/ (function(modules) { // webpackBootstrap label.innerHTML = text; if (orientation === 'left') { label.style.left = '-' + this.options.labelOffsetX + 'px'; - label.style.textAlign = 'right'; + label.style.textAlign = "right"; } else { label.style.right = '-' + this.options.labelOffsetX + 'px'; - label.style.textAlign = 'left'; + label.style.textAlign = "left"; } label.style.top = y - 0.5 * characterHeight + this.options.labelOffsetY + 'px'; @@ -25688,29 +25700,29 @@ return /******/ (function(modules) { // webpackBootstrap 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', 'vis-outline'); + 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", "vis-outline"); if (this.options.style == 'line') { - path = DOMutil.getSVGElement('path', JSONcontainer, SVGcontainer); - path.setAttributeNS(null, 'class', this.className); + path = DOMutil.getSVGElement("path", JSONcontainer, SVGcontainer); + path.setAttributeNS(null, "class", this.className); if (this.style !== undefined) { - path.setAttributeNS(null, 'style', this.style); + path.setAttributeNS(null, "style", this.style); } - path.setAttributeNS(null, 'd', 'M' + x + ',' + y + ' L' + (x + iconWidth) + ',' + y + ''); + path.setAttributeNS(null, "d", "M" + x + "," + y + " L" + (x + iconWidth) + "," + y + ""); if (this.options.shaded.enabled == true) { - fillPath = DOMutil.getSVGElement('path', JSONcontainer, SVGcontainer); + 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)); + 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, "d", "M" + x + "," + y + " " + "L" + x + "," + (y + fillHeight) + " " + "L" + (x + iconWidth) + "," + (y + fillHeight) + "L" + (x + iconWidth) + "," + y); } - fillPath.setAttributeNS(null, 'class', this.className + ' vis-icon-fill'); + fillPath.setAttributeNS(null, "class", this.className + " vis-icon-fill"); } if (this.options.drawPoints.enabled == true) { @@ -25741,7 +25753,7 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{icon: HTMLElement, label: (group.content|*|string), orientation: (.options.yAxisOrientation|*)}} */ GraphGroup.prototype.getLegend = function (iconWidth, iconHeight) { - var svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg'); + 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 }; }; @@ -25881,9 +25893,9 @@ return /******/ (function(modules) { // webpackBootstrap var path, d; var svgHeight = Number(framework.svg.style.height.replace('px', '')); path = DOMutil.getSVGElement('path', framework.svgElements, framework.svg); - path.setAttributeNS(null, 'class', group.className); + path.setAttributeNS(null, "class", group.className); if (group.style !== undefined) { - path.setAttributeNS(null, 'style', group.style); + path.setAttributeNS(null, "style", group.style); } // construct path from dataset @@ -26462,16 +26474,16 @@ return /******/ (function(modules) { // webpackBootstrap Legend.prototype._create = function () { this.dom.frame = document.createElement('div'); this.dom.frame.className = 'vis-legend'; - this.dom.frame.style.position = 'absolute'; - this.dom.frame.style.top = '10px'; - this.dom.frame.style.display = 'block'; + 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 = 'vis-legend-text'; - this.dom.textArea.style.position = 'relative'; - this.dom.textArea.style.top = '0px'; + 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 = 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'; @@ -26527,16 +26539,16 @@ return /******/ (function(modules) { // webpackBootstrap 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.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.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'; @@ -26544,11 +26556,11 @@ return /******/ (function(modules) { // webpackBootstrap } 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.top = 4 - Number(this.body.dom.center.style.top.replace("px", "")) + 'px'; this.dom.frame.style.bottom = ''; } else { var scrollableHeight = this.body.domProps.center.height - this.body.domProps.centerContainer.height; - this.dom.frame.style.bottom = 4 + scrollableHeight + Number(this.body.dom.center.style.top.replace('px', '')) + 'px'; + this.dom.frame.style.bottom = 4 + scrollableHeight + Number(this.body.dom.center.style.top.replace("px", "")) + 'px'; this.dom.frame.style.top = ''; } @@ -26830,7 +26842,7 @@ return /******/ (function(modules) { // webpackBootstrap }, autoResize: true, - throttleRedraw: 0, + throttleRedraw: [10, 0, 1000, 10], clickToUse: false, end: '', format: { @@ -26950,6 +26962,17 @@ return /******/ (function(modules) { // webpackBootstrap var _modulesKamadaKawaiJs2 = _interopRequireDefault(_modulesKamadaKawaiJs); + /** + * @constructor Network + * Create a network visualization, displaying nodes and edges. + * + * @param {Element} container The DOM element in which the Network will + * be created. Normally a div element. + * @param {Object} data An object containing parameters + * {Array} nodes + * {Array} edges + * @param {Object} options Options + */ __webpack_require__(114); var Emitter = __webpack_require__(12); @@ -26963,17 +26986,6 @@ return /******/ (function(modules) { // webpackBootstrap var Activator = __webpack_require__(40); var locales = __webpack_require__(118); - /** - * @constructor Network - * Create a network visualization, displaying nodes and edges. - * - * @param {Element} container The DOM element in which the Network will - * be created. Normally a div element. - * @param {Object} data An object containing parameters - * {Array} nodes - * {Array} edges - * @param {Object} options Options - */ function Network(container, data, options) { var _this = this; @@ -27038,7 +27050,7 @@ return /******/ (function(modules) { // webpackBootstrap // setting up all modules this.images = new Images(function () { - return _this.body.emitter.emit('_requestRedraw'); + return _this.body.emitter.emit("_requestRedraw"); }); // object with images this.groups = new _modulesGroups2['default'](); // object with groups this.canvas = new _modulesCanvas2['default'](this.body); // DOM handler @@ -27054,8 +27066,8 @@ return /******/ (function(modules) { // webpackBootstrap this.nodesHandler = new _modulesNodesHandler2['default'](this.body, this.images, this.groups, this.layoutEngine); // Handle adding, deleting and updating of nodes as well as global options this.edgesHandler = new _modulesEdgesHandler2['default'](this.body, this.images, this.groups); // Handle adding, deleting and updating of edges as well as global options - this.body.modules['kamadaKawai'] = new _modulesKamadaKawaiJs2['default'](this.body, 150, 0.05); // Layouting algorithm. - this.body.modules['clustering'] = this.clustering; + this.body.modules["kamadaKawai"] = new _modulesKamadaKawaiJs2['default'](this.body, 150, 0.05); // Layouting algorithm. + this.body.modules["clustering"] = this.clustering; // create the DOM elements this.canvas._create(); @@ -27106,7 +27118,7 @@ return /******/ (function(modules) { // webpackBootstrap // reload the settings of the nodes to apply changes in groups that are not referenced by pointer. if (options.groups !== undefined) { - this.body.emitter.emit('refreshNodes'); + this.body.emitter.emit("refreshNodes"); } // these two do not have options at the moment, here for completeness //this.view.setOptions(options.view); @@ -27147,7 +27159,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this.activator === undefined) { this.activator = new Activator(this.canvas.frame); this.activator.on('change', function () { - _this2.body.emitter.emit('activate'); + _this2.body.emitter.emit("activate"); }); } } else { @@ -27155,15 +27167,15 @@ return /******/ (function(modules) { // webpackBootstrap this.activator.destroy(); delete this.activator; } - this.body.emitter.emit('activate'); + this.body.emitter.emit("activate"); } } else { - this.body.emitter.emit('activate'); + this.body.emitter.emit("activate"); } this.canvas.setSize(); // start the physics simulation. Can be safely called multiple times. - this.body.emitter.emit('startSimulation'); + this.body.emitter.emit("startSimulation"); } }; @@ -27201,23 +27213,23 @@ return /******/ (function(modules) { // webpackBootstrap var _this3 = this; // this event will trigger a rebuilding of the cache everything. Used when nodes or edges have been added or removed. - this.body.emitter.on('_dataChanged', function () { + this.body.emitter.on("_dataChanged", function () { // update shortcut lists _this3._updateVisibleIndices(); _this3.physics.updatePhysicsData(); - _this3.body.emitter.emit('_requestRedraw'); + _this3.body.emitter.emit("_requestRedraw"); // call the dataUpdated event because the only difference between the two is the updating of the indices - _this3.body.emitter.emit('_dataUpdated'); + _this3.body.emitter.emit("_dataUpdated"); }); // this is called when options of EXISTING nodes or edges have changed. - this.body.emitter.on('_dataUpdated', function () { + this.body.emitter.on("_dataUpdated", function () { // update values _this3._updateValueRange(_this3.body.nodes); _this3._updateValueRange(_this3.body.edges); // start simulation (can be called safely, even if already running) - _this3.body.emitter.emit('startSimulation'); - _this3.body.emitter.emit('_requestRedraw'); + _this3.body.emitter.emit("startSimulation"); + _this3.body.emitter.emit("_requestRedraw"); }); }; @@ -27233,8 +27245,8 @@ return /******/ (function(modules) { // webpackBootstrap */ Network.prototype.setData = function (data) { // reset the physics engine. - this.body.emitter.emit('resetPhysics'); - this.body.emitter.emit('_resetData'); + this.body.emitter.emit("resetPhysics"); + this.body.emitter.emit("_resetData"); // unselect all to ensure no selections from old data are carried over. this.selectionHandler.unselectAll(); @@ -27264,13 +27276,13 @@ return /******/ (function(modules) { // webpackBootstrap } // emit change in data - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); // emit data loaded - this.body.emitter.emit('_dataLoaded'); + this.body.emitter.emit("_dataLoaded"); // find a stable position or start animating to a stable position - this.body.emitter.emit('initPhysics'); + this.body.emitter.emit("initPhysics"); }; /** @@ -27280,7 +27292,7 @@ return /******/ (function(modules) { // webpackBootstrap * network = null; */ Network.prototype.destroy = function () { - this.body.emitter.emit('destroy'); + this.body.emitter.emit("destroy"); // clear events this.body.emitter.off(); this.off(); @@ -27405,7 +27417,7 @@ return /******/ (function(modules) { // webpackBootstrap return this.manipulation.editNode.apply(this.manipulation, arguments); }; Network.prototype.editNodeMode = function () { - console.log('Deprecated: Please use editNode instead of editNodeMode.');return this.manipulation.editNode.apply(this.manipulation, arguments); + console.log("Deprecated: Please use editNode instead of editNodeMode.");return this.manipulation.editNode.apply(this.manipulation, arguments); }; Network.prototype.addEdgeMode = function () { return this.manipulation.addEdgeMode.apply(this.manipulation, arguments); @@ -27576,7 +27588,7 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(Groups, [{ key: "setOptions", value: function setOptions(options) { - var optionFields = ["useDefaultGroups"]; + var optionFields = ['useDefaultGroups']; if (options !== undefined) { for (var groupName in options) { @@ -27589,18 +27601,16 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "clear", /** * Clear all groups */ + }, { + key: "clear", value: function clear() { this.groups = {}; this.groupsArray = []; } - }, { - key: "get", /** * get group options of a groupname. If groupname is not found, a new group @@ -27608,6 +27618,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {*} groupname Can be a number, string, Date, etc. * @return {Object} group The created group, containing all group options */ + }, { + key: "get", value: function get(groupname) { var group = this.groups[groupname]; if (group === undefined) { @@ -27630,8 +27642,6 @@ return /******/ (function(modules) { // webpackBootstrap return group; } - }, { - key: "add", /** * Add a custom group style @@ -27640,6 +27650,8 @@ return /******/ (function(modules) { // webpackBootstrap * backgroundColor, etc. * @return {Object} group The created group object */ + }, { + key: "add", value: function add(groupName, style) { this.groups[groupName] = style; this.groupsArray.push(groupName); @@ -27850,14 +27862,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'setData', /** * Set a data set with nodes for the network * @param {Array | DataSet | DataView} nodes The data containing the nodes. * @private */ + }, { + key: 'setData', value: function setData(nodes) { var _this3 = this; @@ -27901,17 +27913,17 @@ return /******/ (function(modules) { // webpackBootstrap } if (doNotEmit === false) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } } - }, { - key: 'add', /** * Add nodes * @param {Number[] | String[]} ids * @private */ + }, { + key: 'add', value: function add(ids) { var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; @@ -27928,17 +27940,17 @@ return /******/ (function(modules) { // webpackBootstrap this.layoutEngine.positionInitially(newNodes); if (doNotEmit === false) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } } - }, { - key: 'update', /** * Update existing nodes, or create them when not yet existing * @param {Number[] | String[]} ids * @private */ + }, { + key: 'update', value: function update(ids, changedData) { var nodes = this.body.nodes; var dataChanged = false; @@ -27957,19 +27969,19 @@ return /******/ (function(modules) { // webpackBootstrap } } if (dataChanged === true) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } else { - this.body.emitter.emit('_dataUpdated'); + this.body.emitter.emit("_dataUpdated"); } } - }, { - key: 'remove', /** * Remove existing nodes. If nodes do not exist, the method will just ignore it. * @param {Number[] | String[]} ids * @private */ + }, { + key: 'remove', value: function remove(ids) { var nodes = this.body.nodes; @@ -27978,16 +27990,16 @@ return /******/ (function(modules) { // webpackBootstrap delete nodes[id]; } - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } - }, { - key: 'create', /** * create a node * @param properties * @param constructorClass */ + }, { + key: 'create', value: function create(properties) { var constructorClass = arguments.length <= 1 || arguments[1] === undefined ? _componentsNode2['default'] : arguments[1]; @@ -28014,14 +28026,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'getPositions', /** * Returns the positions of the nodes. * @param ids --> optional, can be array of nodeIds, can be string * @returns {{}} */ + }, { + key: 'getPositions', value: function getPositions(ids) { var dataArray = {}; if (ids !== undefined) { @@ -28046,12 +28058,12 @@ return /******/ (function(modules) { // webpackBootstrap } return dataArray; } - }, { - key: 'storePositions', /** * Load the XY positions of the nodes into the dataset. */ + }, { + key: 'storePositions', value: function storePositions() { // todo: add support for clusters and hierarchical. var dataArray = []; @@ -28067,27 +28079,27 @@ return /******/ (function(modules) { // webpackBootstrap } dataset.update(dataArray); } - }, { - key: 'getBoundingBox', /** * get the bounding box of a node. * @param nodeId * @returns {j|*} */ + }, { + key: 'getBoundingBox', value: function getBoundingBox(nodeId) { if (this.body.nodes[nodeId] !== undefined) { return this.body.nodes[nodeId].shape.boundingBox; } } - }, { - key: 'getConnectedNodes', /** * Get the Ids of nodes connected to this node. * @param nodeId * @returns {Array} */ + }, { + key: 'getConnectedNodes', value: function getConnectedNodes(nodeId) { var nodeList = []; if (this.body.nodes[nodeId] !== undefined) { @@ -28112,14 +28124,14 @@ return /******/ (function(modules) { // webpackBootstrap } return nodeList; } - }, { - key: 'getConnectedEdges', /** * Get the ids of the edges connected to this node. * @param nodeId * @returns {*} */ + }, { + key: 'getConnectedEdges', value: function getConnectedEdges(nodeId) { var edgeList = []; if (this.body.nodes[nodeId] !== undefined) { @@ -28128,12 +28140,10 @@ return /******/ (function(modules) { // webpackBootstrap edgeList.push(node.edges[i].id); } } else { - console.log('NodeId provided for getConnectedEdges does not exist. Provided: ', nodeId); + console.log("NodeId provided for getConnectedEdges does not exist. Provided: ", nodeId); } return edgeList; } - }, { - key: 'moveNode', /** * Move a node. @@ -28141,6 +28151,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param Number x * @param Number y */ + }, { + key: 'moveNode', value: function moveNode(nodeId, x, y) { var _this4 = this; @@ -28148,10 +28160,10 @@ return /******/ (function(modules) { // webpackBootstrap this.body.nodes[nodeId].x = Number(x); this.body.nodes[nodeId].y = Number(y); setTimeout(function () { - _this4.body.emitter.emit('startSimulation'); + _this4.body.emitter.emit("startSimulation"); }, 0); } else { - console.log('Node id supplied to moveNode does not exist. Provided: ', nodeId); + console.log("Node id supplied to moveNode does not exist. Provided: ", nodeId); } } }]); @@ -28275,6 +28287,7 @@ return /******/ (function(modules) { // webpackBootstrap _classCallCheck(this, Node); this.options = util.bridgeObject(globalOptions); + this.globalOptions = globalOptions; this.body = body; this.edges = []; // all edges connected to this node @@ -28297,39 +28310,39 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(options); } + /** + * Attach a edge to the node + * @param {Edge} edge + */ + _createClass(Node, [{ key: 'attachEdge', - - /** - * Attach a edge to the node - * @param {Edge} edge - */ value: function attachEdge(edge) { if (this.edges.indexOf(edge) === -1) { this.edges.push(edge); } } - }, { - key: 'detachEdge', /** * Detach a edge from the node * @param {Edge} edge */ + }, { + key: 'detachEdge', value: function detachEdge(edge) { var index = this.edges.indexOf(edge); if (index != -1) { this.edges.splice(index, 1); } } - }, { - key: 'setOptions', /** * Set or overwrite options for the node * @param {Object} options an object with options * @param {Object} constants and object with default, global options */ + }, { + key: 'setOptions', value: function setOptions(options) { var currentShape = this.options.shape; if (!options) { @@ -28341,7 +28354,7 @@ return /******/ (function(modules) { // webpackBootstrap } if (this.id === undefined) { - throw 'Node must have an id'; + throw "Node must have an id"; } // set these options locally @@ -28376,14 +28389,14 @@ return /******/ (function(modules) { // webpackBootstrap } // this transforms all shorthands into fully defined options - Node.parseOptions(this.options, options, true); + Node.parseOptions(this.options, options, true, this.globalOptions); // load the images if (this.options.image !== undefined) { if (this.imagelist) { this.imageObj = this.imagelist.load(this.options.image, this.options.brokenImage, this.id); } else { - throw 'No imagelist provided'; + throw "No imagelist provided"; } } @@ -28395,6 +28408,13 @@ return /******/ (function(modules) { // webpackBootstrap } return false; } + + /** + * This process all possible shorthands in the new options and makes sure that the parentOptions are fully defined. + * Static so it can also be used by the handler. + * @param parentOptions + * @param newOptions + */ }, { key: 'updateLabelModule', value: function updateLabelModule() { @@ -28463,50 +28483,48 @@ return /******/ (function(modules) { // webpackBootstrap } this._reset(); } - }, { - key: 'select', /** * select this node */ + }, { + key: 'select', value: function select() { this.selected = true; this._reset(); } - }, { - key: 'unselect', /** * unselect this node */ + }, { + key: 'unselect', value: function unselect() { this.selected = false; this._reset(); } - }, { - key: '_reset', /** * Reset the calculated size of the node, forces it to recalculate its size * @private */ + }, { + key: '_reset', value: function _reset() { this.shape.width = undefined; this.shape.height = undefined; } - }, { - key: 'getTitle', /** * get the title of this node. * @return {string} title The title of the node, or undefined when no title * has been set. */ + }, { + key: 'getTitle', value: function getTitle() { return this.options.title; } - }, { - key: 'distanceToBorder', /** * Calculate the distance to the border of the Node @@ -28514,41 +28532,41 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} angle Angle in radians * @returns {number} distance Distance to the border in pixels */ + }, { + key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { return this.shape.distanceToBorder(ctx, angle); } - }, { - key: 'isFixed', /** * Check if this node has a fixed x and y position * @return {boolean} true if fixed, false if not */ + }, { + key: 'isFixed', value: function isFixed() { return this.options.fixed.x && this.options.fixed.y; } - }, { - key: 'isSelected', /** * check if this node is selecte * @return {boolean} selected True if node is selected, else false */ + }, { + key: 'isSelected', value: function isSelected() { return this.selected; } - }, { - key: 'getValue', /** * Retrieve the value of the node. Can be undefined * @return {Number} value */ + }, { + key: 'getValue', value: function getValue() { return this.options.value; } - }, { - key: 'setValueRange', /** * Adjust the value range of the node. The node will adjust it's size @@ -28556,6 +28574,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} min * @param {Number} max */ + }, { + key: 'setValueRange', value: function setValueRange(min, max, total) { if (this.options.value !== undefined) { var scale = this.options.scaling.customScalingFunction(min, max, total, this.options.value); @@ -28570,84 +28590,77 @@ return /******/ (function(modules) { // webpackBootstrap this.options.font.size = this.baseFontSize; } } - }, { - key: 'draw', /** * Draw this node in the given canvas * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); * @param {CanvasRenderingContext2D} ctx */ + }, { + key: 'draw', value: function draw(ctx) { this.shape.draw(ctx, this.x, this.y, this.selected, this.hover); } - }, { - key: 'updateBoundingBox', /** * Update the bounding box of the shape */ + }, { + key: 'updateBoundingBox', value: function updateBoundingBox(ctx) { this.shape.updateBoundingBox(this.x, this.y, ctx); } - }, { - key: 'resize', /** * Recalculate the size of this node in the given canvas * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); * @param {CanvasRenderingContext2D} ctx */ + }, { + key: 'resize', value: function resize(ctx) { this.shape.resize(ctx, this.selected); } - }, { - key: 'isOverlappingWith', /** * Check if this object is overlapping with the provided object * @param {Object} obj an object with parameters left, top, right, bottom * @return {boolean} True if location is located on node */ + }, { + key: 'isOverlappingWith', value: function isOverlappingWith(obj) { return this.shape.left < obj.right && this.shape.left + this.shape.width > obj.left && this.shape.top < obj.bottom && this.shape.top + this.shape.height > obj.top; } - }, { - key: 'isBoundingBoxOverlappingWith', /** * Check if this object is overlapping with the provided object * @param {Object} obj an object with parameters left, top, right, bottom * @return {boolean} True if location is located on node */ + }, { + key: 'isBoundingBoxOverlappingWith', value: function isBoundingBoxOverlappingWith(obj) { return this.shape.boundingBox.left < obj.right && this.shape.boundingBox.right > obj.left && this.shape.boundingBox.top < obj.bottom && this.shape.boundingBox.bottom > obj.top; } }], [{ key: 'parseOptions', - - /** - * This process all possible shorthands in the new options and makes sure that the parentOptions are fully defined. - * Static so it can also be used by the handler. - * @param parentOptions - * @param newOptions - */ value: function parseOptions(parentOptions, newOptions) { var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var globalOptions = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; var fields = ['color', 'font', 'fixed', 'shadow']; util.selectiveNotDeepExtend(fields, parentOptions, newOptions, allowDeletion); // merge the shadow options into the parent. - util.mergeOptions(parentOptions, newOptions, 'shadow'); + util.mergeOptions(parentOptions, newOptions, 'shadow', allowDeletion, globalOptions); // individual shape newOptions if (newOptions.color !== undefined && newOptions.color !== null) { var parsedColor = util.parseColor(newOptions.color); util.fillIfDefined(parentOptions.color, parsedColor); } else if (allowDeletion === true && newOptions.color === null) { - parentOptions.color = undefined; - delete parentOptions.color; + parentOptions.color = Object.create(globalOptions.color); // this sets the pointer of the option back to the global option. } // handle the fixed options @@ -28666,13 +28679,15 @@ return /******/ (function(modules) { // webpackBootstrap } // handle the font options - if (newOptions.font !== undefined) { + if (newOptions.font !== undefined && newOptions.font !== null) { _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions); + } else if (allowDeletion === true && newOptions.font === null) { + parentOptions.font = Object.create(globalOptions.font); // this sets the pointer of the option back to the global option. } // handle the scaling options, specifically the label part if (newOptions.scaling !== undefined) { - util.mergeOptions(parentOptions.scaling, newOptions.scaling, 'label'); + util.mergeOptions(parentOptions.scaling, newOptions.scaling, 'label', allowDeletion, globalOptions.scaling); } } }]); @@ -28769,16 +28784,16 @@ return /******/ (function(modules) { // webpackBootstrap // draw text this._drawText(ctx, selected, x, y, baseline); } - }, { - key: '_drawBackground', /** * Draws the label background * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: '_drawBackground', value: function _drawBackground(ctx) { - if (this.fontOptions.background !== undefined && this.fontOptions.background !== 'none') { + if (this.fontOptions.background !== undefined && this.fontOptions.background !== "none") { ctx.fillStyle = this.fontOptions.background; var lineMargin = 2; @@ -28799,8 +28814,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_drawText', /** * @@ -28809,6 +28822,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param baseline * @private */ + }, { + key: '_drawText', value: function _drawText(ctx, selected, x, y) { var baseline = arguments.length <= 4 || arguments[4] === undefined ? 'middle' : arguments[4]; @@ -28828,15 +28843,15 @@ return /******/ (function(modules) { // webpackBootstrap var fontColor = _getColor22[0]; var strokeColor = _getColor22[1]; + // configure context for drawing the text + var _setAlignment2 = this._setAlignment(ctx, x, yLine, baseline); var _setAlignment22 = _slicedToArray(_setAlignment2, 2); x = _setAlignment22[0]; yLine = _setAlignment22[1]; - - // configure context for drawing the text - ctx.font = (selected && this.nodeOptions.labelHighlightBold ? 'bold ' : '') + fontSize + 'px ' + this.fontOptions.face; + ctx.font = (selected && this.nodeOptions.labelHighlightBold ? 'bold ' : '') + fontSize + "px " + this.fontOptions.face; ctx.fillStyle = fontColor; ctx.textAlign = 'center'; @@ -28870,19 +28885,17 @@ return /******/ (function(modules) { // webpackBootstrap ctx.textBaseline = 'alphabetic'; yLine -= 2 * lineMargin; // distance from edge, required because we use alphabetic. Alphabetic has less difference between browsers } else if (this.fontOptions.align === 'bottom') { - ctx.textBaseline = 'hanging'; - yLine += 2 * lineMargin; // distance from edge, required because we use hanging. Hanging has less difference between browsers - } else { - ctx.textBaseline = 'middle'; - } + ctx.textBaseline = 'hanging'; + yLine += 2 * lineMargin; // distance from edge, required because we use hanging. Hanging has less difference between browsers + } else { + ctx.textBaseline = 'middle'; + } } else { ctx.textBaseline = baseline; } return [x, yLine]; } - }, { - key: '_getColor', /** * fade in when relative scale is between threshold and threshold - 1. @@ -28892,6 +28905,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*[]} * @private */ + }, { + key: '_getColor', value: function _getColor(viewFontSize) { var fontColor = this.fontOptions.color || '#000000'; var strokeColor = this.fontOptions.strokeColor || '#ffffff'; @@ -28902,8 +28917,6 @@ return /******/ (function(modules) { // webpackBootstrap } return [fontColor, strokeColor]; } - }, { - key: 'getTextSize', /** * @@ -28911,6 +28924,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param selected * @returns {{width: number, height: number}} */ + }, { + key: 'getTextSize', value: function getTextSize(ctx) { var selected = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; @@ -28921,8 +28936,6 @@ return /******/ (function(modules) { // webpackBootstrap }; return size; } - }, { - key: 'calculateLabelSize', /** * @@ -28932,6 +28945,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param y * @param baseline */ + }, { + key: 'calculateLabelSize', value: function calculateLabelSize(ctx, selected) { var x = arguments.length <= 2 || arguments[2] === undefined ? 0 : arguments[2]; var y = arguments.length <= 3 || arguments[3] === undefined ? 0 : arguments[3]; @@ -28944,7 +28959,7 @@ return /******/ (function(modules) { // webpackBootstrap this.size.left = x - this.size.width * 0.5; this.size.top = y - this.size.height * 0.5; this.size.yLine = y + (1 - this.lineCount) * 0.5 * this.fontOptions.size; - if (baseline === 'hanging') { + if (baseline === "hanging") { this.size.top += 0.5 * this.fontOptions.size; this.size.top += 4; // distance from node, required because we use hanging. Hanging has less difference between browsers this.size.yLine += 4; // distance from node @@ -28952,8 +28967,6 @@ return /******/ (function(modules) { // webpackBootstrap this.labelDirty = false; } - }, { - key: '_processLabel', /** * This calculates the width as well as explodes the label string and calculates the amount of lines. @@ -28962,6 +28975,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_processLabel', value: function _processLabel(ctx, selected) { var width = 0; var lines = ['']; @@ -28969,7 +28984,7 @@ return /******/ (function(modules) { // webpackBootstrap if (this.nodeOptions.label !== undefined) { lines = String(this.nodeOptions.label).split('\n'); lineCount = lines.length; - ctx.font = (selected && this.nodeOptions.labelHighlightBold ? 'bold ' : '') + this.fontOptions.size + 'px ' + this.fontOptions.face; + ctx.font = (selected && this.nodeOptions.labelHighlightBold ? 'bold ' : '') + this.fontOptions.size + "px " + this.fontOptions.face; width = ctx.measureText(lines[0]).width; for (var i = 1; i < lineCount; i++) { var lineWidth = ctx.measureText(lines[i]).width; @@ -28987,8 +29002,8 @@ return /******/ (function(modules) { // webpackBootstrap var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; if (typeof newOptions.font === 'string') { - var newOptionsArray = newOptions.font.split(' '); - parentOptions.size = newOptionsArray[0].replace('px', ''); + var newOptionsArray = newOptions.font.split(" "); + parentOptions.size = newOptionsArray[0].replace("px", ''); parentOptions.face = newOptionsArray[1]; parentOptions.color = newOptionsArray[2]; } else if (typeof newOptions.font === 'object') { @@ -29022,7 +29037,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -29152,8 +29167,9 @@ return /******/ (function(modules) { // webpackBootstrap } }, { key: '_distanceToBorder', - value: function _distanceToBorder(angle) { + value: function _distanceToBorder(ctx, angle) { var borderWidth = 1; + this.resize(ctx); return Math.min(Math.abs(this.width / 2 / Math.cos(angle)), Math.abs(this.height / 2 / Math.sin(angle))) + borderWidth; } }, { @@ -29187,7 +29203,7 @@ return /******/ (function(modules) { // webpackBootstrap } ctx.setLineDash(dashes); } else { - console.warn('setLineDash is not supported in this browser. The dashed borders cannot be used.'); + console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."); this.options.shapeProperties.borderDashes = false; } } @@ -29199,7 +29215,7 @@ return /******/ (function(modules) { // webpackBootstrap if (ctx.setLineDash !== undefined) { ctx.setLineDash([0]); } else { - console.warn('setLineDash is not supported in this browser. The dashed borders cannot be used.'); + console.warn("setLineDash is not supported in this browser. The dashed borders cannot be used."); this.options.shapeProperties.borderDashes = false; } } @@ -29230,7 +29246,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilCircleImageBase = __webpack_require__(67); @@ -29320,7 +29336,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -29345,8 +29361,6 @@ return /******/ (function(modules) { // webpackBootstrap this.imageObj = imageObj; } } - }, { - key: '_resizeImage', /** * This function resizes the image by the options size when the image has not yet loaded. If the image has loaded, we @@ -29354,6 +29368,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_resizeImage', value: function _resizeImage() { var force = false; if (!this.imageObj.width || !this.imageObj.height) { @@ -29491,7 +29507,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilCircleImageBase = __webpack_require__(67); @@ -29569,7 +29585,7 @@ return /******/ (function(modules) { // webpackBootstrap key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { this.resize(ctx); - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -29597,7 +29613,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -29710,7 +29726,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -29738,7 +29754,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -29766,7 +29782,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -29872,7 +29888,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -29900,6 +29916,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { + this.resize(ctx); return this.options.size + this.options.borderWidth; } }]); @@ -29928,7 +29945,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -30044,7 +30061,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -30111,12 +30128,12 @@ return /******/ (function(modules) { // webpackBootstrap var iconSize = Number(this.options.icon.size); if (this.options.icon.code !== undefined) { - ctx.font = (selected ? 'bold ' : '') + iconSize + 'px ' + this.options.icon.face; + ctx.font = (selected ? "bold " : "") + iconSize + "px " + this.options.icon.face; // draw icon - ctx.fillStyle = this.options.icon.color || 'black'; - ctx.textAlign = 'center'; - ctx.textBaseline = 'middle'; + ctx.fillStyle = this.options.icon.color || "black"; + ctx.textAlign = "center"; + ctx.textBaseline = "middle"; // draw shadow if enabled this.enableShadow(ctx); @@ -30131,8 +30148,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30160,7 +30176,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilCircleImageBase = __webpack_require__(67); @@ -30248,7 +30264,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -30276,8 +30292,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - this.resize(); - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30305,7 +30320,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -30333,7 +30348,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30361,7 +30376,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilNodeBase = __webpack_require__(65); @@ -30419,8 +30434,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - this.resize(ctx); - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30448,7 +30462,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -30476,7 +30490,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30504,7 +30518,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilShapeBase = __webpack_require__(71); @@ -30532,7 +30546,7 @@ return /******/ (function(modules) { // webpackBootstrap }, { key: 'distanceToBorder', value: function distanceToBorder(ctx, angle) { - return this._distanceToBorder(angle); + return this._distanceToBorder(ctx, angle); } }]); @@ -30654,7 +30668,7 @@ return /******/ (function(modules) { // webpackBootstrap }, smooth: { enabled: true, - type: 'dynamic', + type: "dynamic", forceDirection: 'none', roundness: 0.5 }, @@ -30674,7 +30688,7 @@ return /******/ (function(modules) { // webpackBootstrap var _this2 = this; // this allows external modules to force all dynamic curves to turn static. - this.body.emitter.on('_forceDisableDynamicCurves', function (type) { + this.body.emitter.on("_forceDisableDynamicCurves", function (type) { if (type === 'dynamic') { type = 'continuous'; } @@ -30702,20 +30716,20 @@ return /******/ (function(modules) { // webpackBootstrap } } if (emitChange === true) { - _this2.body.emitter.emit('_dataChanged'); + _this2.body.emitter.emit("_dataChanged"); } }); // this is called when options of EXISTING nodes or edges have changed. - this.body.emitter.on('_dataUpdated', function () { + this.body.emitter.on("_dataUpdated", function () { _this2.reconnectEdges(); _this2.markAllEdgesAsDirty(); }); // refresh the edges. Used when reverting from hierarchical layout - this.body.emitter.on('refreshEdges', this.refresh.bind(this)); - this.body.emitter.on('refresh', this.refresh.bind(this)); - this.body.emitter.on('destroy', function () { + this.body.emitter.on("refreshEdges", this.refresh.bind(this)); + this.body.emitter.on("refresh", this.refresh.bind(this)); + this.body.emitter.on("destroy", function () { delete _this2.body.functions.createEdge; delete _this2.edgesListeners.add; delete _this2.edgesListeners.update; @@ -30762,8 +30776,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'setData', /** * Load edges by reading the data table @@ -30771,6 +30783,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private * @private */ + }, { + key: 'setData', value: function setData(edges) { var _this3 = this; @@ -30813,17 +30827,17 @@ return /******/ (function(modules) { // webpackBootstrap } if (doNotEmit === false) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } } - }, { - key: 'add', /** * Add edges * @param {Number[] | String[]} ids * @private */ + }, { + key: 'add', value: function add(ids) { var doNotEmit = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; @@ -30838,22 +30852,22 @@ return /******/ (function(modules) { // webpackBootstrap oldEdge.disconnect(); } - var data = edgesData.get(id, { 'showInternalIds': true }); + var data = edgesData.get(id, { "showInternalIds": true }); edges[id] = this.create(data); } if (doNotEmit === false) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } } - }, { - key: 'update', /** * Update existing edges, or create them when not yet existing * @param {Number[] | String[]} ids * @private */ + }, { + key: 'update', value: function update(ids) { var edges = this.body.edges; var edgesData = this.body.data.edges; @@ -30875,19 +30889,19 @@ return /******/ (function(modules) { // webpackBootstrap } if (dataChanged === true) { - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } else { - this.body.emitter.emit('_dataUpdated'); + this.body.emitter.emit("_dataUpdated"); } } - }, { - key: 'remove', /** * Remove existing edges. Non existing ids will be ignored * @param {Number[] | String[]} ids * @private */ + }, { + key: 'remove', value: function remove(ids) { var edges = this.body.edges; for (var i = 0; i < ids.length; i++) { @@ -30900,7 +30914,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } }, { key: 'refresh', @@ -30929,13 +30943,13 @@ return /******/ (function(modules) { // webpackBootstrap this.body.edges[edgeId].edgeType.colorDirty = true; } } - }, { - key: 'reconnectEdges', /** * Reconnect all edges * @private */ + }, { + key: 'reconnectEdges', value: function reconnectEdges() { var id; var nodes = this.body.nodes; @@ -31015,8 +31029,6 @@ return /******/ (function(modules) { // webpackBootstrap var _edgesStraightEdge2 = _interopRequireDefault(_edgesStraightEdge); - var util = __webpack_require__(1); - /** * @class Edge * @@ -31032,15 +31044,17 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} constants An object with default values for * example for the color */ + var util = __webpack_require__(1); var Edge = (function () { function Edge(options, body, globalOptions) { _classCallCheck(this, Edge); if (body === undefined) { - throw 'No body provided'; + throw "No body provided"; } this.options = util.bridgeObject(globalOptions); + this.globalOptions = globalOptions; this.body = body; // initialize variables @@ -31067,21 +31081,21 @@ return /******/ (function(modules) { // webpackBootstrap this.setOptions(options); } + /** + * Set or overwrite options for the edge + * @param {Object} options an object with options + * @param doNotEmit + */ + _createClass(Edge, [{ key: 'setOptions', - - /** - * Set or overwrite options for the edge - * @param {Object} options an object with options - * @param doNotEmit - */ value: function setOptions(options) { if (!options) { return; } this.colorDirty = true; - Edge.parseOptions(this.options, options, true); + Edge.parseOptions(this.options, options, true, this.globalOptions); if (options.id !== undefined) { this.id = options.id; @@ -31118,6 +31132,7 @@ return /******/ (function(modules) { // webpackBootstrap } }, { key: 'updateLabelModule', + // this sets the pointer of the option back to the global option. /** * update the options in the label module @@ -31128,13 +31143,13 @@ return /******/ (function(modules) { // webpackBootstrap this.baseFontSize = this.labelModule.baseSize; } } - }, { - key: 'updateEdgeType', /** * update the edge type, set the options * @returns {boolean} */ + }, { + key: 'updateEdgeType', value: function updateEdgeType() { var dataChanged = false; var changeInType = true; @@ -31178,12 +31193,12 @@ return /******/ (function(modules) { // webpackBootstrap return dataChanged; } - }, { - key: 'connect', /** * Connect an edge to its nodes */ + }, { + key: 'connect', value: function connect() { this.disconnect(); @@ -31205,12 +31220,12 @@ return /******/ (function(modules) { // webpackBootstrap this.edgeType.connect(); } - }, { - key: 'disconnect', /** * Disconnect an edge from its nodes */ + }, { + key: 'disconnect', value: function disconnect() { if (this.from) { this.from.detachEdge(this); @@ -31223,39 +31238,37 @@ return /******/ (function(modules) { // webpackBootstrap this.connected = false; } - }, { - key: 'getTitle', /** * get the title of this edge. * @return {string} title The title of the edge, or undefined when no title * has been set. */ + }, { + key: 'getTitle', value: function getTitle() { return this.title; } - }, { - key: 'isSelected', /** * check if this node is selecte * @return {boolean} selected True if node is selected, else false */ + }, { + key: 'isSelected', value: function isSelected() { return this.selected; } - }, { - key: 'getValue', /** * Retrieve the value of the edge. Can be undefined * @return {Number} value */ + }, { + key: 'getValue', value: function getValue() { return this.options.value; } - }, { - key: 'setValueRange', /** * Adjust the value range of the edge. The edge will adjust it's width @@ -31264,6 +31277,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} max * @param total */ + }, { + key: 'setValueRange', value: function setValueRange(min, max, total) { if (this.options.value !== undefined) { var scale = this.options.scaling.customScalingFunction(min, max, total, this.options.value); @@ -31295,8 +31310,6 @@ return /******/ (function(modules) { // webpackBootstrap this.edgeType.selectionWidth = this.options.selectionWidth + this.options.width; } } - }, { - key: 'draw', /** * Redraw a edge @@ -31304,6 +31317,8 @@ return /******/ (function(modules) { // webpackBootstrap * The 2d context of a HTML canvas can be retrieved by canvas.getContext("2d"); * @param {CanvasRenderingContext2D} ctx */ + }, { + key: 'draw', value: function draw(ctx) { var via = this.edgeType.drawLine(ctx, this.selected, this.hover); this.drawArrows(ctx, via); @@ -31336,7 +31351,7 @@ return /******/ (function(modules) { // webpackBootstrap ctx.save(); // if the label has to be rotated: - if (this.options.font.align !== 'horizontal') { + if (this.options.font.align !== "horizontal") { this.labelModule.calculateLabelSize(ctx, selected, point.x, point.y); ctx.translate(point.x, this.labelModule.size.yLine); this._rotateForLabelAlignment(ctx); @@ -31362,14 +31377,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'isOverlappingWith', /** * Check if this object is overlapping with the provided object * @param {Object} obj an object with parameters left, top * @return {boolean} True if location is located on the edge */ + }, { + key: 'isOverlappingWith', value: function isOverlappingWith(obj) { if (this.connected) { var distMax = 10; @@ -31387,14 +31402,14 @@ return /******/ (function(modules) { // webpackBootstrap return false; } } - }, { - key: '_rotateForLabelAlignment', /** * Rotates the canvas so the text is most readable * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: '_rotateForLabelAlignment', value: function _rotateForLabelAlignment(ctx) { var dy = this.from.y - this.to.y; var dx = this.from.x - this.to.x; @@ -31407,8 +31422,6 @@ return /******/ (function(modules) { // webpackBootstrap ctx.rotate(angleInDegrees); } - }, { - key: '_pointOnCircle', /** * Get a point on a circle @@ -31419,6 +31432,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} point * @private */ + }, { + key: '_pointOnCircle', value: function _pointOnCircle(x, y, radius, percentage) { var angle = percentage * 2 * Math.PI; return { @@ -31436,13 +31451,13 @@ return /******/ (function(modules) { // webpackBootstrap value: function unselect() { this.selected = false; } - }, { - key: 'cleanup', /** * cleans all required things on delete * @returns {*} */ + }, { + key: 'cleanup', value: function cleanup() { return this.edgeType.cleanup(); } @@ -31450,20 +31465,20 @@ return /******/ (function(modules) { // webpackBootstrap key: 'parseOptions', value: function parseOptions(parentOptions, newOptions) { var allowDeletion = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; + var globalOptions = arguments.length <= 3 || arguments[3] === undefined ? {} : arguments[3]; - var fields = ['id', 'from', 'hidden', 'hoverWidth', 'label', 'labelHighlightBold', 'length', 'line', 'opacity', 'physics', 'selectionWidth', 'selfReferenceSize', 'to', 'title', 'value', 'width']; + var fields = ['id', 'from', 'hidden', 'hoverWidth', 'label', 'labelHighlightBold', 'length', 'line', 'opacity', 'physics', 'scaling', 'selectionWidth', 'selfReferenceSize', 'to', 'title', 'value', 'width']; // only deep extend the items in the field array. These do not have shorthand. util.selectiveDeepExtend(fields, parentOptions, newOptions, allowDeletion); - util.mergeOptions(parentOptions, newOptions, 'smooth'); - util.mergeOptions(parentOptions, newOptions, 'shadow'); + util.mergeOptions(parentOptions, newOptions, 'smooth', allowDeletion, globalOptions); + util.mergeOptions(parentOptions, newOptions, 'shadow', allowDeletion, globalOptions); if (newOptions.dashes !== undefined && newOptions.dashes !== null) { parentOptions.dashes = newOptions.dashes; } else if (allowDeletion === true && newOptions.dashes === null) { - parentOptions.dashes = undefined; - delete parentOptions.dashes; + parentOptions.dashes = Object.create(globalOptions.dashes); // this sets the pointer of the option back to the global option. } // set the scaling newOptions @@ -31474,35 +31489,33 @@ return /******/ (function(modules) { // webpackBootstrap if (newOptions.scaling.max !== undefined) { parentOptions.scaling.max = newOptions.scaling.max; } - util.mergeOptions(parentOptions.scaling, newOptions.scaling, 'label'); + util.mergeOptions(parentOptions.scaling, newOptions.scaling, 'label', allowDeletion, globalOptions.scaling); } else if (allowDeletion === true && newOptions.scaling === null) { - parentOptions.scaling = undefined; - delete parentOptions.scaling; + parentOptions.scaling = Object.create(globalOptions.scaling); // this sets the pointer of the option back to the global option. } // hanlde multiple input cases for arrows if (newOptions.arrows !== undefined && newOptions.arrows !== null) { if (typeof newOptions.arrows === 'string') { var arrows = newOptions.arrows.toLowerCase(); - if (arrows.indexOf('to') != -1) { + if (arrows.indexOf("to") != -1) { parentOptions.arrows.to.enabled = true; } - if (arrows.indexOf('middle') != -1) { + if (arrows.indexOf("middle") != -1) { parentOptions.arrows.middle.enabled = true; } - if (arrows.indexOf('from') != -1) { + if (arrows.indexOf("from") != -1) { parentOptions.arrows.from.enabled = true; } } else if (typeof newOptions.arrows === 'object') { - util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'to'); - util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'middle'); - util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'from'); + util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'to', allowDeletion, globalOptions.arrows); + util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'middle', allowDeletion, globalOptions.arrows); + util.mergeOptions(parentOptions.arrows, newOptions.arrows, 'from', allowDeletion, globalOptions.arrows); } else { - throw new Error('The arrow newOptions can only be an object or a string. Refer to the documentation. You used:' + JSON.stringify(newOptions.arrows)); + throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:" + JSON.stringify(newOptions.arrows)); } } else if (allowDeletion === true && newOptions.arrows === null) { - parentOptions.arrows = undefined; - delete parentOptions.arrows; + parentOptions.arrows = Object.create(globalOptions.arrows); // this sets the pointer of the option back to the global option. } // hanlde multiple input cases for color @@ -31535,13 +31548,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } else if (allowDeletion === true && newOptions.color === null) { - parentOptions.color = undefined; - delete parentOptions.color; + parentOptions.color = Object.create(globalOptions.color); // this sets the pointer of the option back to the global option. } // handle the font settings - if (newOptions.font !== undefined) { + if (newOptions.font !== undefined && newOptions.font !== null) { _sharedLabel2['default'].parseOptions(parentOptions.font, newOptions); + } else if (allowDeletion === true && newOptions.font === null) { + parentOptions.font = Object.create(globalOptions.font); } } }]); @@ -31572,7 +31586,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilCubicBezierEdgeBase = __webpack_require__(84); @@ -31587,14 +31601,14 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(CubicBezierEdge.prototype), 'constructor', this).call(this, options, body, labelModule); } + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + _createClass(CubicBezierEdge, [{ key: '_line', - - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private - */ value: function _line(ctx) { // get the coordinates of the support points. @@ -31668,8 +31682,6 @@ return /******/ (function(modules) { // webpackBootstrap // x3,y3 is the point return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via1, via2); } - }, { - key: 'getPoint', /** * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way @@ -31678,6 +31690,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @private */ + }, { + key: 'getPoint', value: function getPoint(percentage) { var _ref3 = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; @@ -31723,7 +31737,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _BezierEdgeBase2 = __webpack_require__(85); @@ -31738,22 +31752,22 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(CubicBezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule); } + /** + * Calculate the distance between a point (x3,y3) and a line segment from + * (x1,y1) to (x2,y2). + * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment + * https://en.wikipedia.org/wiki/B%C3%A9zier_curve + * @param {number} x1 from x + * @param {number} y1 from y + * @param {number} x2 to x + * @param {number} y2 to y + * @param {number} x3 point to check x + * @param {number} y3 point to check y + * @private + */ + _createClass(CubicBezierEdgeBase, [{ key: '_getDistanceToBezierEdge', - - /** - * Calculate the distance between a point (x3,y3) and a line segment from - * (x1,y1) to (x2,y2). - * http://stackoverflow.com/questions/849211/shortest-distancae-between-a-point-and-a-line-segment - * https://en.wikipedia.org/wiki/B%C3%A9zier_curve - * @param {number} x1 from x - * @param {number} y1 from y - * @param {number} x2 to x - * @param {number} y2 to y - * @param {number} x3 point to check x - * @param {number} y3 point to check y - * @private - */ value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via1, via2) { // x3,y3 is the point var minDistance = 1e9; @@ -31809,7 +31823,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _EdgeBase2 = __webpack_require__(86); @@ -31824,22 +31838,22 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(BezierEdgeBase.prototype), 'constructor', this).call(this, options, body, labelModule); } + /** + * This function uses binary search to look for the point where the bezier curve crosses the border of the node. + * + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode + * @param nearNode + * @param ctx + * @param viaNode + */ + _createClass(BezierEdgeBase, [{ key: '_findBorderPositionBezier', - - /** - * This function uses binary search to look for the point where the bezier curve crosses the border of the node. - * - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode - * @param nearNode - * @param ctx - * @param viaNode - */ value: function _findBorderPositionBezier(nearNode, ctx) { var viaNode = arguments.length <= 2 || arguments[2] === undefined ? this._getViaCoordinates() : arguments[2]; @@ -31867,19 +31881,19 @@ return /******/ (function(modules) { // webpackBootstrap if (Math.abs(difference) < threshold) { break; // found } else if (difference < 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (from === false) { - low = middle; - } else { - high = middle; - } - } else { - if (from === false) { - high = middle; + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (from === false) { + low = middle; + } else { + high = middle; + } } else { - low = middle; + if (from === false) { + high = middle; + } else { + low = middle; + } } - } iteration++; } @@ -31887,8 +31901,6 @@ return /******/ (function(modules) { // webpackBootstrap return pos; } - }, { - key: '_getDistanceToBezierEdge', /** * Calculate the distance between a point (x3,y3) and a line segment from @@ -31902,6 +31914,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {number} y3 point to check y * @private */ + }, { + key: '_getDistanceToBezierEdge', value: function _getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via) { // x3,y3 is the point var minDistance = 1e9; @@ -31984,8 +31998,6 @@ return /******/ (function(modules) { // webpackBootstrap this.to = this.body.nodes[this.options.to]; this.id = this.options.id; } - }, { - key: 'drawLine', /** * Redraw a edge as a line @@ -31994,6 +32006,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: 'drawLine', value: function drawLine(ctx, selected, hover) { // set style ctx.strokeStyle = this.getColor(ctx, selected, hover); @@ -32145,8 +32159,6 @@ return /******/ (function(modules) { // webpackBootstrap } return [x, y, radius]; } - }, { - key: '_pointOnCircle', /** * Get a point on a circle @@ -32157,6 +32169,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Object} point * @private */ + }, { + key: '_pointOnCircle', value: function _pointOnCircle(x, y, radius, percentage) { var angle = percentage * 2 * Math.PI; return { @@ -32164,8 +32178,6 @@ return /******/ (function(modules) { // webpackBootstrap y: y - radius * Math.sin(angle) }; } - }, { - key: '_findBorderPositionCircle', /** * This function uses binary search to look for the point where the circle crosses the border of the node. @@ -32175,6 +32187,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_findBorderPositionCircle', value: function _findBorderPositionCircle(node, ctx, options) { var x = options.x; var y = options.y; @@ -32204,27 +32218,25 @@ return /******/ (function(modules) { // webpackBootstrap if (Math.abs(difference) < threshold) { break; // found } else if (difference > 0) { - // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. - if (direction > 0) { - low = middle; - } else { - high = middle; - } - } else { - if (direction > 0) { - high = middle; + // distance to nodes is larger than distance to border --> t needs to be bigger if we're looking at the to node. + if (direction > 0) { + low = middle; + } else { + high = middle; + } } else { - low = middle; + if (direction > 0) { + high = middle; + } else { + low = middle; + } } - } iteration++; } pos.t = middle; return pos; } - }, { - key: 'getLineWidth', /** * Get the line width of the edge. Depends on width and whether one of the @@ -32232,6 +32244,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Number} width * @private */ + }, { + key: 'getLineWidth', value: function getLineWidth(selected, hover) { if (selected === true) { return Math.max(this.selectionWidth, 0.3 / this.body.view.scale); @@ -32272,7 +32286,7 @@ return /******/ (function(modules) { // webpackBootstrap } if (this.colorDirty === true) { - if (colorOptions.inherit === 'to') { + if (colorOptions.inherit === "to") { this.color.highlight = this.to.options.color.highlight.border; this.color.hover = this.to.options.color.hover.border; this.color.color = util.overrideOpacity(this.to.options.color.border, colorOptions.opacity); @@ -32300,8 +32314,6 @@ return /******/ (function(modules) { // webpackBootstrap return this.color.color; } } - }, { - key: '_circle', /** * Draw a line from a node to itself, a circle @@ -32311,6 +32323,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} radius * @private */ + }, { + key: '_circle', value: function _circle(ctx, x, y, radius) { // draw shadow if enabled this.enableShadow(ctx); @@ -32323,8 +32337,6 @@ return /******/ (function(modules) { // webpackBootstrap // disable shadows for other elements. this.disableShadow(ctx); } - }, { - key: 'getDistanceToEdge', /** * Calculate the distance between a point (x3,y3) and a line segment from @@ -32338,6 +32350,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {number} y3 * @private */ + }, { + key: 'getDistanceToEdge', value: function getDistanceToEdge(x1, y1, x2, y2, x3, y3, via) { // x3,y3 is the point var returnValue = 0; @@ -32390,8 +32404,6 @@ return /******/ (function(modules) { // webpackBootstrap return Math.sqrt(dx * dx + dy * dy); } - }, { - key: 'drawArrowHead', /** * @@ -32399,6 +32411,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param position * @param viaNode */ + }, { + key: 'drawArrowHead', value: function drawArrowHead(ctx, position, viaNode, selected, hover) { // set style ctx.strokeStyle = this.getColor(ctx, selected, hover); @@ -32540,7 +32554,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilBezierEdgeBase = __webpack_require__(85); @@ -32592,13 +32606,13 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "cleanup", /** * remove the support nodes * @returns {boolean} */ + }, { + key: "cleanup", value: function cleanup() { this.body.emitter.off("_repositionBezierNodes", this._boundFunction); if (this.via !== undefined) { @@ -32608,8 +32622,6 @@ return /******/ (function(modules) { // webpackBootstrap } return false; } - }, { - key: "setupSupportNode", /** * Bezier curves require an anchor point to calculate the smooth flow. These points are nodes. These nodes are invisible but @@ -32618,12 +32630,14 @@ return /******/ (function(modules) { // webpackBootstrap * The changed data is not called, if needed, it is returned by the main edge constructor. * @private */ + }, { + key: "setupSupportNode", value: function setupSupportNode() { if (this.via === undefined) { var nodeId = "edgeId:" + this.id; var node = this.body.functions.createNode({ id: nodeId, - shape: "circle", + shape: 'circle', physics: true, hidden: true }); @@ -32644,14 +32658,14 @@ return /******/ (function(modules) { // webpackBootstrap this.via.y = 0; } } - }, { - key: "_line", /** * Draw a line between two nodes * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: "_line", value: function _line(ctx) { // draw a straight line ctx.beginPath(); @@ -32663,8 +32677,6 @@ return /******/ (function(modules) { // webpackBootstrap this.disableShadow(ctx); return this.via; } - }, { - key: "getPoint", /** * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way @@ -32673,6 +32685,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @private */ + }, { + key: "getPoint", value: function getPoint(percentage) { var t = percentage; var x = Math.pow(1 - t, 2) * this.from.x + 2 * t * (1 - t) * this.via.x + Math.pow(t, 2) * this.to.x; @@ -32717,7 +32731,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilBezierEdgeBase = __webpack_require__(85); @@ -32732,14 +32746,14 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(BezierEdgeStatic.prototype), 'constructor', this).call(this, options, body, labelModule); } + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + _createClass(BezierEdgeStatic, [{ key: '_line', - - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private - */ value: function _line(ctx) { // draw a straight line ctx.beginPath(); @@ -32788,7 +32802,7 @@ return /******/ (function(modules) { // webpackBootstrap yVia = this.from.y + factor * dy; } } - if (type === 'discrete') { + if (type === "discrete") { xVia = dx < factor * dy ? this.from.x : xVia; } } else if (Math.abs(this.from.x - this.to.x) > Math.abs(this.from.y - this.to.y)) { @@ -32809,11 +32823,11 @@ return /******/ (function(modules) { // webpackBootstrap yVia = this.from.y + factor * dx; } } - if (type === 'discrete') { + if (type === "discrete") { yVia = dy < factor * dx ? this.from.y : yVia; } } - } else if (type === 'straightCross') { + } else if (type === "straightCross") { if (Math.abs(this.from.x - this.to.x) <= Math.abs(this.from.y - this.to.y)) { // up - down xVia = this.from.x; @@ -32931,8 +32945,6 @@ return /******/ (function(modules) { // webpackBootstrap // x3,y3 is the point return this._getDistanceToBezierEdge(x1, y1, x2, y2, x3, y3, via); } - }, { - key: 'getPoint', /** * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way @@ -32941,6 +32953,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @private */ + }, { + key: 'getPoint', value: function getPoint(percentage) { var via = arguments.length <= 1 || arguments[1] === undefined ? this._getViaCoordinates() : arguments[1]; @@ -32976,7 +32990,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _utilEdgeBase = __webpack_require__(86); @@ -32991,14 +33005,14 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(StraightEdge.prototype), 'constructor', this).call(this, options, body, labelModule); } + /** + * Draw a line between two nodes + * @param {CanvasRenderingContext2D} ctx + * @private + */ + _createClass(StraightEdge, [{ key: '_line', - - /** - * Draw a line between two nodes - * @param {CanvasRenderingContext2D} ctx - * @private - */ value: function _line(ctx) { // draw a straight line ctx.beginPath(); @@ -33010,8 +33024,6 @@ return /******/ (function(modules) { // webpackBootstrap this.disableShadow(ctx); return undefined; } - }, { - key: 'getPoint', /** * Combined function of pointOnLine and pointOnBezier. This gives the coordinates of a point on the line at a certain percentage of the way @@ -33020,6 +33032,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @private */ + }, { + key: 'getPoint', value: function getPoint(percentage) { return { x: (1 - percentage) * this.from.x + percentage * this.to.x, @@ -33232,13 +33246,13 @@ return /******/ (function(modules) { // webpackBootstrap _this.body.emitter.off(); }); } - }, { - key: 'setOptions', /** * set the physics options * @param options */ + }, { + key: 'setOptions', value: function setOptions(options) { if (options !== undefined) { if (options === false) { @@ -33265,12 +33279,12 @@ return /******/ (function(modules) { // webpackBootstrap } this.init(); } - }, { - key: 'init', /** * configure the engine. */ + }, { + key: 'init', value: function init() { var options; if (this.options.solver === 'forceAtlas2Based') { @@ -33298,12 +33312,12 @@ return /******/ (function(modules) { // webpackBootstrap this.modelOptions = options; } - }, { - key: 'initPhysics', /** * initialize the engine */ + }, { + key: 'initPhysics', value: function initPhysics() { if (this.physicsEnabled === true && this.options.enabled === true) { if (this.options.stabilization.enabled === true) { @@ -33319,12 +33333,12 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('fit'); } } - }, { - key: 'startSimulation', /** * Start the simulation */ + }, { + key: 'startSimulation', value: function startSimulation() { if (this.physicsEnabled === true && this.options.enabled === true) { this.stabilized = false; @@ -33333,7 +33347,7 @@ return /******/ (function(modules) { // webpackBootstrap this.adaptiveTimestep = false; // this sets the width of all nodes initially which could be required for the avoidOverlap - this.body.emitter.emit('_resizeNodes'); + this.body.emitter.emit("_resizeNodes"); if (this.viewFunction === undefined) { this.viewFunction = this.simulationStep.bind(this); this.body.emitter.on('initRedraw', this.viewFunction); @@ -33343,12 +33357,12 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_redraw'); } } - }, { - key: 'stopSimulation', /** * Stop the simulation, force stabilization. */ + }, { + key: 'stopSimulation', value: function stopSimulation() { var emit = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; @@ -33364,13 +33378,13 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'simulationStep', /** * The viewFunction inserts this step into each renderloop. It calls the physics tick and handles the cleanup at stabilized. * */ + }, { + key: 'simulationStep', value: function simulationStep() { // check if the physics have settled var startTime = Date.now(); @@ -33389,32 +33403,41 @@ return /******/ (function(modules) { // webpackBootstrap this.stopSimulation(); } } - }, { - key: '_emitStabilized', /** * trigger the stabilized event. * @private */ + }, { + key: '_emitStabilized', value: function _emitStabilized() { var _this2 = this; - if (this.stabilizationIterations > 1) { + var amountOfIterations = arguments.length <= 0 || arguments[0] === undefined ? this.stabilizationIterations : arguments[0]; + + if (this.stabilizationIterations > 1 || this.startedStabilization === true) { setTimeout(function () { - _this2.body.emitter.emit('stabilized', { iterations: _this2.stabilizationIterations }); + _this2.body.emitter.emit('stabilized', { iterations: amountOfIterations }); + _this2.startedStabilization = false; _this2.stabilizationIterations = 0; }, 0); } } - }, { - key: 'physicsTick', /** * A single simulation step (or 'tick') in the physics simulation * * @private */ + }, { + key: 'physicsTick', value: function physicsTick() { + // this is here to ensure that there is no start event when the network is already stable. + if (this.startedStabilization === false) { + this.body.emitter.emit('startStabilizing'); + this.startedStabilization = true; + } + if (this.stabilized === false) { // adaptivity means the timestep adapts to the situation, only applicable for stabilization if (this.adaptiveTimestep === true && this.adaptiveTimestepEnabled === true) { @@ -33473,25 +33496,19 @@ return /******/ (function(modules) { // webpackBootstrap // determine if the network has stabilzied if (this.stabilized === true) { this.revert(); - } else { - // this is here to ensure that there is no start event when the network is already stable. - if (this.startedStabilization === false) { - this.body.emitter.emit('startStabilizing'); - this.startedStabilization = true; - } } this.stabilizationIterations++; } } - }, { - key: 'updatePhysicsData', /** * Nodes and edges can have the physics toggles on or off. A collection of indices is created here so we can skip the check all the time. * * @private */ + }, { + key: 'updatePhysicsData', value: function updatePhysicsData() { this.physicsBody.forces = {}; this.physicsBody.physicsNodeIndices = []; @@ -33535,12 +33552,12 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'revert', /** * Revert the simulation one step. This is done so after stabilization, every new start of the simulation will also say stabilized. */ + }, { + key: 'revert', value: function revert() { var nodeIds = Object.keys(this.previousStates); var nodes = this.body.nodes; @@ -33564,12 +33581,12 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_evaluateStepQuality', /** * This compares the reference state to the current state */ + }, { + key: '_evaluateStepQuality', value: function _evaluateStepQuality() { var dx = undefined, dy = undefined, @@ -33592,13 +33609,13 @@ return /******/ (function(modules) { // webpackBootstrap } return true; } - }, { - key: 'moveNodes', /** * move the nodes one timestap and check if they are stabilized * @returns {boolean} */ + }, { + key: 'moveNodes', value: function moveNodes() { var nodeIndices = this.physicsBody.physicsNodeIndices; var maxVelocity = this.options.maxVelocity ? this.options.maxVelocity : 1e9; @@ -33620,8 +33637,6 @@ return /******/ (function(modules) { // webpackBootstrap this.adaptiveTimestepEnabled = averageNodeVelocity / nodeIndices.length < velocityAdaptiveThreshold; this.stabilized = maxNodeVelocity < this.options.minVelocity; } - }, { - key: '_performStep', /** * Perform the actual step @@ -33631,6 +33646,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_performStep', value: function _performStep(nodeId, maxVelocity) { var node = this.body.nodes[nodeId]; var timestep = this.timestep; @@ -33647,9 +33664,9 @@ return /******/ (function(modules) { // webpackBootstrap velocities[nodeId].x = Math.abs(velocities[nodeId].x) > maxVelocity ? velocities[nodeId].x > 0 ? maxVelocity : -maxVelocity : velocities[nodeId].x; node.x += velocities[nodeId].x * timestep; // position } else { - forces[nodeId].x = 0; - velocities[nodeId].x = 0; - } + forces[nodeId].x = 0; + velocities[nodeId].x = 0; + } if (node.options.fixed.y === false) { var dy = this.modelOptions.damping * velocities[nodeId].y; // damping force @@ -33658,26 +33675,24 @@ return /******/ (function(modules) { // webpackBootstrap velocities[nodeId].y = Math.abs(velocities[nodeId].y) > maxVelocity ? velocities[nodeId].y > 0 ? maxVelocity : -maxVelocity : velocities[nodeId].y; node.y += velocities[nodeId].y * timestep; // position } else { - forces[nodeId].y = 0; - velocities[nodeId].y = 0; - } + forces[nodeId].y = 0; + velocities[nodeId].y = 0; + } var totalVelocity = Math.sqrt(Math.pow(velocities[nodeId].x, 2) + Math.pow(velocities[nodeId].y, 2)); return totalVelocity; } - }, { - key: 'calculateForces', /** * calculate the forces for one physics iteration. */ + }, { + key: 'calculateForces', value: function calculateForces() { this.gravitySolver.solve(); this.nodesSolver.solve(); this.edgesSolver.solve(); } - }, { - key: '_freezeNodes', /** * When initializing and stabilizing, we can freeze nodes with a predefined position. This greatly speeds up stabilization @@ -33685,6 +33700,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_freezeNodes', value: function _freezeNodes() { var nodes = this.body.nodes; for (var id in nodes) { @@ -33697,14 +33714,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_restoreFrozenNodes', /** * Unfreezes the nodes that have been frozen by _freezeDefinedNodes. * * @private */ + }, { + key: '_restoreFrozenNodes', value: function _restoreFrozenNodes() { var nodes = this.body.nodes; for (var id in nodes) { @@ -33717,13 +33734,13 @@ return /******/ (function(modules) { // webpackBootstrap } this.freezeCache = {}; } - }, { - key: 'stabilize', /** * Find a stable position for all nodes * @private */ + }, { + key: 'stabilize', value: function stabilize() { var _this3 = this; @@ -33743,7 +33760,7 @@ return /******/ (function(modules) { // webpackBootstrap this.adaptiveTimestep = true && this.options.adaptiveTimestep; // this sets the width of all nodes initially which could be required for the avoidOverlap - this.body.emitter.emit('_resizeNodes'); + this.body.emitter.emit("_resizeNodes"); // stop the render loop this.stopSimulation(); @@ -33765,14 +33782,20 @@ return /******/ (function(modules) { // webpackBootstrap return _this3._stabilizationBatch(); }, 0); } - }, { - key: '_stabilizationBatch', /** * One batch of stabilization * @private */ + }, { + key: '_stabilizationBatch', value: function _stabilizationBatch() { + // this is here to ensure that there is at least one start event. + if (this.startedStabilization === false) { + this.body.emitter.emit('startStabilizing'); + this.startedStabilization = true; + } + var count = 0; while (this.stabilized === false && count < this.options.stabilization.updateInterval && this.stabilizationIterations < this.targetIterations) { this.physicsTick(); @@ -33786,13 +33809,13 @@ return /******/ (function(modules) { // webpackBootstrap this._finalizeStabilization(); } } - }, { - key: '_finalizeStabilization', /** * Wrap up the stabilization, fit and emit the events. * @private */ + }, { + key: '_finalizeStabilization', value: function _finalizeStabilization() { this.body.emitter.emit('_allowRedraw'); if (this.options.stabilization.fit === true) { @@ -33860,8 +33883,6 @@ return /******/ (function(modules) { // webpackBootstrap var x = Math.sin(this.randomSeed++) * 10000; return x - Math.floor(x); } - }, { - key: "solve", /** * This function calculates the forces the nodes apply on eachother based on a gravitational model. @@ -33869,6 +33890,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { if (this.options.gravitationalConstant !== 0 && this.physicsBody.physicsNodeIndices.length > 0) { var node = undefined; @@ -33895,8 +33918,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_getForceContribution", /** * This function traverses the barnesHutTree. It checks when it can approximate distant nodes with their center of mass. @@ -33906,6 +33927,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param node * @private */ + }, { + key: "_getForceContribution", value: function _getForceContribution(parentBranch, node) { // we get no force contribution from an empty region if (parentBranch.childrenCount > 0) { @@ -33940,8 +33963,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_calculateForces", /** * Calculate the forces based on the distance. @@ -33953,6 +33974,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentBranch * @private */ + }, { + key: "_calculateForces", value: function _calculateForces(distance, dx, dy, node, parentBranch) { if (distance === 0) { distance = 0.1; @@ -33972,8 +33995,6 @@ return /******/ (function(modules) { // webpackBootstrap this.physicsBody.forces[node.id].x += fx; this.physicsBody.forces[node.id].y += fy; } - }, { - key: "_formBarnesHutTree", /** * This function constructs the barnesHut tree recursively. It creates the root, splits it and starts placing the nodes. @@ -33982,6 +34003,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param nodeIndices * @private */ + }, { + key: "_formBarnesHutTree", value: function _formBarnesHutTree(nodes, nodeIndices) { var node = undefined; var nodeCount = nodeIndices.length; @@ -34017,9 +34040,9 @@ return /******/ (function(modules) { // webpackBootstrap maxY += 0.5 * sizeDiff; } // xSize > ySize else { - minX += 0.5 * sizeDiff; - maxX -= 0.5 * sizeDiff; - } // xSize < ySize + minX += 0.5 * sizeDiff; + maxX -= 0.5 * sizeDiff; + } // xSize < ySize var minimumTreeSize = 1e-5; var rootSize = Math.max(minimumTreeSize, Math.abs(maxX - minX)); @@ -34057,8 +34080,6 @@ return /******/ (function(modules) { // webpackBootstrap // make global return barnesHutTree; } - }, { - key: "_updateBranchMass", /** * this updates the mass of a branch. this is increased by adding a node. @@ -34067,6 +34088,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param node * @private */ + }, { + key: "_updateBranchMass", value: function _updateBranchMass(parentBranch, node) { var totalMass = parentBranch.mass + node.options.mass; var totalMassInv = 1 / totalMass; @@ -34081,8 +34104,6 @@ return /******/ (function(modules) { // webpackBootstrap var biggestSize = Math.max(Math.max(node.height, node.radius), node.width); parentBranch.maxWidth = parentBranch.maxWidth < biggestSize ? biggestSize : parentBranch.maxWidth; } - }, { - key: "_placeInTree", /** * determine in which branch the node will be placed. @@ -34092,6 +34113,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param skipMassUpdate * @private */ + }, { + key: "_placeInTree", value: function _placeInTree(parentBranch, node, skipMassUpdate) { if (skipMassUpdate != true || skipMassUpdate === undefined) { // update the mass of the branch. @@ -34118,8 +34141,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_placeInRegion", /** * actually place the node in a region (or branch) @@ -34129,6 +34150,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param region * @private */ + }, { + key: "_placeInRegion", value: function _placeInRegion(parentBranch, node, region) { switch (parentBranch.children[region].childrenCount) { case 0: @@ -34155,8 +34178,6 @@ return /******/ (function(modules) { // webpackBootstrap break; } } - }, { - key: "_splitBranch", /** * this function splits a branch into 4 sub branches. If the branch contained a node, we place it in the subbranch @@ -34165,6 +34186,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentBranch * @private */ + }, { + key: "_splitBranch", value: function _splitBranch(parentBranch) { // if the branch is shaded with a node, replace the node in the new subset. var containedNode = null; @@ -34185,8 +34208,6 @@ return /******/ (function(modules) { // webpackBootstrap this._placeInTree(parentBranch, containedNode); } } - }, { - key: "_insertRegion", /** * This function subdivides the region into four new segments. @@ -34198,6 +34219,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentRange * @private */ + }, { + key: "_insertRegion", value: function _insertRegion(parentBranch, region) { var minX = undefined, maxX = undefined, @@ -34243,8 +34266,6 @@ return /******/ (function(modules) { // webpackBootstrap childrenCount: 0 }; } - }, { - key: "_debug", //--------------------------- DEBUGGING BELOW ---------------------------// @@ -34255,6 +34276,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param color * @private */ + }, { + key: "_debug", value: function _debug(ctx, color) { if (this.barnesHutTree !== undefined) { @@ -34263,8 +34286,6 @@ return /******/ (function(modules) { // webpackBootstrap this._drawBranch(this.barnesHutTree.root, ctx, color); } } - }, { - key: "_drawBranch", /** * This function is for debugging purposes. It draws the branches recursively. @@ -34274,6 +34295,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param color * @private */ + }, { + key: "_drawBranch", value: function _drawBranch(branch, ctx, color) { if (color === undefined) { color = "#FF0000"; @@ -34349,8 +34372,6 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { this.options = options; } - }, { - key: "solve", /** * Calculate the forces the nodes apply on each other based on a repulsion field. @@ -34358,6 +34379,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { var dx, dy, distance, fx, fy, repulsingForce, node1, node2; @@ -34444,8 +34467,6 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { this.options = options; } - }, { - key: "solve", /** * Calculate the forces the nodes apply on each other based on a repulsion field. @@ -34453,6 +34474,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { var dx, dy, distance, fx, fy, repulsingForce, node1, node2, i, j; @@ -34535,14 +34558,14 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { this.options = options; } - }, { - key: "solve", /** * This function calculates the springforces on the nodes, accounting for the support nodes. * * @private */ + }, { + key: "solve", value: function solve() { var edgeLength = undefined, edge = undefined; @@ -34576,8 +34599,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_calculateSpringForce", /** * This is the code actually performing the calculation for the function above. @@ -34587,6 +34608,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param edgeLength * @private */ + }, { + key: "_calculateSpringForce", value: function _calculateSpringForce(node1, node2, edgeLength) { var dx = node1.x - node2.x; var dy = node1.y - node2.y; @@ -34645,14 +34668,14 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { this.options = options; } - }, { - key: "solve", /** * This function calculates the springforces on the nodes, accounting for the support nodes. * * @private */ + }, { + key: "solve", value: function solve() { var edgeLength, edge; var dx, dy, fx, fy, springForce, distance; @@ -34795,13 +34818,13 @@ return /******/ (function(modules) { // webpackBootstrap this._calculateForces(distance, dx, dy, forces, node); } } - }, { - key: "_calculateForces", /** * Calculate the forces based on the distance. * @private */ + }, { + key: "_calculateForces", value: function _calculateForces(distance, dx, dy, forces, node) { var gravityForce = distance === 0 ? 0 : this.options.centralGravity / distance; forces[node.id].x = dx * gravityForce; @@ -34833,7 +34856,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _BarnesHutSolver2 = __webpack_require__(91); @@ -34848,19 +34871,19 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(ForceAtlas2BasedRepulsionSolver.prototype), "constructor", this).call(this, body, physicsBody, options); } + /** + * Calculate the forces based on the distance. + * + * @param distance + * @param dx + * @param dy + * @param node + * @param parentBranch + * @private + */ + _createClass(ForceAtlas2BasedRepulsionSolver, [{ key: "_calculateForces", - - /** - * Calculate the forces based on the distance. - * - * @param distance - * @param dx - * @param dy - * @param node - * @param parentBranch - * @private - */ value: function _calculateForces(distance, dx, dy, node, parentBranch) { if (distance === 0) { distance = 0.1 * Math.random(); @@ -34907,7 +34930,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _CentralGravitySolver2 = __webpack_require__(96); @@ -34922,13 +34945,13 @@ return /******/ (function(modules) { // webpackBootstrap _get(Object.getPrototypeOf(ForceAtlas2BasedCentralGravitySolver.prototype), "constructor", this).call(this, body, physicsBody, options); } + /** + * Calculate the forces based on the distance. + * @private + */ + _createClass(ForceAtlas2BasedCentralGravitySolver, [{ key: "_calculateForces", - - /** - * Calculate the forces based on the distance. - * @private - */ value: function _calculateForces(distance, dx, dy, forces, node) { if (distance > 0) { var degree = node.edges.length + 1; @@ -34990,18 +35013,18 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options) { if (options !== undefined) {} } - }, { - key: 'clusterByHubsize', /** * * @param hubsize * @param options */ + }, { + key: 'clusterByHubsize', value: function clusterByHubsize(hubsize, options) { if (hubsize === undefined) { hubsize = this._getHubSize(); - } else if (typeof hubsize === 'object') { + } else if (typeof hubsize === "object") { options = this._checkOptions(hubsize); hubsize = this._getHubSize(); } @@ -35020,20 +35043,20 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } - }, { - key: 'cluster', /** * loop over all nodes, check if they adhere to the condition and cluster if needed. * @param options * @param refreshData */ + }, { + key: 'cluster', value: function cluster() { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; if (options.joinCondition === undefined) { - throw new Error('Cannot call clusterByNodeData without a joinCondition function in the options.'); + throw new Error("Cannot call clusterByNodeData without a joinCondition function in the options."); } // check if the options object is fine, append if needed @@ -35062,8 +35085,6 @@ return /******/ (function(modules) { // webpackBootstrap this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - }, { - key: 'clusterByEdgeCount', /** * Cluster all nodes in the network that have only X edges @@ -35071,6 +35092,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param options * @param refreshData */ + }, { + key: 'clusterByEdgeCount', value: function clusterByEdgeCount(edgeCount, options) { var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; @@ -35149,34 +35172,32 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } } - }, { - key: 'clusterOutliers', /** * Cluster all nodes in the network that have only 1 edge * @param options * @param refreshData */ + }, { + key: 'clusterOutliers', value: function clusterOutliers(options) { var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; this.clusterByEdgeCount(1, options, refreshData); } - }, { - key: 'clusterBridges', /** * Cluster all nodes in the network that have only 2 edge * @param options * @param refreshData */ + }, { + key: 'clusterBridges', value: function clusterBridges(options) { var refreshData = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; this.clusterByEdgeCount(2, options, refreshData); } - }, { - key: 'clusterByConnection', /** * suck all connected nodes of a node into the node. @@ -35184,15 +35205,17 @@ return /******/ (function(modules) { // webpackBootstrap * @param options * @param refreshData */ + }, { + key: 'clusterByConnection', value: function clusterByConnection(nodeId, options) { var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; // kill conditions if (nodeId === undefined) { - throw new Error('No nodeId supplied to clusterByConnection!'); + throw new Error("No nodeId supplied to clusterByConnection!"); } if (this.body.nodes[nodeId] === undefined) { - throw new Error('The nodeId given to clusterByConnection does not exist!'); + throw new Error("The nodeId given to clusterByConnection does not exist!"); } var node = this.body.nodes[nodeId]; @@ -35245,8 +35268,6 @@ return /******/ (function(modules) { // webpackBootstrap this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - }, { - key: '_cloneOptions', /** * This returns a clone of the options or options of the edge or node to be used for construction of new edges or check functions for new nodes. @@ -35255,6 +35276,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{}} * @private */ + }, { + key: '_cloneOptions', value: function _cloneOptions(item, type) { var clonedOptions = {}; if (type === undefined || type === 'node') { @@ -35267,8 +35290,6 @@ return /******/ (function(modules) { // webpackBootstrap } return clonedOptions; } - }, { - key: '_createClusterEdges', /** * This function creates the edges that will be attached to the cluster @@ -35279,6 +35300,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param options * @private */ + }, { + key: '_createClusterEdges', value: function _createClusterEdges(childNodesObj, clusterNodeProperties, clusterEdgeProperties) { var edge = undefined, childNodeId = undefined, @@ -35348,8 +35371,6 @@ return /******/ (function(modules) { // webpackBootstrap _edge.hiddenByCluster = true; } } - }, { - key: '_checkOptions', /** * This function checks the options that can be supplied to the different cluster functions @@ -35358,6 +35379,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_checkOptions', value: function _checkOptions() { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; @@ -35370,8 +35393,6 @@ return /******/ (function(modules) { // webpackBootstrap return options; } - }, { - key: '_cluster', /** * @@ -35381,6 +35402,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Boolean} refreshData | when true, do not wrap up * @private */ + }, { + key: '_cluster', value: function _cluster(childNodesObj, childEdgesObj, options) { var refreshData = arguments.length <= 3 || arguments[3] === undefined ? true : arguments[3]; @@ -35416,7 +35439,7 @@ return /******/ (function(modules) { // webpackBootstrap for (var edgeId in childEdgesObj) { if (childEdgesObj.hasOwnProperty(edgeId)) { // these cluster edges will be removed on creation of the cluster. - if (edgeId.substr(0, 12) !== 'clusterEdge:') { + if (edgeId.substr(0, 12) !== "clusterEdge:") { var clonedOptions = this._cloneOptions(childEdgesObj[edgeId], 'edge'); childEdgesOptions.push(clonedOptions); } @@ -35425,7 +35448,7 @@ return /******/ (function(modules) { // webpackBootstrap clusterNodeProperties = options.processProperties(clusterNodeProperties, childNodesOptions, childEdgesOptions); if (!clusterNodeProperties) { - throw new Error('The processProperties function does not return properties!'); + throw new Error("The processProperties function does not return properties!"); } } @@ -35496,24 +35519,22 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_dataChanged'); } } - }, { - key: 'isCluster', /** * Check if a node is a cluster. * @param nodeId * @returns {*} */ + }, { + key: 'isCluster', value: function isCluster(nodeId) { if (this.body.nodes[nodeId] !== undefined) { return this.body.nodes[nodeId].isCluster === true; } else { - console.log('Node does not exist.'); + console.log("Node does not exist."); return false; } } - }, { - key: '_getClusterPosition', /** * get the position of the cluster node based on what's inside @@ -35521,6 +35542,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @private */ + }, { + key: '_getClusterPosition', value: function _getClusterPosition(childNodesObj) { var childKeys = Object.keys(childNodesObj); var minX = childNodesObj[childKeys[0]].x; @@ -35538,26 +35561,26 @@ return /******/ (function(modules) { // webpackBootstrap return { x: 0.5 * (minX + maxX), y: 0.5 * (minY + maxY) }; } - }, { - key: 'openCluster', /** * Open a cluster by calling this function. * @param {String} clusterNodeId | the ID of the cluster node * @param {Boolean} refreshData | wrap up afterwards if not true */ + }, { + key: 'openCluster', value: function openCluster(clusterNodeId, options) { var refreshData = arguments.length <= 2 || arguments[2] === undefined ? true : arguments[2]; // kill conditions if (clusterNodeId === undefined) { - throw new Error('No clusterNodeId supplied to openCluster.'); + throw new Error("No clusterNodeId supplied to openCluster."); } if (this.body.nodes[clusterNodeId] === undefined) { - throw new Error('The clusterNodeId supplied to openCluster does not exist.'); + throw new Error("The clusterNodeId supplied to openCluster does not exist."); } if (this.body.nodes[clusterNodeId].containedNodes === undefined) { - console.log('The node:' + clusterNodeId + ' is not a cluster.'); + console.log("The node:" + clusterNodeId + " is not a cluster."); return; } var clusterNode = this.body.nodes[clusterNodeId]; @@ -35678,6 +35701,8 @@ return /******/ (function(modules) { // webpackBootstrap if (containedEdges.hasOwnProperty(edgeId)) { var edge = containedEdges[edgeId]; edge.setOptions({ physics: true, hidden: false }); + edge.hiddenByCluster = undefined; + delete edge.hiddenByCluster; } } @@ -35703,8 +35728,6 @@ return /******/ (function(modules) { // webpackBootstrap return nodesArray; } - }, { - key: 'findNode', /** * Get the stack clusterId's that a certain node resides in. cluster A -> cluster B -> cluster C -> node @@ -35712,6 +35735,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Array} * @private */ + }, { + key: 'findNode', value: function findNode(nodeId) { var stack = []; var max = 100; @@ -35725,8 +35750,6 @@ return /******/ (function(modules) { // webpackBootstrap stack.push(this.body.nodes[nodeId]); return stack; } - }, { - key: '_getConnectedId', /** * Get the Id the node is connected to @@ -35735,6 +35758,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_getConnectedId', value: function _getConnectedId(edge, nodeId) { if (edge.toId != nodeId) { return edge.toId; @@ -35744,8 +35769,6 @@ return /******/ (function(modules) { // webpackBootstrap return edge.fromId; } } - }, { - key: '_getHubSize', /** * We determine how many connections denote an important hub. @@ -35753,6 +35776,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_getHubSize', value: function _getHubSize() { var average = 0; var averageSquared = 0; @@ -35807,7 +35832,7 @@ return /******/ (function(modules) { // webpackBootstrap function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; } + function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var _Node2 = __webpack_require__(62); @@ -35888,33 +35913,33 @@ return /******/ (function(modules) { // webpackBootstrap value: function bindEventListeners() { var _this = this; - this.body.emitter.on('dragStart', function () { + this.body.emitter.on("dragStart", function () { _this.dragging = true; }); - this.body.emitter.on('dragEnd', function () { + this.body.emitter.on("dragEnd", function () { return _this.dragging = false; }); - this.body.emitter.on('_resizeNodes', function () { + this.body.emitter.on("_resizeNodes", function () { return _this._resizeNodes(); }); - this.body.emitter.on('_redraw', function () { + this.body.emitter.on("_redraw", function () { if (_this.renderingActive === false) { _this._redraw(); } }); - this.body.emitter.on('_blockRedraw', function () { + this.body.emitter.on("_blockRedraw", function () { _this.allowRedraw = false; }); - this.body.emitter.on('_allowRedraw', function () { + this.body.emitter.on("_allowRedraw", function () { _this.allowRedraw = true;_this.redrawRequested = false; }); - this.body.emitter.on('_requestRedraw', this._requestRedraw.bind(this)); - this.body.emitter.on('_startRendering', function () { + this.body.emitter.on("_requestRedraw", this._requestRedraw.bind(this)); + this.body.emitter.on("_startRendering", function () { _this.renderRequests += 1; _this.renderingActive = true; _this._startRendering(); }); - this.body.emitter.on('_stopRendering', function () { + this.body.emitter.on("_stopRendering", function () { _this.renderRequests -= 1; _this.renderingActive = _this.renderRequests > 0; _this.renderTimer = undefined; @@ -35947,8 +35972,8 @@ return /******/ (function(modules) { // webpackBootstrap if (this.requiresTimeout === true) { this.renderTimer = window.setTimeout(this._renderStep.bind(this), this.simulationInterval); // wait this.renderTimeStep milliseconds and perform the animation step function } else { - this.renderTimer = window.requestAnimationFrame(this._renderStep.bind(this)); // wait this.renderTimeStep milliseconds and perform the animation step function - } + this.renderTimer = window.requestAnimationFrame(this._renderStep.bind(this)); // wait this.renderTimeStep milliseconds and perform the animation step function + } } } } @@ -35972,25 +35997,25 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'redraw', /** * Redraw the network with the current data * chart will be resized too. */ + }, { + key: 'redraw', value: function redraw() { this.body.emitter.emit('setSize'); this._redraw(); } - }, { - key: '_requestRedraw', /** * Redraw the network with the current data * @param hidden | used to get the first estimate of the node sizes. only the nodes are drawn after which they are quickly drawn over. * @private */ + }, { + key: '_requestRedraw', value: function _requestRedraw() { var _this2 = this; @@ -36013,7 +36038,7 @@ return /******/ (function(modules) { // webpackBootstrap var hidden = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; if (this.allowRedraw === true) { - this.body.emitter.emit('initRedraw'); + this.body.emitter.emit("initRedraw"); this.redrawRequested = false; var ctx = this.canvas.frame.canvas.getContext('2d'); @@ -36043,7 +36068,7 @@ return /******/ (function(modules) { // webpackBootstrap ctx.scale(this.body.view.scale, this.body.view.scale); ctx.beginPath(); - this.body.emitter.emit('beforeDrawing', ctx); + this.body.emitter.emit("beforeDrawing", ctx); ctx.closePath(); if (hidden === false) { @@ -36062,7 +36087,7 @@ return /******/ (function(modules) { // webpackBootstrap ctx.beginPath(); //this.physics.nodesSolver._debug(ctx,"#F00F0F"); - this.body.emitter.emit('afterDrawing', ctx); + this.body.emitter.emit("afterDrawing", ctx); ctx.closePath(); // restore original scaling and translation ctx.restore(); @@ -36072,8 +36097,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_resizeNodes', /** * Redraw all nodes @@ -36082,6 +36105,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Boolean} [alwaysShow] * @private */ + }, { + key: '_resizeNodes', value: function _resizeNodes() { var ctx = this.canvas.frame.canvas.getContext('2d'); if (this.pixelRatio === undefined) { @@ -36107,8 +36132,6 @@ return /******/ (function(modules) { // webpackBootstrap // restore original scaling and translation ctx.restore(); } - }, { - key: '_drawNodes', /** * Redraw all nodes @@ -36117,6 +36140,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Boolean} [alwaysShow] * @private */ + }, { + key: '_drawNodes', value: function _drawNodes(ctx) { var alwaysShow = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; @@ -36155,8 +36180,6 @@ return /******/ (function(modules) { // webpackBootstrap node.draw(ctx); } } - }, { - key: '_drawEdges', /** * Redraw all edges @@ -36164,6 +36187,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: '_drawEdges', value: function _drawEdges(ctx) { var edges = this.body.edges; var edgeIndices = this.body.edgeIndices; @@ -36176,8 +36201,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_drawControlNodes', /** * Redraw all edges @@ -36185,6 +36208,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {CanvasRenderingContext2D} ctx * @private */ + }, { + key: '_drawControlNodes', value: function _drawControlNodes(ctx) { var edges = this.body.edges; var edgeIndices = this.body.edgeIndices; @@ -36195,14 +36220,14 @@ return /******/ (function(modules) { // webpackBootstrap edge._drawControlNodes(ctx); } } - }, { - key: '_determineBrowserMethod', /** * Determine if the browser requires a setTimeout or a requestAnimationFrame. This was required because * some implementations (safari and IE9) did not support requestAnimationFrame * @private */ + }, { + key: '_determineBrowserMethod', value: function _determineBrowserMethod() { if (typeof window !== 'undefined') { var browserType = navigator.userAgent.toLowerCase(); @@ -36282,7 +36307,7 @@ return /******/ (function(modules) { // webpackBootstrap var _this = this; // bind the events - this.body.emitter.once('resize', function (obj) { + this.body.emitter.once("resize", function (obj) { if (obj.width !== 0) { _this.body.view.translation.x = obj.width * 0.5; } @@ -36290,8 +36315,8 @@ return /******/ (function(modules) { // webpackBootstrap _this.body.view.translation.y = obj.height * 0.5; } }); - this.body.emitter.on('setSize', this.setSize.bind(this)); - this.body.emitter.on('destroy', function () { + this.body.emitter.on("setSize", this.setSize.bind(this)); + this.body.emitter.on("destroy", function () { _this.hammerFrame.destroy(); _this.hammer.destroy(); _this._cleanUp(); @@ -36313,7 +36338,7 @@ return /******/ (function(modules) { // webpackBootstrap this.resizeTimer = setInterval(function () { var changed = _this2.setSize(); if (changed === true) { - _this2.body.emitter.emit('_requestRedraw'); + _this2.body.emitter.emit("_requestRedraw"); } }, 1000); this.resizeFunction = this._onResize.bind(this); @@ -36334,15 +36359,15 @@ return /******/ (function(modules) { // webpackBootstrap key: '_onResize', value: function _onResize() { this.setSize(); - this.body.emitter.emit('_redraw'); + this.body.emitter.emit("_redraw"); } - }, { - key: '_getCameraState', /** * Get and store the cameraState * @private */ + }, { + key: '_getCameraState', value: function _getCameraState() { var pixelRatio = arguments.length <= 0 || arguments[0] === undefined ? this.pixelRatio : arguments[0]; @@ -36350,13 +36375,13 @@ return /******/ (function(modules) { // webpackBootstrap this.cameraState.scale = this.body.view.scale; this.cameraState.position = this.DOMtoCanvas({ x: 0.5 * this.frame.canvas.width / pixelRatio, y: 0.5 * this.frame.canvas.height / pixelRatio }); } - }, { - key: '_setCameraState', /** * Set the cameraState * @private */ + }, { + key: '_setCameraState', value: function _setCameraState() { if (this.cameraState.scale !== undefined && this.frame.canvas.clientWidth !== 0 && this.frame.canvas.clientHeight !== 0 && this.pixelRatio !== 0 && this.cameraState.previousWidth > 0) { @@ -36390,12 +36415,12 @@ return /******/ (function(modules) { // webpackBootstrap } throw new Error('Could not use the value supplied for width or height:' + value); } - }, { - key: '_create', /** * Create the HTML */ + }, { + key: '_create', value: function _create() { // remove all elements from the container element. while (this.body.container.hasChildNodes()) { @@ -36410,7 +36435,7 @@ return /******/ (function(modules) { // webpackBootstrap ////////////////////////////////////////////////////////////////// - this.frame.canvas = document.createElement('canvas'); + this.frame.canvas = document.createElement("canvas"); this.frame.canvas.style.position = 'relative'; this.frame.appendChild(this.frame.canvas); @@ -36422,10 +36447,10 @@ return /******/ (function(modules) { // webpackBootstrap noCanvas.innerHTML = 'Error: your browser does not support HTML canvas'; this.frame.canvas.appendChild(noCanvas); } else { - var ctx = this.frame.canvas.getContext('2d'); + var ctx = this.frame.canvas.getContext("2d"); this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); - this.frame.canvas.getContext('2d').setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); + this.frame.canvas.getContext("2d").setTransform(this.pixelRatio, 0, 0, this.pixelRatio, 0, 0); } // add the frame to the container element @@ -36436,13 +36461,13 @@ return /******/ (function(modules) { // webpackBootstrap this._bindHammer(); } - }, { - key: '_bindHammer', /** * This function binds hammer, it can be repeated over and over due to the uniqueness check. * @private */ + }, { + key: '_bindHammer', value: function _bindHammer() { var _this3 = this; @@ -36503,8 +36528,6 @@ return /******/ (function(modules) { // webpackBootstrap _this3.body.eventListeners.onRelease(event); }); } - }, { - key: 'setSize', /** * Set a new size for the network @@ -36513,6 +36536,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} height Height in pixels or percentage (for example '400px' * or '30%') */ + }, { + key: 'setSize', value: function setSize() { var width = arguments.length <= 0 || arguments[0] === undefined ? this.options.width : arguments[0]; var height = arguments.length <= 1 || arguments[1] === undefined ? this.options.height : arguments[1]; @@ -36525,7 +36550,7 @@ return /******/ (function(modules) { // webpackBootstrap var oldHeight = this.frame.canvas.height; // update the pixelratio - var ctx = this.frame.canvas.getContext('2d'); + var ctx = this.frame.canvas.getContext("2d"); var previousRation = this.pixelRatio; // we cache this because the camera state storage needs the old value this.pixelRatio = (window.devicePixelRatio || 1) / (ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1); @@ -36591,8 +36616,6 @@ return /******/ (function(modules) { // webpackBootstrap value: function _XconvertDOMtoCanvas(x) { return (x - this.body.view.translation.x) / this.body.view.scale; } - }, { - key: '_XconvertCanvasToDOM', /** * Convert the X coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to @@ -36601,11 +36624,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_XconvertCanvasToDOM', value: function _XconvertCanvasToDOM(x) { return x * this.body.view.scale + this.body.view.translation.x; } - }, { - key: '_YconvertDOMtoCanvas', /** * Convert the Y coordinate in DOM-space (coordinate point in browser relative to the container div) to @@ -36614,11 +36637,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_YconvertDOMtoCanvas', value: function _YconvertDOMtoCanvas(y) { return (y - this.body.view.translation.y) / this.body.view.scale; } - }, { - key: '_YconvertCanvasToDOM', /** * Convert the Y coordinate in canvas-space (the simulation sandbox, which the camera looks upon) to @@ -36627,11 +36650,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_YconvertCanvasToDOM', value: function _YconvertCanvasToDOM(y) { return y * this.body.view.scale + this.body.view.translation.y; } - }, { - key: 'canvasToDOM', /** * @@ -36639,11 +36662,11 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @constructor */ + }, { + key: 'canvasToDOM', value: function canvasToDOM(pos) { return { x: this._XconvertCanvasToDOM(pos.x), y: this._YconvertCanvasToDOM(pos.y) }; } - }, { - key: 'DOMtoCanvas', /** * @@ -36651,6 +36674,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{x: number, y: number}} * @constructor */ + }, { + key: 'DOMtoCanvas', value: function DOMtoCanvas(pos) { return { x: this._XconvertDOMtoCanvas(pos.x), y: this._YconvertDOMtoCanvas(pos.y) }; } @@ -36694,7 +36719,7 @@ return /******/ (function(modules) { // webpackBootstrap this.canvas = canvas; this.animationSpeed = 1 / this.renderRefreshRate; - this.animationEasingFunction = 'easeInOutQuint'; + this.animationEasingFunction = "easeInOutQuint"; this.easingTime = 0; this.sourceScale = 0; this.targetScale = 0; @@ -36706,11 +36731,11 @@ return /******/ (function(modules) { // webpackBootstrap this.viewFunction = undefined; - this.body.emitter.on('fit', this.fit.bind(this)); - this.body.emitter.on('animationFinished', function () { - _this.body.emitter.emit('_stopRendering'); + this.body.emitter.on("fit", this.fit.bind(this)); + this.body.emitter.on("animationFinished", function () { + _this.body.emitter.emit("_stopRendering"); }); - this.body.emitter.on('unlockNode', this.releaseNode.bind(this)); + this.body.emitter.on("unlockNode", this.releaseNode.bind(this)); } _createClass(View, [{ @@ -36720,14 +36745,14 @@ return /******/ (function(modules) { // webpackBootstrap this.options = options; } - }, { - key: 'fit', /** * This function zooms out to fit all data on screen based on amount of nodes * @param {Object} Options * @param {Boolean} [initialZoom] | zoom based on fitted formula or range, true = fitted, default = false; */ + }, { + key: 'fit', value: function fit() { var options = arguments.length <= 0 || arguments[0] === undefined ? { nodes: [] } : arguments[0]; var initialZoom = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1]; @@ -36763,7 +36788,7 @@ return /******/ (function(modules) { // webpackBootstrap var factor = Math.min(this.canvas.frame.canvas.clientWidth / 600, this.canvas.frame.canvas.clientHeight / 600); zoomLevel *= factor; } else { - this.body.emitter.emit('_resizeNodes'); + this.body.emitter.emit("_resizeNodes"); range = _NetworkUtil2['default']._getRange(this.body.nodes, options.nodes); var xDistance = Math.abs(range.maxX - range.minX) * 1.1; @@ -36785,8 +36810,6 @@ return /******/ (function(modules) { // webpackBootstrap var animationOptions = { position: center, scale: zoomLevel, animation: options.animation }; this.moveTo(animationOptions); } - }, { - key: 'focus', // animation @@ -36796,6 +36819,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Number} nodeId * @param {Number} [options] */ + }, { + key: 'focus', value: function focus(nodeId) { var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; @@ -36806,11 +36831,9 @@ return /******/ (function(modules) { // webpackBootstrap this.moveTo(options); } else { - console.log('Node: ' + nodeId + ' cannot be found.'); + console.log("Node: " + nodeId + " cannot be found."); } } - }, { - key: 'moveTo', /** * @@ -36819,6 +36842,8 @@ return /******/ (function(modules) { // webpackBootstrap * | options.position = {x:Number, y:Number} // position to move to * | options.animation = {duration:Number, easingFunction:String} || Boolean // position to move to */ + }, { + key: 'moveTo', value: function moveTo(options) { if (options === undefined) { options = {}; @@ -36852,13 +36877,11 @@ return /******/ (function(modules) { // webpackBootstrap options.animation.duration = 1000; } // default duration if (options.animation.easingFunction === undefined) { - options.animation.easingFunction = 'easeInOutQuad'; + options.animation.easingFunction = "easeInOutQuad"; } // default easing function this.animateView(options); } - }, { - key: 'animateView', /** * @@ -36871,6 +36894,8 @@ return /******/ (function(modules) { // webpackBootstrap * // easeInQuart, easeOutQuart, easeInOutQuart, * // easeInQuint, easeOutQuint, easeInOutQuint */ + }, { + key: 'animateView', value: function animateView(options) { if (options === undefined) { return; @@ -36910,28 +36935,28 @@ return /******/ (function(modules) { // webpackBootstrap if (options.animation.duration === 0) { if (this.lockedOnNodeId != undefined) { this.viewFunction = this._lockedRedraw.bind(this); - this.body.emitter.on('initRedraw', this.viewFunction); + this.body.emitter.on("initRedraw", this.viewFunction); } else { this.body.view.scale = this.targetScale; this.body.view.translation = this.targetTranslation; - this.body.emitter.emit('_requestRedraw'); + this.body.emitter.emit("_requestRedraw"); } } else { this.animationSpeed = 1 / (60 * options.animation.duration * 0.001) || 1 / 60; // 60 for 60 seconds, 0.001 for milli's this.animationEasingFunction = options.animation.easingFunction; this.viewFunction = this._transitionRedraw.bind(this); - this.body.emitter.on('initRedraw', this.viewFunction); - this.body.emitter.emit('_startRendering'); + this.body.emitter.on("initRedraw", this.viewFunction); + this.body.emitter.emit("_startRendering"); } } - }, { - key: '_lockedRedraw', /** * used to animate smoothly by hijacking the redraw function. * @private */ + }, { + key: '_lockedRedraw', value: function _lockedRedraw() { var nodePosition = { x: this.body.nodes[this.lockedOnNodeId].x, y: this.body.nodes[this.lockedOnNodeId].y }; var viewCenter = this.canvas.DOMtoCanvas({ x: 0.5 * this.canvas.frame.canvas.clientWidth, y: 0.5 * this.canvas.frame.canvas.clientHeight }); @@ -36951,19 +36976,19 @@ return /******/ (function(modules) { // webpackBootstrap key: 'releaseNode', value: function releaseNode() { if (this.lockedOnNodeId !== undefined && this.viewFunction !== undefined) { - this.body.emitter.off('initRedraw', this.viewFunction); + this.body.emitter.off("initRedraw", this.viewFunction); this.lockedOnNodeId = undefined; this.lockedOnNodeOffset = undefined; } } - }, { - key: '_transitionRedraw', /** * * @param easingTime * @private */ + }, { + key: '_transitionRedraw', value: function _transitionRedraw() { var finished = arguments.length <= 0 || arguments[0] === undefined ? false : arguments[0]; @@ -36980,13 +37005,13 @@ return /******/ (function(modules) { // webpackBootstrap // cleanup if (this.easingTime >= 1.0) { - this.body.emitter.off('initRedraw', this.viewFunction); + this.body.emitter.off("initRedraw", this.viewFunction); this.easingTime = 0; if (this.lockedOnNodeId != undefined) { this.viewFunction = this._lockedRedraw.bind(this); - this.body.emitter.on('initRedraw', this.viewFunction); + this.body.emitter.on("initRedraw", this.viewFunction); } - this.body.emitter.emit('animationFinished'); + this.body.emitter.emit("animationFinished"); } } }, { @@ -37026,13 +37051,13 @@ return /******/ (function(modules) { // webpackBootstrap _classCallCheck(this, NetworkUtil); } + /** + * Find the center position of the network considering the bounding boxes + * @private + */ + _createClass(NetworkUtil, null, [{ key: "_getRange", - - /** - * Find the center position of the network considering the bounding boxes - * @private - */ value: function _getRange(allNodes) { var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; @@ -37064,13 +37089,13 @@ return /******/ (function(modules) { // webpackBootstrap } return { minX: minX, maxX: maxX, minY: minY, maxY: maxY }; } - }, { - key: "_getRangeCore", /** * Find the center position of the network * @private */ + }, { + key: "_getRangeCore", value: function _getRangeCore(allNodes) { var specificNodes = arguments.length <= 1 || arguments[1] === undefined ? [] : arguments[1]; @@ -37102,14 +37127,14 @@ return /******/ (function(modules) { // webpackBootstrap } return { minX: minX, maxX: maxX, minY: minY, maxY: maxY }; } - }, { - key: "_findCenter", /** * @param {object} range = {minX: minX, maxX: maxX, minY: minY, maxY: maxY}; * @returns {{x: number, y: number}} * @private */ + }, { + key: "_findCenter", value: function _findCenter(range) { return { x: 0.5 * (range.maxX + range.minX), y: 0.5 * (range.maxY + range.minY) }; @@ -37230,8 +37255,6 @@ return /******/ (function(modules) { // webpackBootstrap this.navigationHandler.setOptions(this.options); } - }, { - key: 'getPointer', /** * Get the pointer location from a touch location @@ -37239,20 +37262,22 @@ return /******/ (function(modules) { // webpackBootstrap * @return {{x: Number, y: Number}} pointer * @private */ + }, { + key: 'getPointer', value: function getPointer(touch) { return { x: touch.x - util.getAbsoluteLeft(this.canvas.frame.canvas), y: touch.y - util.getAbsoluteTop(this.canvas.frame.canvas) }; } - }, { - key: 'onTouch', /** * On start of a touch gesture, store the pointer * @param event * @private */ + }, { + key: 'onTouch', value: function onTouch(event) { if (new Date().valueOf() - this.touchTime > 50) { this.drag.pointer = this.getPointer(event.center); @@ -37262,13 +37287,13 @@ return /******/ (function(modules) { // webpackBootstrap this.touchTime = new Date().valueOf(); } } - }, { - key: 'onTap', /** * handle tap/click event: select/unselect a node * @private */ + }, { + key: 'onTap', value: function onTap(event) { var pointer = this.getPointer(event.center); var multiselect = this.selectionHandler.options.multiselect && (event.changedPointers[0].ctrlKey || event.changedPointers[0].metaKey); @@ -37276,24 +37301,24 @@ return /******/ (function(modules) { // webpackBootstrap this.checkSelectionChanges(pointer, event, multiselect); this.selectionHandler._generateClickEvent('click', event, pointer); } - }, { - key: 'onDoubleTap', /** * handle doubletap event * @private */ + }, { + key: 'onDoubleTap', value: function onDoubleTap(event) { var pointer = this.getPointer(event.center); this.selectionHandler._generateClickEvent('doubleClick', event, pointer); } - }, { - key: 'onHold', /** * handle long tap event: multi select nodes * @private */ + }, { + key: 'onHold', value: function onHold(event) { var pointer = this.getPointer(event.center); var multiselect = this.selectionHandler.options.multiselect; @@ -37303,14 +37328,14 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('click', event, pointer); this.selectionHandler._generateClickEvent('hold', event, pointer); } - }, { - key: 'onRelease', /** * handle the release of the screen * * @private */ + }, { + key: 'onRelease', value: function onRelease(event) { if (new Date().valueOf() - this.touchTime > 10) { var pointer = this.getPointer(event.center); @@ -37325,14 +37350,14 @@ return /******/ (function(modules) { // webpackBootstrap var pointer = this.getPointer({ x: event.clientX, y: event.clientY }); this.selectionHandler._generateClickEvent('oncontext', event, pointer); } - }, { - key: 'checkSelectionChanges', /** * * @param pointer * @param add */ + }, { + key: 'checkSelectionChanges', value: function checkSelectionChanges(pointer, event) { var add = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; @@ -37393,8 +37418,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('select', event, pointer); } } - }, { - key: '_determineIfDifferent', /** * This function checks if the nodes and edges previously selected have changed. @@ -37403,6 +37426,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{nodesChanges: boolean, edgesChanges: boolean}} * @private */ + }, { + key: '_determineIfDifferent', value: function _determineIfDifferent(previousSelection, currentSelection) { var nodesChanges = false; var edgesChanges = false; @@ -37430,8 +37455,6 @@ return /******/ (function(modules) { // webpackBootstrap return { nodesChanges: nodesChanges, edgesChanges: edgesChanges }; } - }, { - key: 'onDragStart', /** * This function is called by onDragStart. @@ -37439,6 +37462,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: 'onDragStart', value: function onDragStart(event) { //in case the touch event was triggered on an external div, do the initial touch now. if (this.drag.pointer === undefined) { @@ -37491,13 +37516,13 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler._generateClickEvent('dragStart', event, this.drag.pointer, undefined, true); } } - }, { - key: 'onDrag', /** * handle drag event * @private */ + }, { + key: 'onDrag', value: function onDrag(event) { var _this2 = this; @@ -37553,13 +37578,13 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'onDragEnd', /** * handle drag start event * @private */ + }, { + key: 'onDragEnd', value: function onDragEnd(event) { this.drag.dragging = false; var selection = this.drag.selection; @@ -37576,14 +37601,14 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_requestRedraw'); } } - }, { - key: 'onPinch', /** * Handle pinch event * @param event * @private */ + }, { + key: 'onPinch', value: function onPinch(event) { var pointer = this.getPointer(event.center); @@ -37596,8 +37621,6 @@ return /******/ (function(modules) { // webpackBootstrap var scale = this.pinch.scale * event.scale; this.zoom(scale, pointer); } - }, { - key: 'zoom', /** * Zoom the network in or out @@ -37606,6 +37629,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Number} appliedScale scale is limited within the boundaries * @private */ + }, { + key: 'zoom', value: function zoom(scale, pointer) { if (this.options.zoomView === true) { var scaleOld = this.body.view.scale; @@ -37647,8 +37672,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'onMouseWheel', /** * Event handler for mouse wheel event, used to zoom the timeline @@ -37657,6 +37680,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {MouseEvent} event * @private */ + }, { + key: 'onMouseWheel', value: function onMouseWheel(event) { // retrieve delta var delta = 0; @@ -37693,14 +37718,14 @@ return /******/ (function(modules) { // webpackBootstrap // Prevent default actions caused by mouse wheel. event.preventDefault(); } - }, { - key: 'onMouseMove', /** * Mouse move handler for checking whether the title moves over a node with a title. * @param {Event} event * @private */ + }, { + key: 'onMouseMove', value: function onMouseMove(event) { var _this3 = this; @@ -37751,8 +37776,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler.hoverObject(obj); } } - }, { - key: '_checkShowPopup', /** * Check if there is an element on the given position in the network @@ -37762,6 +37785,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {{x:Number, y:Number}} pointer * @private */ + }, { + key: '_checkShowPopup', value: function _checkShowPopup(pointer) { var x = this.canvas._XconvertDOMtoCanvas(pointer.x); var y = this.canvas._YconvertDOMtoCanvas(pointer.y); @@ -37846,8 +37871,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_checkHidePopup', /** * Check if the popup must be hidden, which is the case when the mouse is no @@ -37855,6 +37878,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {{x:Number, y:Number}} pointer * @private */ + }, { + key: '_checkHidePopup', value: function _checkHidePopup(pointer) { var pointerObj = this.selectionHandler._pointerToPositionObject(pointer); @@ -37926,13 +37951,13 @@ return /******/ (function(modules) { // webpackBootstrap this.touchTime = 0; this.activated = false; - this.body.emitter.on('activate', function () { + this.body.emitter.on("activate", function () { _this.activated = true;_this.configureKeyboardBindings(); }); - this.body.emitter.on('deactivate', function () { + this.body.emitter.on("deactivate", function () { _this.activated = false;_this.configureKeyboardBindings(); }); - this.body.emitter.on('destroy', function () { + this.body.emitter.on("destroy", function () { if (_this.keycharm !== undefined) { _this.keycharm.destroy(); } @@ -37980,8 +38005,6 @@ return /******/ (function(modules) { // webpackBootstrap this.iconsCreated = false; } - }, { - key: 'loadNavigationElements', /** * Creation of the navigation controls nodes. They are drawn over the rest of the nodes and are not affected by scale and translation @@ -37991,6 +38014,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: 'loadNavigationElements', value: function loadNavigationElements() { var _this2 = this; @@ -38010,7 +38035,7 @@ return /******/ (function(modules) { // webpackBootstrap this.navigationDOM['wrapper'].appendChild(this.navigationDOM[navigationDivs[i]]); var hammer = new Hammer(this.navigationDOM[navigationDivs[i]]); - if (navigationDivActions[i] === '_fit') { + if (navigationDivActions[i] === "_fit") { hammerUtil.onTouch(hammer, this._fit.bind(this)); } else { hammerUtil.onTouch(hammer, this.bindToRedraw.bind(this, navigationDivActions[i])); @@ -38034,47 +38059,47 @@ return /******/ (function(modules) { // webpackBootstrap value: function bindToRedraw(action) { if (this.boundFunctions[action] === undefined) { this.boundFunctions[action] = this[action].bind(this); - this.body.emitter.on('initRedraw', this.boundFunctions[action]); - this.body.emitter.emit('_startRendering'); + this.body.emitter.on("initRedraw", this.boundFunctions[action]); + this.body.emitter.emit("_startRendering"); } } }, { key: 'unbindFromRedraw', value: function unbindFromRedraw(action) { if (this.boundFunctions[action] !== undefined) { - this.body.emitter.off('initRedraw', this.boundFunctions[action]); - this.body.emitter.emit('_stopRendering'); + this.body.emitter.off("initRedraw", this.boundFunctions[action]); + this.body.emitter.emit("_stopRendering"); delete this.boundFunctions[action]; } } - }, { - key: '_fit', /** * this stops all movement induced by the navigation buttons * * @private */ + }, { + key: '_fit', value: function _fit() { if (new Date().valueOf() - this.touchTime > 700) { // TODO: fix ugly hack to avoid hammer's double fireing of event (because we use release?) - this.body.emitter.emit('fit', { duration: 700 }); + this.body.emitter.emit("fit", { duration: 700 }); this.touchTime = new Date().valueOf(); } } - }, { - key: '_stopMovement', /** * this stops all movement induced by the navigation buttons * * @private */ + }, { + key: '_stopMovement', value: function _stopMovement() { for (var boundAction in this.boundFunctions) { if (this.boundFunctions.hasOwnProperty(boundAction)) { - this.body.emitter.off('initRedraw', this.boundFunctions[boundAction]); - this.body.emitter.emit('_stopRendering'); + this.body.emitter.off("initRedraw", this.boundFunctions[boundAction]); + this.body.emitter.emit("_stopRendering"); } } this.boundFunctions = {}; @@ -38111,12 +38136,12 @@ return /******/ (function(modules) { // webpackBootstrap this.body.view.scale /= 1 + this.options.keyboard.speed.zoom; this.body.emitter.emit('zoom', { direction: '-', scale: this.body.view.scale }); } - }, { - key: 'configureKeyboardBindings', /** * bind all keys using keycharm. */ + }, { + key: 'configureKeyboardBindings', value: function configureKeyboardBindings() { var _this3 = this; @@ -38134,79 +38159,79 @@ return /******/ (function(modules) { // webpackBootstrap this.keycharm.reset(); if (this.activated === true) { - this.keycharm.bind('up', function () { - _this3.bindToRedraw('_moveUp'); - }, 'keydown'); - this.keycharm.bind('down', function () { - _this3.bindToRedraw('_moveDown'); - }, 'keydown'); - this.keycharm.bind('left', function () { - _this3.bindToRedraw('_moveLeft'); - }, 'keydown'); - this.keycharm.bind('right', function () { - _this3.bindToRedraw('_moveRight'); - }, 'keydown'); - this.keycharm.bind('=', function () { - _this3.bindToRedraw('_zoomIn'); - }, 'keydown'); - this.keycharm.bind('num+', function () { - _this3.bindToRedraw('_zoomIn'); - }, 'keydown'); - this.keycharm.bind('num-', function () { - _this3.bindToRedraw('_zoomOut'); - }, 'keydown'); - this.keycharm.bind('-', function () { - _this3.bindToRedraw('_zoomOut'); - }, 'keydown'); - this.keycharm.bind('[', function () { - _this3.bindToRedraw('_zoomOut'); - }, 'keydown'); - this.keycharm.bind(']', function () { - _this3.bindToRedraw('_zoomIn'); - }, 'keydown'); - this.keycharm.bind('pageup', function () { - _this3.bindToRedraw('_zoomIn'); - }, 'keydown'); - this.keycharm.bind('pagedown', function () { - _this3.bindToRedraw('_zoomOut'); - }, 'keydown'); - - this.keycharm.bind('up', function () { - _this3.unbindFromRedraw('_moveUp'); - }, 'keyup'); - this.keycharm.bind('down', function () { - _this3.unbindFromRedraw('_moveDown'); - }, 'keyup'); - this.keycharm.bind('left', function () { - _this3.unbindFromRedraw('_moveLeft'); - }, 'keyup'); - this.keycharm.bind('right', function () { - _this3.unbindFromRedraw('_moveRight'); - }, 'keyup'); - this.keycharm.bind('=', function () { - _this3.unbindFromRedraw('_zoomIn'); - }, 'keyup'); - this.keycharm.bind('num+', function () { - _this3.unbindFromRedraw('_zoomIn'); - }, 'keyup'); - this.keycharm.bind('num-', function () { - _this3.unbindFromRedraw('_zoomOut'); - }, 'keyup'); - this.keycharm.bind('-', function () { - _this3.unbindFromRedraw('_zoomOut'); - }, 'keyup'); - this.keycharm.bind('[', function () { - _this3.unbindFromRedraw('_zoomOut'); - }, 'keyup'); - this.keycharm.bind(']', function () { - _this3.unbindFromRedraw('_zoomIn'); - }, 'keyup'); - this.keycharm.bind('pageup', function () { - _this3.unbindFromRedraw('_zoomIn'); - }, 'keyup'); - this.keycharm.bind('pagedown', function () { - _this3.unbindFromRedraw('_zoomOut'); - }, 'keyup'); + this.keycharm.bind("up", function () { + _this3.bindToRedraw("_moveUp"); + }, "keydown"); + this.keycharm.bind("down", function () { + _this3.bindToRedraw("_moveDown"); + }, "keydown"); + this.keycharm.bind("left", function () { + _this3.bindToRedraw("_moveLeft"); + }, "keydown"); + this.keycharm.bind("right", function () { + _this3.bindToRedraw("_moveRight"); + }, "keydown"); + this.keycharm.bind("=", function () { + _this3.bindToRedraw("_zoomIn"); + }, "keydown"); + this.keycharm.bind("num+", function () { + _this3.bindToRedraw("_zoomIn"); + }, "keydown"); + this.keycharm.bind("num-", function () { + _this3.bindToRedraw("_zoomOut"); + }, "keydown"); + this.keycharm.bind("-", function () { + _this3.bindToRedraw("_zoomOut"); + }, "keydown"); + this.keycharm.bind("[", function () { + _this3.bindToRedraw("_zoomOut"); + }, "keydown"); + this.keycharm.bind("]", function () { + _this3.bindToRedraw("_zoomIn"); + }, "keydown"); + this.keycharm.bind("pageup", function () { + _this3.bindToRedraw("_zoomIn"); + }, "keydown"); + this.keycharm.bind("pagedown", function () { + _this3.bindToRedraw("_zoomOut"); + }, "keydown"); + + this.keycharm.bind("up", function () { + _this3.unbindFromRedraw("_moveUp"); + }, "keyup"); + this.keycharm.bind("down", function () { + _this3.unbindFromRedraw("_moveDown"); + }, "keyup"); + this.keycharm.bind("left", function () { + _this3.unbindFromRedraw("_moveLeft"); + }, "keyup"); + this.keycharm.bind("right", function () { + _this3.unbindFromRedraw("_moveRight"); + }, "keyup"); + this.keycharm.bind("=", function () { + _this3.unbindFromRedraw("_zoomIn"); + }, "keyup"); + this.keycharm.bind("num+", function () { + _this3.unbindFromRedraw("_zoomIn"); + }, "keyup"); + this.keycharm.bind("num-", function () { + _this3.unbindFromRedraw("_zoomOut"); + }, "keyup"); + this.keycharm.bind("-", function () { + _this3.unbindFromRedraw("_zoomOut"); + }, "keyup"); + this.keycharm.bind("[", function () { + _this3.unbindFromRedraw("_zoomOut"); + }, "keyup"); + this.keycharm.bind("]", function () { + _this3.unbindFromRedraw("_zoomIn"); + }, "keyup"); + this.keycharm.bind("pageup", function () { + _this3.unbindFromRedraw("_zoomIn"); + }, "keyup"); + this.keycharm.bind("pagedown", function () { + _this3.unbindFromRedraw("_zoomOut"); + }, "keyup"); } } } @@ -38258,24 +38283,24 @@ return /******/ (function(modules) { // webpackBootstrap this.container.appendChild(this.frame); } + /** + * @param {number} x Horizontal position of the popup window + * @param {number} y Vertical position of the popup window + */ + _createClass(Popup, [{ key: 'setPosition', - - /** - * @param {number} x Horizontal position of the popup window - * @param {number} y Vertical position of the popup window - */ value: function setPosition(x, y) { this.x = parseInt(x); this.y = parseInt(y); } - }, { - key: 'setText', /** * Set the content for the popup window. This can be HTML code or text. * @param {string | Element} content */ + }, { + key: 'setText', value: function setText(content) { if (content instanceof Element) { this.frame.innerHTML = ''; @@ -38284,13 +38309,13 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.innerHTML = content; // string containing text or HTML } } - }, { - key: 'show', /** * Show the popup window * @param {boolean} [doShow] Show or hide the window */ + }, { + key: 'show', value: function show(doShow) { if (doShow === undefined) { doShow = true; @@ -38318,23 +38343,23 @@ return /******/ (function(modules) { // webpackBootstrap left = this.padding; } - this.frame.style.left = left + 'px'; - this.frame.style.top = top + 'px'; - this.frame.style.visibility = 'visible'; + this.frame.style.left = left + "px"; + this.frame.style.top = top + "px"; + this.frame.style.visibility = "visible"; this.hidden = false; } else { this.hide(); } } - }, { - key: 'hide', /** * Hide the popup window */ + }, { + key: 'hide', value: function hide() { this.hidden = true; - this.frame.style.visibility = 'hidden'; + this.frame.style.visibility = "hidden"; } }]); @@ -38391,12 +38416,10 @@ return /******/ (function(modules) { // webpackBootstrap key: "setOptions", value: function setOptions(options) { if (options !== undefined) { - var fields = ["multiselect", "hoverConnectedEdges", "selectable", "selectConnectedEdges"]; + var fields = ['multiselect', 'hoverConnectedEdges', 'selectable', 'selectConnectedEdges']; util.selectiveDeepExtend(fields, this.options, options); } } - }, { - key: "selectOnPoint", /** * handles the selection part of the tap; @@ -38404,6 +38427,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} pointer * @private */ + }, { + key: "selectOnPoint", value: function selectOnPoint(pointer) { var selected = false; if (this.options.selectable === true) { @@ -38450,14 +38475,14 @@ return /******/ (function(modules) { // webpackBootstrap } else { properties = this.getSelection(); } - properties["pointer"] = { + properties['pointer'] = { DOM: { x: pointer.x, y: pointer.y }, canvas: this.canvas.DOMtoCanvas(pointer) }; - properties["event"] = event; + properties['event'] = event; if (oldSelection !== undefined) { - properties["previousSelection"] = oldSelection; + properties['previousSelection'] = oldSelection; } this.body.emitter.emit(eventType, properties); } @@ -38486,8 +38511,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removeFromSelection(obj); } } - }, { - key: "_getAllNodesOverlappingWith", /** * retrieve all nodes overlapping with given object @@ -38495,6 +38518,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Number[]} An array with id's of the overlapping nodes * @private */ + }, { + key: "_getAllNodesOverlappingWith", value: function _getAllNodesOverlappingWith(object) { var overlappingNodes = []; var nodes = this.body.nodes; @@ -38506,8 +38531,6 @@ return /******/ (function(modules) { // webpackBootstrap } return overlappingNodes; } - }, { - key: "_pointerToPositionObject", /** * Return a position object in canvasspace from a single point in screenspace @@ -38516,6 +38539,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{left: number, top: number, right: number, bottom: number}} * @private */ + }, { + key: "_pointerToPositionObject", value: function _pointerToPositionObject(pointer) { var canvasPos = this.canvas.DOMtoCanvas(pointer); return { @@ -38525,8 +38550,6 @@ return /******/ (function(modules) { // webpackBootstrap bottom: canvasPos.y - 1 }; } - }, { - key: "getNodeAt", /** * Get the top node at the a specific point (like a click) @@ -38535,6 +38558,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Node | undefined} node * @private */ + }, { + key: "getNodeAt", value: function getNodeAt(pointer) { var returnNode = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -38553,8 +38578,6 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } } - }, { - key: "_getEdgesOverlappingWith", /** * retrieve all edges overlapping with given object, selector is around center @@ -38562,6 +38585,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Number[]} An array with id's of the overlapping nodes * @private */ + }, { + key: "_getEdgesOverlappingWith", value: function _getEdgesOverlappingWith(object, overlappingEdges) { var edges = this.body.edges; for (var i = 0; i < this.body.edgeIndices.length; i++) { @@ -38571,8 +38596,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_getAllEdgesOverlappingWith", /** * retrieve all nodes overlapping with given object @@ -38580,13 +38603,13 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Number[]} An array with id's of the overlapping nodes * @private */ + }, { + key: "_getAllEdgesOverlappingWith", value: function _getAllEdgesOverlappingWith(object) { var overlappingEdges = []; this._getEdgesOverlappingWith(object, overlappingEdges); return overlappingEdges; } - }, { - key: "getEdgeAt", /** * Place holder. To implement change the getNodeAt to a _getObjectAt. Have the _getObjectAt call @@ -38596,6 +38619,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {undefined} * @private */ + }, { + key: "getEdgeAt", value: function getEdgeAt(pointer) { var returnEdge = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -38612,8 +38637,6 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } } - }, { - key: "_addToSelection", /** * Add object to the selection array. @@ -38621,6 +38644,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param obj * @private */ + }, { + key: "_addToSelection", value: function _addToSelection(obj) { if (obj instanceof Node) { this.selectionObj.nodes[obj.id] = obj; @@ -38628,8 +38653,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionObj.edges[obj.id] = obj; } } - }, { - key: "_addToHover", /** * Add object to the selection array. @@ -38637,6 +38660,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param obj * @private */ + }, { + key: "_addToHover", value: function _addToHover(obj) { if (obj instanceof Node) { this.hoverObj.nodes[obj.id] = obj; @@ -38644,8 +38669,6 @@ return /******/ (function(modules) { // webpackBootstrap this.hoverObj.edges[obj.id] = obj; } } - }, { - key: "_removeFromSelection", /** * Remove a single option from selection. @@ -38653,6 +38676,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} obj * @private */ + }, { + key: "_removeFromSelection", value: function _removeFromSelection(obj) { if (obj instanceof Node) { delete this.selectionObj.nodes[obj.id]; @@ -38660,14 +38685,14 @@ return /******/ (function(modules) { // webpackBootstrap delete this.selectionObj.edges[obj.id]; } } - }, { - key: "unselectAll", /** * Unselect all. The selectionObj is useful for this. * * @private */ + }, { + key: "unselectAll", value: function unselectAll() { for (var nodeId in this.selectionObj.nodes) { if (this.selectionObj.nodes.hasOwnProperty(nodeId)) { @@ -38682,8 +38707,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionObj = { nodes: {}, edges: {} }; } - }, { - key: "_getSelectedNodeCount", /** * return the number of selected nodes @@ -38691,6 +38714,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedNodeCount", value: function _getSelectedNodeCount() { var count = 0; for (var nodeId in this.selectionObj.nodes) { @@ -38700,8 +38725,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_getSelectedNode", /** * return the selected node @@ -38709,6 +38732,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedNode", value: function _getSelectedNode() { for (var nodeId in this.selectionObj.nodes) { if (this.selectionObj.nodes.hasOwnProperty(nodeId)) { @@ -38717,8 +38742,6 @@ return /******/ (function(modules) { // webpackBootstrap } return undefined; } - }, { - key: "_getSelectedEdge", /** * return the selected edge @@ -38726,6 +38749,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedEdge", value: function _getSelectedEdge() { for (var edgeId in this.selectionObj.edges) { if (this.selectionObj.edges.hasOwnProperty(edgeId)) { @@ -38734,8 +38759,6 @@ return /******/ (function(modules) { // webpackBootstrap } return undefined; } - }, { - key: "_getSelectedEdgeCount", /** * return the number of selected edges @@ -38743,6 +38766,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedEdgeCount", value: function _getSelectedEdgeCount() { var count = 0; for (var edgeId in this.selectionObj.edges) { @@ -38752,8 +38777,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_getSelectedObjectCount", /** * return the number of selected objects. @@ -38761,6 +38784,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedObjectCount", value: function _getSelectedObjectCount() { var count = 0; for (var nodeId in this.selectionObj.nodes) { @@ -38775,8 +38800,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_selectionIsEmpty", /** * Check if anything is selected @@ -38784,6 +38807,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} * @private */ + }, { + key: "_selectionIsEmpty", value: function _selectionIsEmpty() { for (var nodeId in this.selectionObj.nodes) { if (this.selectionObj.nodes.hasOwnProperty(nodeId)) { @@ -38797,8 +38822,6 @@ return /******/ (function(modules) { // webpackBootstrap } return true; } - }, { - key: "_clusterInSelection", /** * check if one of the selected nodes is a cluster. @@ -38806,6 +38829,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {boolean} * @private */ + }, { + key: "_clusterInSelection", value: function _clusterInSelection() { for (var nodeId in this.selectionObj.nodes) { if (this.selectionObj.nodes.hasOwnProperty(nodeId)) { @@ -38816,8 +38841,6 @@ return /******/ (function(modules) { // webpackBootstrap } return false; } - }, { - key: "_selectConnectedEdges", /** * select the edges connected to the node that is being selected @@ -38825,6 +38848,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node} node * @private */ + }, { + key: "_selectConnectedEdges", value: function _selectConnectedEdges(node) { for (var i = 0; i < node.edges.length; i++) { var edge = node.edges[i]; @@ -38832,8 +38857,6 @@ return /******/ (function(modules) { // webpackBootstrap this._addToSelection(edge); } } - }, { - key: "_hoverConnectedEdges", /** * select the edges connected to the node that is being selected @@ -38841,6 +38864,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node} node * @private */ + }, { + key: "_hoverConnectedEdges", value: function _hoverConnectedEdges(node) { for (var i = 0; i < node.edges.length; i++) { var edge = node.edges[i]; @@ -38848,8 +38873,6 @@ return /******/ (function(modules) { // webpackBootstrap this._addToHover(edge); } } - }, { - key: "_unselectConnectedEdges", /** * unselect the edges connected to the node that is being selected @@ -38857,6 +38880,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node} node * @private */ + }, { + key: "_unselectConnectedEdges", value: function _unselectConnectedEdges(node) { for (var i = 0; i < node.edges.length; i++) { var edge = node.edges[i]; @@ -38864,8 +38889,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removeFromSelection(edge); } } - }, { - key: "blurObject", /** * This is called when someone clicks on a node. either select or deselect it. @@ -38874,6 +38897,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node || Edge} object * @private */ + }, { + key: "blurObject", value: function blurObject(object) { if (object.hover === true) { object.hover = false; @@ -38884,8 +38909,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "hoverObject", /** * This is called when someone clicks on a node. either select or deselect it. @@ -38894,6 +38917,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node || Edge} object * @private */ + }, { + key: "hoverObject", value: function hoverObject(object) { var hoverChanged = false; // remove all node hover highlights @@ -38918,10 +38943,10 @@ return /******/ (function(modules) { // webpackBootstrap } // if the blur remains the same and the object is undefined (mouse off), we blur the edge else if (object === undefined) { - this.blurObject(this.hoverObj.edges[edgeId]); - delete this.hoverObj.edges[edgeId]; - hoverChanged = true; - } + this.blurObject(this.hoverObj.edges[edgeId]); + delete this.hoverObj.edges[edgeId]; + hoverChanged = true; + } } } @@ -38942,24 +38967,22 @@ return /******/ (function(modules) { // webpackBootstrap } if (hoverChanged === true) { - this.body.emitter.emit("_requestRedraw"); + this.body.emitter.emit('_requestRedraw'); } } - }, { - key: "getSelection", /** * * retrieve the currently selected objects * @return {{nodes: Array., edges: Array.}} selection */ + }, { + key: "getSelection", value: function getSelection() { var nodeIds = this.getSelectedNodes(); var edgeIds = this.getSelectedEdges(); return { nodes: nodeIds, edges: edgeIds }; } - }, { - key: "getSelectedNodes", /** * @@ -38967,6 +38990,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {String[]} selection An array with the ids of the * selected nodes. */ + }, { + key: "getSelectedNodes", value: function getSelectedNodes() { var idArray = []; if (this.options.selectable === true) { @@ -38978,8 +39003,6 @@ return /******/ (function(modules) { // webpackBootstrap } return idArray; } - }, { - key: "getSelectedEdges", /** * @@ -38987,6 +39010,8 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Array} selection An array with the ids of the * selected nodes. */ + }, { + key: "getSelectedEdges", value: function getSelectedEdges() { var idArray = []; if (this.options.selectable === true) { @@ -38998,8 +39023,6 @@ return /******/ (function(modules) { // webpackBootstrap } return idArray; } - }, { - key: "selectNodes", /** * select zero or more nodes with the option to highlight edges @@ -39007,13 +39030,15 @@ return /******/ (function(modules) { // webpackBootstrap * selected nodes. * @param {boolean} [highlightEdges] */ + }, { + key: "selectNodes", value: function selectNodes(selection) { var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; var i = undefined, id = undefined; - if (!selection || selection.length === undefined) throw "Selection must be an array with ids"; + if (!selection || selection.length === undefined) throw 'Selection must be an array with ids'; // first unselect any selected node this.unselectAll(); @@ -39023,25 +39048,25 @@ return /******/ (function(modules) { // webpackBootstrap var node = this.body.nodes[id]; if (!node) { - throw new RangeError("Node with id \"" + id + "\" not found"); + throw new RangeError('Node with id "' + id + '" not found'); } this.selectObject(node, highlightEdges); } - this.body.emitter.emit("_requestRedraw"); + this.body.emitter.emit('_requestRedraw'); } - }, { - key: "selectEdges", /** * select zero or more edges * @param {Number[] | String[]} selection An array with the ids of the * selected nodes. */ + }, { + key: "selectEdges", value: function selectEdges(selection) { var i = undefined, id = undefined; - if (!selection || selection.length === undefined) throw "Selection must be an array with ids"; + if (!selection || selection.length === undefined) throw 'Selection must be an array with ids'; // first unselect any selected objects this.unselectAll(); @@ -39051,19 +39076,19 @@ return /******/ (function(modules) { // webpackBootstrap var edge = this.body.edges[id]; if (!edge) { - throw new RangeError("Edge with id \"" + id + "\" not found"); + throw new RangeError('Edge with id "' + id + '" not found'); } this.selectObject(edge); } - this.body.emitter.emit("_requestRedraw"); + this.body.emitter.emit('_requestRedraw'); } - }, { - key: "updateSelection", /** * Validate the selection: remove ids of nodes which no longer exist * @private */ + }, { + key: "updateSelection", value: function updateSelection() { for (var nodeId in this.selectionObj.nodes) { if (this.selectionObj.nodes.hasOwnProperty(nodeId)) { @@ -39158,7 +39183,7 @@ return /******/ (function(modules) { // webpackBootstrap value: function setOptions(options, allOptions) { if (options !== undefined) { var prevHierarchicalState = this.options.hierarchical.enabled; - util.selectiveDeepExtend(['randomSeed', 'improvedLayout'], this.options, options); + util.selectiveDeepExtend(["randomSeed", "improvedLayout"], this.options, options); util.mergeOptions(this.options, options, 'hierarchical'); if (options.randomSeed !== undefined) { this.initialRandomSeed = options.randomSeed; @@ -39280,13 +39305,13 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'layoutNetwork', /** * Use KamadaKawai to position nodes. This is quite a heavy algorithm so if there are a lot of nodes we * cluster them first to reduce the amount. */ + }, { + key: 'layoutNetwork', value: function layoutNetwork() { if (this.options.hierarchical.enabled !== true && this.options.improvedLayout === true) { // first check if we should KamadaKawai to layout. The threshold is if less than half of the visible @@ -39301,28 +39326,31 @@ return /******/ (function(modules) { // webpackBootstrap // if less than half of the nodes have a predefined position we continue if (positionDefined < 0.5 * this.body.nodeIndices.length) { - var MAX_LEVELS = 200; - var levels = 0; + var MAX_LEVELS = 10; + var level = 0; var clusterThreshold = 100; // if there are a lot of nodes, we cluster before we run the algorithm. if (this.body.nodeIndices.length > clusterThreshold) { var startLength = this.body.nodeIndices.length; while (this.body.nodeIndices.length > clusterThreshold) { - levels += 1; + //console.time("clustering") + level += 1; var before = this.body.nodeIndices.length; // if there are many nodes we do a hubsize cluster - if (levels % 3 === 0) { + if (level % 3 === 0) { this.body.modules.clustering.clusterBridges(); } else { this.body.modules.clustering.clusterOutliers(); } var after = this.body.nodeIndices.length; - if (before == after && levels % 3 !== 0 || levels > MAX_LEVELS) { + if (before == after && level % 3 !== 0 || level > MAX_LEVELS) { this._declusterAll(); - this.body.emitter.emit('_layoutFailed'); - console.info('This network could not be positioned by this version of the improved layout algorithm.'); + this.body.emitter.emit("_layoutFailed"); + console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance."); return; } + //console.timeEnd("clustering") + //console.log(level,after) } // increase the size of the edges this.body.modules.kamadaKawai.setOptions({ springLength: Math.max(150, 2 * startLength) }); @@ -39335,26 +39363,27 @@ return /******/ (function(modules) { // webpackBootstrap this._shiftToCenter(); // perturb the nodes a little bit to force the physics to kick in + var offset = 70; for (var i = 0; i < this.body.nodeIndices.length; i++) { - this.body.nodes[this.body.nodeIndices[i]].x += (0.5 - this.seededRandom()) * 50; - this.body.nodes[this.body.nodeIndices[i]].y += (0.5 - this.seededRandom()) * 50; + this.body.nodes[this.body.nodeIndices[i]].x += (0.5 - this.seededRandom()) * offset; + this.body.nodes[this.body.nodeIndices[i]].y += (0.5 - this.seededRandom()) * offset; } // uncluster all clusters this._declusterAll(); // reposition all bezier nodes. - this.body.emitter.emit('_repositionBezierNodes'); + this.body.emitter.emit("_repositionBezierNodes"); } } } - }, { - key: '_shiftToCenter', /** * Move all the nodes towards to the center so gravitational pull wil not move the nodes away from view * @private */ + }, { + key: '_shiftToCenter', value: function _shiftToCenter() { var range = _NetworkUtil2['default']._getRangeCore(this.body.nodes, this.body.nodeIndices); var center = _NetworkUtil2['default']._findCenter(range); @@ -39385,8 +39414,6 @@ return /******/ (function(modules) { // webpackBootstrap value: function getSeed() { return this.initialRandomSeed; } - }, { - key: 'setupHierarchicalLayout', /** * This is the main function to layout the nodes in a hierarchical way. @@ -39394,6 +39421,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: 'setupHierarchicalLayout', value: function setupHierarchicalLayout() { if (this.options.hierarchical.enabled === true && this.body.nodeIndices.length > 0) { // get the size of the largest hubs and check if the user has defined a level for a node. @@ -39441,8 +39470,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_placeNodesByHierarchy', /** * This function places the nodes on the canvas based on the hierarchial distribution. @@ -39450,6 +39477,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} distribution | obtained by the function this._getDistribution() * @private */ + }, { + key: '_placeNodesByHierarchy', value: function _placeNodesByHierarchy(distribution) { var nodeId = undefined, node = undefined; @@ -39481,8 +39510,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_getDistribution', /** * This function get the distribution of levels based on hubsize @@ -39490,6 +39517,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Object} * @private */ + }, { + key: '_getDistribution', value: function _getDistribution() { var distribution = {}; var nodeId = undefined, @@ -39517,8 +39546,6 @@ return /******/ (function(modules) { // webpackBootstrap } return distribution; } - }, { - key: '_getHubSize', /** * Get the hubsize from all remaining unlevelled nodes. @@ -39526,6 +39553,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_getHubSize', value: function _getHubSize() { var hubSize = 0; for (var nodeId in this.body.nodes) { @@ -39538,8 +39567,6 @@ return /******/ (function(modules) { // webpackBootstrap } return hubSize; } - }, { - key: '_determineLevelsByHubsize', /** * this function allocates nodes in levels based on the recursive branching from the largest hubs. @@ -39547,6 +39574,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param hubsize * @private */ + }, { + key: '_determineLevelsByHubsize', value: function _determineLevelsByHubsize() { var nodeId = undefined, node = undefined; @@ -39567,8 +39596,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_setLevelByHubsize', /** * this function is called recursively to enumerate the barnches of the largest hubs and give each node a level. @@ -39578,6 +39605,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentId * @private */ + }, { + key: '_setLevelByHubsize', value: function _setLevelByHubsize(level, node) { if (this.hierarchicalLevels[node.id] !== undefined) return; @@ -39592,8 +39621,6 @@ return /******/ (function(modules) { // webpackBootstrap this._setLevelByHubsize(level + 1, childNode); } } - }, { - key: '_determineLevelsDirected', /** * this function allocates nodes in levels based on the direction of the edges @@ -39601,6 +39628,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param hubsize * @private */ + }, { + key: '_determineLevelsDirected', value: function _determineLevelsDirected() { var nodeId = undefined, node = undefined; @@ -39628,8 +39657,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_setLevelDirected', /** * this function is called recursively to enumerate the branched of the first node and give each node a level based on edge direction @@ -39639,6 +39666,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentId * @private */ + }, { + key: '_setLevelDirected', value: function _setLevelDirected(level, node) { if (this.hierarchicalLevels[node.id] !== undefined) return; @@ -39655,8 +39684,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_placeBranchNodes', /** * This is a recursively called function to enumerate the branches from the largest hubs and place the nodes @@ -39668,6 +39695,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentLevel * @private */ + }, { + key: '_placeBranchNodes', value: function _placeBranchNodes(edges, parentId, distribution, parentLevel) { for (var i = 0; i < edges.length; i++) { var childNode = undefined; @@ -39789,13 +39818,13 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.on('_resetData', this._restore.bind(this)); } + /** + * If something changes in the data during editing, switch back to the initial datamanipulation state and close all edit modes. + * @private + */ + _createClass(ManipulationSystem, [{ key: '_restore', - - /** - * If something changes in the data during editing, switch back to the initial datamanipulation state and close all edit modes. - * @private - */ value: function _restore() { if (this.inMode !== false) { if (this.options.initiallyActive === true) { @@ -39805,13 +39834,13 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'setOptions', /** * Set the Options * @param options */ + }, { + key: 'setOptions', value: function setOptions(options, allOptions, globalOptions) { if (allOptions !== undefined) { if (allOptions.locale !== undefined) { @@ -39839,14 +39868,14 @@ return /******/ (function(modules) { // webpackBootstrap this._setup(); } } - }, { - key: 'toggleEditMode', /** * Enable or disable edit-mode. Draws the DOM required and cleans up after itself. * * @private */ + }, { + key: 'toggleEditMode', value: function toggleEditMode() { if (this.editMode === true) { this.disableEditMode(); @@ -39880,14 +39909,14 @@ return /******/ (function(modules) { // webpackBootstrap this._createEditButton(); } } - }, { - key: 'showManipulatorToolbar', /** * Creates the main toolbar. Removes functions bound to the select event. Binds all the buttons of the toolbar. * * @private */ + }, { + key: 'showManipulatorToolbar', value: function showManipulatorToolbar() { // restore the state of any bound functions or events, remove control nodes, restore physics this._clean(); @@ -39962,14 +39991,14 @@ return /******/ (function(modules) { // webpackBootstrap // redraw to show any possible changes this.body.emitter.emit('_redraw'); } - }, { - key: 'addNodeMode', /** * Create the toolbar for adding Nodes * * @private */ + }, { + key: 'addNodeMode', value: function addNodeMode() { // when using the gui, enable edit mode if it wasnt already. if (this.editMode !== true) { @@ -39993,14 +40022,14 @@ return /******/ (function(modules) { // webpackBootstrap this._temporaryBindEvent('click', this._performAddNode.bind(this)); } - }, { - key: 'editNode', /** * call the bound function to handle the editing of the node. The node has to be selected. * * @private */ + }, { + key: 'editNode', value: function editNode() { var _this2 = this; @@ -40041,14 +40070,14 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: 'addEdgeMode', /** * create the toolbar to connect nodes * * @private */ + }, { + key: 'addEdgeMode', value: function addEdgeMode() { // when using the gui, enable edit mode if it wasnt already. if (this.editMode !== true) { @@ -40079,14 +40108,14 @@ return /******/ (function(modules) { // webpackBootstrap this._temporaryBindUI('onDragStart', function () {}); this._temporaryBindUI('onHold', function () {}); } - }, { - key: 'editEdgeMode', /** * create the toolbar to edit edges * * @private */ + }, { + key: 'editEdgeMode', value: function editEdgeMode() { var _this3 = this; @@ -40156,14 +40185,14 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: 'deleteSelected', /** * delete everything in the selection * * @private */ + }, { + key: 'deleteSelected', value: function deleteSelected() { var _this4 = this; @@ -40221,8 +40250,6 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: '_setup', //********************************************** PRIVATE ***************************************// @@ -40230,6 +40257,8 @@ return /******/ (function(modules) { // webpackBootstrap * draw or remove the DOM * @private */ + }, { + key: '_setup', value: function _setup() { if (this.options.enabled === true) { // Enable the GUI @@ -40248,13 +40277,13 @@ return /******/ (function(modules) { // webpackBootstrap this.guiEnabled = false; } } - }, { - key: '_createWrappers', /** * create the div overlays that contain the DOM * @private */ + }, { + key: '_createWrappers', value: function _createWrappers() { // load the manipulator HTML elements. All styling done in css. if (this.manipulationDiv === undefined) { @@ -40288,8 +40317,6 @@ return /******/ (function(modules) { // webpackBootstrap this.canvas.frame.appendChild(this.closeDiv); } } - }, { - key: '_getNewTargetNode', /** * generate a new target node. Used for creating new edges and editing edges @@ -40298,6 +40325,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_getNewTargetNode', value: function _getNewTargetNode(x, y) { var controlNodeStyle = util.deepExtend({}, this.options.controlNodeStyle); @@ -40309,12 +40338,12 @@ return /******/ (function(modules) { // webpackBootstrap return this.body.functions.createNode(controlNodeStyle); } - }, { - key: '_createEditButton', /** * Create the edit button */ + }, { + key: '_createEditButton', value: function _createEditButton() { // restore everything to it's original state (if applicable) this._clean(); @@ -40333,13 +40362,13 @@ return /******/ (function(modules) { // webpackBootstrap // bind a hammer listener to the button, calling the function toggleEditMode. this._bindHammerToDiv(button, this.toggleEditMode.bind(this)); } - }, { - key: '_clean', /** * this function cleans up after everything this module does. Temporary elements, functions and events are removed, physics restored, hammers removed. * @private */ + }, { + key: '_clean', value: function _clean() { // not in mode this.inMode = false; @@ -40365,13 +40394,13 @@ return /******/ (function(modules) { // webpackBootstrap // restore the physics if required this.body.emitter.emit('restorePhysics'); } - }, { - key: '_cleanManipulatorHammers', /** * Each dom element has it's own hammer. They are stored in this.manipulationHammers. This cleans them up. * @private */ + }, { + key: '_cleanManipulatorHammers', value: function _cleanManipulatorHammers() { // _clean hammer bindings if (this.manipulationHammers.length != 0) { @@ -40381,13 +40410,13 @@ return /******/ (function(modules) { // webpackBootstrap this.manipulationHammers = []; } } - }, { - key: '_removeManipulationDOM', /** * Remove all DOM elements created by this module. * @private */ + }, { + key: '_removeManipulationDOM', value: function _removeManipulationDOM() { // removes all the bindings and overloads this._clean(); @@ -40413,14 +40442,14 @@ return /******/ (function(modules) { // webpackBootstrap this.editModeDiv = undefined; this.closeDiv = undefined; } - }, { - key: '_createSeperator', /** * create a seperator line. the index is to differentiate in the manipulation dom * @param index * @private */ + }, { + key: '_createSeperator', value: function _createSeperator() { var index = arguments.length <= 0 || arguments[0] === undefined ? 1 : arguments[0]; @@ -40428,11 +40457,11 @@ return /******/ (function(modules) { // webpackBootstrap this.manipulationDOM['seperatorLineDiv' + index].className = 'vis-separator-line'; this.manipulationDiv.appendChild(this.manipulationDOM['seperatorLineDiv' + index]); } - }, { - key: '_createAddNodeButton', // ---------------------- DOM functions for buttons --------------------------// + }, { + key: '_createAddNodeButton', value: function _createAddNodeButton(locale) { var button = this._createButton('addNode', 'vis-button vis-add', locale['addNode'] || this.options.locales['en']['addNode']); this.manipulationDiv.appendChild(button); @@ -40491,8 +40520,6 @@ return /******/ (function(modules) { // webpackBootstrap value: function _createDescription(label) { this.manipulationDiv.appendChild(this._createButton('description', 'vis-button vis-none', label)); } - }, { - key: '_temporaryBindEvent', // -------------------------- End of DOM functions for buttons ------------------------------// @@ -40502,12 +40529,12 @@ return /******/ (function(modules) { // webpackBootstrap * @param newFunction * @private */ + }, { + key: '_temporaryBindEvent', value: function _temporaryBindEvent(event, newFunction) { this.temporaryEventFunctions.push({ event: event, boundFunction: newFunction }); this.body.emitter.on(event, newFunction); } - }, { - key: '_temporaryBindUI', /** * this overrides an UI function until cleanup by the clean function @@ -40515,6 +40542,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param newFunction * @private */ + }, { + key: '_temporaryBindUI', value: function _temporaryBindUI(UIfunctionName, newFunction) { if (this.body.eventListeners[UIfunctionName] !== undefined) { this.temporaryUIFunctions[UIfunctionName] = this.body.eventListeners[UIfunctionName]; @@ -40523,14 +40552,14 @@ return /******/ (function(modules) { // webpackBootstrap throw new Error('This UI function does not exist. Typo? You tried: ' + UIfunctionName + ' possible are: ' + JSON.stringify(Object.keys(this.body.eventListeners))); } } - }, { - key: '_unbindTemporaryUIs', /** * Restore the overridden UI functions to their original state. * * @private */ + }, { + key: '_unbindTemporaryUIs', value: function _unbindTemporaryUIs() { for (var functionName in this.temporaryUIFunctions) { if (this.temporaryUIFunctions.hasOwnProperty(functionName)) { @@ -40540,13 +40569,13 @@ return /******/ (function(modules) { // webpackBootstrap } this.temporaryUIFunctions = {}; } - }, { - key: '_unbindTemporaryEvents', /** * Unbind the events created by _temporaryBindEvent * @private */ + }, { + key: '_unbindTemporaryEvents', value: function _unbindTemporaryEvents() { for (var i = 0; i < this.temporaryEventFunctions.length; i++) { var eventName = this.temporaryEventFunctions[i].event; @@ -40555,26 +40584,26 @@ return /******/ (function(modules) { // webpackBootstrap } this.temporaryEventFunctions = []; } - }, { - key: '_bindHammerToDiv', /** * Bind an hammer instance to a DOM element. * @param domElement * @param funct */ + }, { + key: '_bindHammerToDiv', value: function _bindHammerToDiv(domElement, boundFunction) { var hammer = new Hammer(domElement, {}); hammerUtil.onTouch(hammer, boundFunction); this.manipulationHammers.push(hammer); } - }, { - key: '_cleanupTemporaryNodesAndEdges', /** * Neatly clean up temporary edges and nodes * @private */ + }, { + key: '_cleanupTemporaryNodesAndEdges', value: function _cleanupTemporaryNodesAndEdges() { // _clean temporary edges for (var i = 0; i < this.temporaryIds.edges.length; i++) { @@ -40597,8 +40626,6 @@ return /******/ (function(modules) { // webpackBootstrap this.temporaryIds = { nodes: [], edges: [] }; } - }, { - key: '_controlNodeTouch', // ------------------------------------------ EDIT EDGE FUNCTIONS -----------------------------------------// @@ -40607,19 +40634,21 @@ return /******/ (function(modules) { // webpackBootstrap * @param event * @private */ + }, { + key: '_controlNodeTouch', value: function _controlNodeTouch(event) { this.selectionHandler.unselectAll(); this.lastTouch = this.body.functions.getPointer(event.center); this.lastTouch.translation = util.extend({}, this.body.view.translation); // copy the object } - }, { - key: '_controlNodeDragStart', /** * the drag start is used to mark one of the control nodes as selected. * @param event * @private */ + }, { + key: '_controlNodeDragStart', value: function _controlNodeDragStart(event) { var pointer = this.lastTouch; var pointerObj = this.selectionHandler._pointerToPositionObject(pointer); @@ -40641,14 +40670,14 @@ return /******/ (function(modules) { // webpackBootstrap this.body.emitter.emit('_redraw'); } - }, { - key: '_controlNodeDrag', /** * dragging the control nodes or the canvas * @param event * @private */ + }, { + key: '_controlNodeDrag', value: function _controlNodeDrag(event) { this.body.emitter.emit('disablePhysics'); var pointer = this.body.functions.getPointer(event.center); @@ -40665,14 +40694,14 @@ return /******/ (function(modules) { // webpackBootstrap } this.body.emitter.emit('_redraw'); } - }, { - key: '_controlNodeDragEnd', /** * connecting or restoring the control nodes. * @param event * @private */ + }, { + key: '_controlNodeDragEnd', value: function _controlNodeDragEnd(event) { var pointer = this.body.functions.getPointer(event.center); var pointerObj = this.selectionHandler._pointerToPositionObject(pointer); @@ -40705,8 +40734,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.body.emitter.emit('_redraw'); } - }, { - key: '_handleConnect', // ------------------------------------ END OF EDIT EDGE FUNCTIONS -----------------------------------------// @@ -40717,6 +40744,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_handleConnect', value: function _handleConnect(event) { // check to avoid double fireing of this function. if (new Date().valueOf() - this.touchTime > 100) { @@ -40772,14 +40801,14 @@ return /******/ (function(modules) { // webpackBootstrap this.body.view.translation = { x: this.lastTouch.translation.x + diffX, y: this.lastTouch.translation.y + diffY }; } } - }, { - key: '_finishConnect', /** * Connect the new edge to the target if one exists, otherwise remove temp line * @param event * @private */ + }, { + key: '_finishConnect', value: function _finishConnect(event) { var pointer = this.body.functions.getPointer(event.center); var pointerObj = this.selectionHandler._pointerToPositionObject(pointer); @@ -40816,8 +40845,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.body.emitter.emit('_redraw'); } - }, { - key: '_performAddNode', // --------------------------------------- END OF ADD EDGE FUNCTIONS -------------------------------------// @@ -40826,6 +40853,8 @@ return /******/ (function(modules) { // webpackBootstrap /** * Adds a node on the specified location */ + }, { + key: '_performAddNode', value: function _performAddNode(clickData) { var _this5 = this; @@ -40854,14 +40883,14 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: '_performAddEdge', /** * connect two nodes with a new edge. * * @private */ + }, { + key: '_performAddEdge', value: function _performAddEdge(sourceNodeId, targetNodeId) { var _this6 = this; @@ -40885,14 +40914,14 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: '_performEditEdge', /** * connect two nodes with a new edge. * * @private */ + }, { + key: '_performEditEdge', value: function _performEditEdge(sourceNodeId, targetNodeId) { var _this7 = this; @@ -41418,6 +41447,7 @@ return /******/ (function(modules) { // webpackBootstrap solver: ['barnesHut', 'forceAtlas2Based', 'repulsion', 'hierarchicalRepulsion'], timestep: [0.5, 0.01, 1, 0.01] }, + //adaptiveTimestep: true global: { locale: ['en', 'nl'] } @@ -41425,7 +41455,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.allOptions = allOptions; exports.configureOptions = configureOptions; - //adaptiveTimestep: true /***/ }, /* 112 */ @@ -41473,13 +41502,13 @@ return /******/ (function(modules) { // webpackBootstrap this.distanceSolver = new _componentsAlgorithmsFloydWarshallJs2["default"](); } + /** + * Not sure if needed but can be used to update the spring length and spring constant + * @param options + */ + _createClass(KamadaKawai, [{ key: "setOptions", - - /** - * Not sure if needed but can be used to update the spring length and spring constant - * @param options - */ value: function setOptions(options) { if (options) { if (options.springLength) { @@ -41490,14 +41519,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "solve", /** * Position the system * @param nodesArray * @param edgesArray */ + }, { + key: "solve", value: function solve(nodesArray, edgesArray) { var ignoreClusters = arguments.length <= 2 || arguments[2] === undefined ? false : arguments[2]; @@ -41552,14 +41581,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_getHighestEnergyNode", /** * get the node with the highest energy * @returns {*[]} * @private */ + }, { + key: "_getHighestEnergyNode", value: function _getHighestEnergyNode(ignoreClusters) { var nodesArray = this.body.nodeIndices; var nodes = this.body.nodes; @@ -41591,8 +41620,6 @@ return /******/ (function(modules) { // webpackBootstrap return [maxEnergyNodeId, maxEnergy, dE_dx_max, dE_dy_max]; } - }, { - key: "_getEnergy", /** * calculate the energy of a single node @@ -41600,6 +41627,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*[]} * @private */ + }, { + key: "_getEnergy", value: function _getEnergy(m) { var nodesArray = this.body.nodeIndices; var nodes = this.body.nodes; @@ -41622,8 +41651,6 @@ return /******/ (function(modules) { // webpackBootstrap var delta_m = Math.sqrt(Math.pow(dE_dx, 2) + Math.pow(dE_dy, 2)); return [delta_m, dE_dx, dE_dy]; } - }, { - key: "_moveNode", /** * move the node based on it's energy @@ -41633,6 +41660,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param dE_dy * @private */ + }, { + key: "_moveNode", value: function _moveNode(m, dE_dx, dE_dy) { var nodesArray = this.body.nodeIndices; var nodes = this.body.nodes; @@ -41668,14 +41697,14 @@ return /******/ (function(modules) { // webpackBootstrap nodes[m].x += dx; nodes[m].y += dy; } - }, { - key: "_createL_matrix", /** * Create the L matrix: edge length times shortest path * @param D_matrix * @private */ + }, { + key: "_createL_matrix", value: function _createL_matrix(D_matrix) { var nodesArray = this.body.nodeIndices; var edgeLength = this.springLength; @@ -41688,14 +41717,14 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_createK_matrix", /** * Create the K matrix: spring constants times shortest path * @param D_matrix * @private */ + }, { + key: "_createK_matrix", value: function _createK_matrix(D_matrix) { var nodesArray = this.body.nodeIndices; var edgeStrength = this.springConstant; @@ -42422,10 +42451,10 @@ return /******/ (function(modules) { // webpackBootstrap if (token === 'false') { token = false; // convert to boolean } else if (token === 'true') { - token = true; // convert to boolean - } else if (!isNaN(Number(token))) { - token = Number(token); // convert to number - } + token = true; // convert to boolean + } else if (!isNaN(Number(token))) { + token = Number(token); // convert to number + } tokenType = TOKENTYPE.IDENTIFIER; return; } @@ -42567,8 +42596,8 @@ return /******/ (function(modules) { // webpackBootstrap getToken(); // TODO: implement comma separated list with "a_list: ID=ID [','] [a_list] " } else { - parseNodeStatement(graph, id); - } + parseNodeStatement(graph, id); + } } /** @@ -43074,13 +43103,13 @@ return /******/ (function(modules) { // webpackBootstrap this.callback = callback; } + /** + * @param {string} url The Url to cache the image as + * @return {Image} imageToLoadBrokenUrlOn The image object + */ + _createClass(Images, [{ key: "_addImageToCache", - - /** - * @param {string} url The Url to cache the image as - * @return {Image} imageToLoadBrokenUrlOn The image object - */ value: function _addImageToCache(url, imageToCache) { // IE11 fix -- thanks dponch! if (imageToCache.width === 0) { @@ -43092,14 +43121,14 @@ return /******/ (function(modules) { // webpackBootstrap this.images[url] = imageToCache; } - }, { - key: "_tryloadBrokenUrl", /** * @param {string} url The original Url that failed to load, if the broken image is successfully loaded it will be added to the cache using this Url as the key so that subsequent requests for this Url will return the broken image * @param {string} brokenUrl Url the broken image to try and load * @return {Image} imageToLoadBrokenUrlOn The image object */ + }, { + key: "_tryloadBrokenUrl", value: function _tryloadBrokenUrl(url, brokenUrl, imageToLoadBrokenUrlOn) { var _this = this; @@ -43116,25 +43145,25 @@ return /******/ (function(modules) { // webpackBootstrap //Set the source of the image to the brokenUrl, this is actually what kicks off the loading of the broken image imageToLoadBrokenUrlOn.src = brokenUrl; } - }, { - key: "_redrawWithImage", /** * @return {Image} imageToRedrawWith The images that will be passed to the callback when it is invoked */ + }, { + key: "_redrawWithImage", value: function _redrawWithImage(imageToRedrawWith) { if (this.callback) { this.callback(imageToRedrawWith); } } - }, { - key: "load", /** * @param {string} url Url of the image * @param {string} brokenUrl Url of an image to use if the url image is not found * @return {Image} img The image object */ + }, { + key: "load", value: function load(url, brokenUrl, id) { var _this2 = this; diff --git a/dist/vis.map b/dist/vis.map index 6a7bfa1e..e2abd08d 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Images","dotparser","gephiParser","allOptions","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","moment","Hammer","keycharm","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","obj","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","extend","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","copyConfig","to","from","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","Locale","normalizeLocale","toLowerCase","chooseLocale","names","j","next","loadLocale","name","oldLocale","locales","globalLocale","_abbr","code","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","set","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","output","Function","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","isFunction","sth","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","l","string","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","M","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","day","local__createLocal","add","week","dayOfYear","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","weekday","week1Jan","janX","getUTCDay","getSetDayOfYear","round","clone","startOf","defaults","currentDateArray","now","_useUTC","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","args","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matches","chunk","chunkOffset","cloneWithOffset","model","diff","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","formats","sod","calendar","inputMs","endOf","isBetween","isSame","asFloat","delta","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","getter","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","source","lists__get","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","iso_string__abs","Y","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","update","updatedIds","updatedData","addOrUpdate","_updateItem","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","getIds","getDataSet","mappedItems","filteredItem","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","_ids","_onEvent","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","setArmRotation","setArmLength","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","axisColor","gridColor","dataColor","fill","stroke","strokeWidth","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","getNumberOfColumns","getNumberOfRows","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","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","distance","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","cross","topSideVisible","zAvg","lineJoin","lineCap","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","_getStrokeWidth","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","throttleRedraw","orientation","axis","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Core","Configurator","Validator","printStyle","configureOptions","_createConfigurator","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","initialLoad","getItemRange","setWindow","animation","fit","focus","itemData","_this","getDataRange","minItem","maxItem","factor","lhs","rhs","getStart","getEnd","show","getWidthLeft","getWidthRight","dataset","centerContainer","itemFromTarget","group","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","srcEvent","pageY","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","_handled","stopped","stopPropagation","firstTarget","_handlers","Manager","PropagatingHammer","o","wrapper","pointerType","isFirst","handler","eventType","exportName","setTimeoutContext","bindFn","invokeArrayArg","arg","each","iterator","dest","src","merge","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","str","find","inArray","findByKey","uniqueArray","results","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","force","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","__webpack_amd_options__","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","done","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","zoomKey","pointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","onTouch","isTouching","onRelease","isReleasing","offTouch","offRelease","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","startDate","endDate","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","hammerUtil","Activator","onMouseWheel","isActive","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","scrollTop","scrollTopMin","customTimes","redrawCount","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","_origRedraw","active","_stopAutoResize","setCustomTime","getCustomTime","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","MAX_REDRAWS","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","editable","updateTime","updateGroup","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","groupTouchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","groupHammer","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","addCallback","dirty","displayed","hide","unselect","select","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","selected","_removeItem","groupData","groupOptions","oldGroupId","oldSubGroupId","subgroup","oldGroup","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","initialX","dragLeft","_cloneItemData","dragRight","selectedItem","baseGroupIndex","groupIndex","groupOffset","ctrlKey","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","updateTimeAllowed","initialStart","initialEnd","newOffset","_moveToGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","shiftKey","oldSelection","newSelection","newItemData","_getItemRange","_item","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","currentWeek","currentMonth","currentYear","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","title","getLabelWidth","markerHeight","lastMarkerHeight","limitSize","repositionX","customOrderedItems","_updateVisibleItems","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","itemIndex","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","iMax","collidingItem","jj","collision","newTop","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","groupChanged","deleteButton","template","_contentToString","removeAttribute","dataAttributes","attributes","setAttribute","outerHTML","itemSetHeight","marginLeft","onTop","itemSubgroup","totalHeight","newHeight","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","labelMinor","xFirstMajorLabel","labelFits","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","display","unbind","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","eventParams","drag","warned","substring","showCurrentTime","currentTimeTimer","_interopRequireDefault","__esModule","default","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","_showPopupIfNeeded","path","_arguments","_this2","_len","_key","_ret2","div","objectLabel","selectedValue","_update","_makeLabel","err","popupString","popupValue","oninput","_setupPopup","_this3","html","hideTimeout","deleteTimeout","_this4","correspondingElement","checkbox","checked","_this5","defaultColor","_showColorPicker","_this6","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","_bindHammer","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","rgbObj","alpha","_setColor","_generateHueCircle","storePrevious","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newLeft","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","matrix","boolean","any","function","null","groupsDraggable","linegraph","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","icons","alignZeros","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","svgElements","groupsUsingDefaultStyles","COUNTER","svg","framework","BarFunctions","_updateAllGroupData","_updateGroup","removeGroup","addGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getData","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","lineOffset","stepPixels","zeroCrossing","amountOfSteps","tempGroups","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","convertValue","setZeroPosition","linegraphOptions","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","groupArray","drawIcon","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","stepSize","marginRange","valueAtBottom","marginEnd","maxLabelSize","stepIndex","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","customRange","formattingFunction","marginStart","deadSpace","majorSteps","minorSteps","setFirst","safeRange","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","niceStart","niceEnd","rounded","previous","steps","usingDefaultStyle","zeroPosition","Line","Bar","Points","SVGcontainer","fillPath","fillHeight","outline","barWidth","bar1Height","bar2Height","icon","combinedData","groupLabel","intersections","_getDataIntersections","_getStackedYRange","accumulatedNegative","accumulatedPositive","xpos","coreDistance","amount","resolved","_catmullRom","_linear","dFill","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","A","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","getGroupTemplate","callbackResult","getCallback","Bargraph","drawData","barPoints","heightOffset","_getSafeDrawData","nextKey","prevKey","pointData","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","_modulesGroups2","_modulesCanvas2","selectionHandler","_modulesSelectionHandler2","interactionHandler","_modulesInteractionHandler2","_modulesView2","renderer","_modulesCanvasRenderer2","_modulesPhysicsEngine2","layoutEngine","_modulesLayoutEngine2","clustering","_modulesClustering2","manipulation","_modulesManipulationSystem2","nodesHandler","_modulesNodesHandler2","edgesHandler","_modulesEdgesHandler2","_modulesKamadaKawaiJs2","_modulesGroups","_modulesNodesHandler","_modulesEdgesHandler","_modulesPhysicsEngine","_modulesClustering","_modulesCanvasRenderer","_modulesCanvas","_modulesView","_modulesInteractionHandler","_modulesSelectionHandler","_modulesLayoutEngine","_modulesManipulationSystem","_sharedConfigurator","_sharedConfigurator2","_sharedValidator","_sharedValidator2","_optionsJs","_modulesKamadaKawaiJs","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","updatePhysicsData","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","Groups","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_componentsNode","_componentsNode2","_componentsSharedLabel","_componentsSharedLabel2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","image","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shape","shapeProperties","borderDashes","useImageSize","parseOptions","updateShape","updateLabelModule","_reset","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","constructorClass","clearPositions","dataArray","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_sharedLabel","_sharedLabel2","_nodesShapesBox","_nodesShapesBox2","_nodesShapesCircle","_nodesShapesCircle2","_nodesShapesCircularImage","_nodesShapesCircularImage2","_nodesShapesDatabase","_nodesShapesDatabase2","_nodesShapesDiamond","_nodesShapesDiamond2","_nodesShapesDot","_nodesShapesDot2","_nodesShapesEllipse","_nodesShapesEllipse2","_nodesShapesIcon","_nodesShapesIcon2","_nodesShapesImage","_nodesShapesImage2","_nodesShapesSquare","_nodesShapesSquare2","_nodesShapesStar","_nodesShapesStar2","_nodesShapesText","_nodesShapesText2","_nodesShapesTriangle","_nodesShapesTriangle2","_nodesShapesTriangleDown","_nodesShapesTriangleDown2","Node","imagelist","grouplist","globalOptions","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","groupObj","imageObj","load","distanceToBorder","sizeDiff","fontDiff","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","_slicedToArray","sliceIterator","_arr","_n","_e","_s","Symbol","Label","pointToSelf","fontOptions","yLine","nodeOptions","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor2","_getColor","_getColor22","fontColor","_setAlignment2","_setAlignment","_setAlignment22","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_inherits","subClass","superClass","__proto__","_get","_x","_x2","_x3","_again","receiver","desc","getOwnPropertyDescriptor","getPrototypeOf","_utilNodeBase","_utilNodeBase2","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","roundRect","enableShadow","disableShadow","save","enableBorderDashes","disableBorderDashes","restore","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","_utilCircleImageBase","_utilCircleImageBase2","Circle","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","imageLoaded","ratio","networkScaleInv","globalAlpha","drawImage","labelDimensions","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","Database","database","_utilShapeBase","_utilShapeBase2","Diamond","_ShapeBase","_resizeShape","_drawShape","ShapeBase","sizeMultiplier","Dot","Ellipse","ellipse","Icon","_icon","iconTextSpacing","Image","Square","Star","Text","Triangle","TriangleDown","_componentsEdge","_componentsEdge2","EdgesHandler","edgesListeners","arrows","scaleFactor","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","edgeType","colorDirty","_edgesCubicBezierEdge","_edgesCubicBezierEdge2","_edgesBezierEdgeDynamic","_edgesBezierEdgeDynamic2","_edgesBezierEdgeStatic","_edgesBezierEdgeStatic2","_edgesStraightEdge","_edgesStraightEdge2","Edge","baseWidth","connected","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","via","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_x4","_x5","_utilCubicBezierEdgeBase","_utilCubicBezierEdgeBase2","CubicBezierEdge","_CubicBezierEdgeBase","_getViaCoordinates2","_getViaCoordinates","_getViaCoordinates22","via1","via2","bezierCurveTo","x1","y1","x2","y2","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref32","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData22","_circle","pattern","lineDashOffset","_getCircleData3","_getCircleData32","dashedLine","_getCircleData4","_getCircleData42","_findBorderPosition","_findBorderPositionCircle","_getCircleData5","_getCircleData52","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData6","_getCircleData62","px","py","something","u","arrowPos","guideOffset","findBorderPosition","guidePos","arrow","_angle","_getCircleData7","_getCircleData72","_length","_utilBezierEdgeBase","_utilBezierEdgeBase2","BezierEdgeDynamic","_boundFunction","positionBezierNode","setupSupportNode","parentEdgeId","quadraticCurveTo","_x6","BezierEdgeStatic","xVia","yVia","pi","originalAngle","myAngle","_utilEdgeBase","_utilEdgeBase2","StraightEdge","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_componentsPhysicsBarnesHutSolver","_componentsPhysicsBarnesHutSolver2","_componentsPhysicsRepulsionSolver","_componentsPhysicsRepulsionSolver2","_componentsPhysicsHierarchicalRepulsionSolver","_componentsPhysicsHierarchicalRepulsionSolver2","_componentsPhysicsSpringSolver","_componentsPhysicsSpringSolver2","_componentsPhysicsHierarchicalSpringSolver","_componentsPhysicsHierarchicalSpringSolver2","_componentsPhysicsCentralGravitySolver","_componentsPhysicsCentralGravitySolver2","_componentsPhysicsFA2BasedRepulsionSolver","_componentsPhysicsFA2BasedRepulsionSolver2","_componentsPhysicsFA2BasedCentralGravitySolver","_componentsPhysicsFA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","calculateForces","moveNodes","revert","_evaluateStepQuality","nodeIds","positions","vx","vy","dpos","reference","maxNodeVelocity","averageNodeVelocity","velocityAdaptiveThreshold","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","BarnesHutSolver","barnesHutTree","randomSeed","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minX","minY","maxX","maxY","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","_BarnesHutSolver2","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_CentralGravitySolver","_componentsNodesCluster","_componentsNodesCluster2","ClusterEngine","clusteredNodes","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","_cloneOptions","hiddenByCluster","_cluster","edgeCount","clusters","usedNodes","visibleEdges","gatheringSuccessful","childNodeId","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","amountOfConnections","clusterEdgeProperties","childNode","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","processProperties","childNodesOptions","childEdgesOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","clusterNodeId","releaseFunction","clusterPosition","newPositions","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","nodesArray","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","_Node2","_Node3","Cluster","_Node","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","Canvas","resizeTimer","resizeFunction","cameraState","hammerFrame","_cleanUp","previousWidth","currentViewCenter","distanceFromCenter","tabIndex","_prepareValue","emitEvent","oldWidth","oldHeight","previousRation","_getCameraState","_setCameraState","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","_NetworkUtil","_NetworkUtil2","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","_getRange","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NetworkUtil","allNodes","specificNodes","_componentsNavigationHandler","_componentsNavigationHandler2","_componentsPopup","_componentsPopup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdgesCount","selectedNodesCount","currentSelection","_determineIfDifferent2","_determineIfDifferent","nodesChanges","edgesChanges","nodeSelected","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","Popup","doShow","SelectionHandler","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","optionsBackup","improvedLayout","hierarchical","levelSeparation","sortMethod","hierarchicalLevels","setupHierarchicalLayout","layoutNetwork","prevHierarchicalState","adaptAllOptions","MAX_LEVELS","levels","clusterThreshold","startLength","before","clusterBridges","after","_declusterAll","info","kamadaKawai","_shiftToCenter","_getRangeCore","clustersPresent","definedLevel","undefinedLevel","nodeSpacing","_determineLevelsByHubsize","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","positionedNodes","_placeBranchNodes","hubSize","_setLevelByHubsize","minLevel","_setLevelDirected","parentId","parentLevel","childNodeLevel","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","addNode","addEdge","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_this7","_componentsAlgorithmsFloydWarshallJs","_componentsAlgorithmsFloydWarshallJs2","KamadaKawai","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","innerThreshold","maxInnerIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode22","_moveNode","_getEnergy2","_getEnergy","_getEnergy22","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy3","_getEnergy32","x_m","y_m","iIdx","x_i","y_i","denominator","K_matrix","L_matrix","d2E_dx2","d2E_dxdy","d2E_dy2","FloydWarshall","k","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","r2d","kappa","ox","oy","xe","ye","xm","ym","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","first","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","graphs","attr","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","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","imageBroken","url","imageToCache","brokenUrl","imageToLoadBrokenUrlOn","onerror","_addImageToCache","imageToRedrawWith","cachedImage","img","onload","_redrawWithImage","_tryloadBrokenUrl","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Images","dotparser","gephiParser","allOptions","convertDot","input","DOTToGraph","convertGephi","options","parseGephi","moment","Hammer","keycharm","uuid","isNumber","object","Number","recursiveDOMDelete","DOMobject","hasChildNodes","firstChild","removeChild","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","randomUUID","v4","assignAllKeys","obj","prop","hasOwnProperty","fillIfDefined","a","b","allowDeletion","arguments","length","undefined","protoExtend","i","other","extend","selectiveExtend","props","Array","isArray","Error","selectiveDeepExtend","TypeError","constructor","Object","deepExtend","selectiveNotDeepExtend","indexOf","push","equalArray","len","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","copyAndExtendArray","arr","newValue","newArr","copyArray","getAbsoluteLeft","elem","getBoundingClientRect","left","getAbsoluteTop","top","addClassName","className","classes","split","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","throttle","fn","wait","timeout","needExecution","throttled","setTimeout","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","window","returnValue","getTarget","target","srcElement","nodeType","parentNode","hasParent","parent","e","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","hexToRGB","hex","shorthandRegex","replace","r","g","result","parseInt","overrideOpacity","color","opacity","rgb","substr","RGBToHex","red","green","blue","toString","slice","parseColor","isValidRGB","map","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","RGBToHSV","minRGB","maxRGB","d","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","floor","f","q","t","isOk","test","isValidRGBA","rgba","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","globalOptions","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easingFunctions","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","global","utils_hooks__hooks","hookCallback","apply","setHookCallback","prototype","res","hasOwnProp","create_utc__createUTC","format","locale","strict","createLocalOrUTC","utc","defaultParsingFlags","empty","unusedTokens","unusedInput","overflow","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","getParsingFlags","_pf","valid__isValid","_isValid","flags","_d","getTime","invalidWeekday","_strict","bigHour","valid__createInvalid","NaN","copyConfig","to","from","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","absFloor","number","ceil","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","array1","array2","dontConvert","lengthDiff","abs","diffs","Locale","normalizeLocale","toLowerCase","chooseLocale","names","j","next","loadLocale","name","oldLocale","locales","globalLocale","_abbr","code","locale_locales__getSetGlobalLocale","values","data","locale_locales__getLocale","defineLocale","abbr","set","addUnitAlias","unit","shorthand","lowerCase","aliases","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","makeGetSet","keepTime","get_set__set","get_set__get","mom","getSet","zeroFill","targetLength","forceSign","absNumber","zerosToFill","sign","pow","addFormatToken","token","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","output","Function","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","isFunction","sth","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p1","p2","p3","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","year","month","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","setMonth","dayOfMonth","monthsParse","date","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","console","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","l","string","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","y","M","ms","setFullYear","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","end","daysToDayOfWeek","day","local__createLocal","add","week","dayOfYear","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","weekday","week1Jan","janX","getUTCDay","getSetDayOfYear","round","clone","startOf","defaults","currentDateArray","now","_useUTC","getUTCFullYear","getUTCMonth","getFullYear","getMonth","getDate","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","w","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","hour","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","minute","second","millisecond","createFromConfig","prepareConfig","preparse","configFromInput","isUTC","pickBy","moments","args","Duration","duration","years","quarters","quarter","weeks","days","hours","minutes","seconds","milliseconds","_milliseconds","_days","_data","_bubble","isDuration","offset","separator","utcOffset","offsetFromString","matches","chunk","chunkOffset","cloneWithOffset","model","diff","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","subtract","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","_isDSTShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","parseFloat","positiveMomentsDifference","base","isAfter","isBefore","createAdder","direction","period","dur","tmp","isAdding","moment_calendar__calendar","time","formats","sod","calendar","inputMs","endOf","isBetween","isSame","asFloat","delta","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","anchor","moment_format__toISOString","inputString","defaultFormat","postformat","withoutSuffix","humanize","fromNow","toNow","newLocaleData","isoWeekday","to_type__valueOf","unix","toObject","moment_valid__isValid","parsingFlags","invalidAt","addWeekYearFormatToken","getter","weeksInYear","getSetWeekYear","getSetISOWeekYear","getISOWeeksInYear","getWeeksInYear","weekInfo","getSetQuarter","parseWeekday","weekdaysParse","localeWeekdays","_weekdays","localeWeekdaysShort","_weekdaysShort","localeWeekdaysMin","_weekdaysMin","localeWeekdaysParse","weekdayName","_weekdaysParse","weekdays","weekdaysShort","weekdaysMin","getSetDayOfWeek","getDay","getSetLocaleDayOfWeek","getSetISODayOfWeek","lowercase","matchMeridiem","_meridiemParse","localeIsPM","charAt","localeMeridiem","isLower","parseMs","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","formatUpper","toUpperCase","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","locale_set__set","_ordinalParseLenient","_ordinalParse","source","lists__get","setter","list","count","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","duration_abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","absCeil","bubble","monthsFromDays","monthsToDays","daysToMonths","as","duration_as__valueOf","makeAs","alias","duration_get__get","makeGetter","substituteTimeAgo","relativeTime","duration_humanize__relativeTime","posNegDuration","thresholds","duration_humanize__getSetRelativeTimeThreshold","threshold","limit","withSuffix","iso_string__toISOString","iso_string__abs","Y","D","asSeconds","match1","match2","match3","match4","match6","match1to2","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchTimestamp","matchWord","defaultLocaleMonths","defaultLocaleMonthsShort","parseTwoDigitYear","getSetYear","defaultLocaleWeek","prototypeMin","prototypeMax","add_subtract__add","add_subtract__subtract","lang","isoWeekYear","getSetDayOfMonth","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","get","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","dates","zone","momentPrototype","defaultCalendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","defaultLongDateFormat","LTS","LT","L","LL","LLL","LLLL","defaultInvalidDate","defaultOrdinal","defaultOrdinalParse","defaultRelativeTime","future","past","mm","hh","dd","MM","yy","prototype__proto","firstDayOfYear","ordinalParse","langData","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","webpackPolyfill","paths","children","webpackContext","req","resolve","buf","ii","oct","_hexToByte","unparse","bth","_byteToHex","v1","clockseq","_clockseq","msecs","nsecs","_lastNSecs","dt","_lastMSecs","tl","tmh","node","_nodeId","n","rnds","random","rng","_rng","globalVar","crypto","getRandomValues","_rnds8","Uint8Array","_rnds","_seedBytes","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","groupTemplate","labelObj","point","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","_options","_fieldId","fieldId","_type","_subscribers","setOptions","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","update","updatedIds","updatedData","addOrUpdate","_updateItem","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","getIds","getDataSet","mappedItems","filteredItem","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","fieldType","exists","types","raw","converted","JSON","stringify","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","context","entry","clearTimeout","_ids","_onEvent","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","setArmRotation","setArmLength","eye","dataTable","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","axisColor","gridColor","dataColor","fill","stroke","strokeWidth","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","getNumberOfColumns","getNumberOfRows","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","position","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","distance","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","start","getCurrent","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","prettyStep","text","xText","yText","zText","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","cross","topSideVisible","zAvg","lineJoin","lineCap","transBottom","dist","sortDepth","aDiff","bDiff","crossproduct","crossProduct","_getStrokeWidth","radius","arc","PI","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","mixin","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","listeners","hasListeners","sub","sum","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","getValue","dataView","progress","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","throttleRedraw","orientation","axis","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Core","Configurator","Validator","printStyle","configureOptions","_createConfigurator","markDirty","refreshItems","errorFound","validate","selection","getSelection","setSelection","newDataSet","initialLoad","getItemRange","setWindow","animation","fit","focus","itemData","_this","getDataRange","minItem","maxItem","factor","lhs","rhs","getStart","getEnd","show","getWidthLeft","getWidthRight","dataset","centerContainer","itemFromTarget","group","groupFromTarget","customTime","customTimeFromTarget","snap","snappedTime","what","foreground","labelSet","groupId","pageX","srcEvent","pageY","propagating","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_firstTarget","hammer","events","propagatedHandler","_handled","stopped","stopPropagation","firstTarget","_handlers","Manager","PropagatingHammer","o","wrapper","pointerType","isFirst","handler","eventType","exportName","setTimeoutContext","bindFn","invokeArrayArg","arg","each","iterator","dest","src","merge","inherit","child","properties","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","splitStr","removeEventListeners","inStr","str","find","inArray","findByKey","uniqueArray","results","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","enable","init","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","angle","getAngle","getDistance","computeDeltaXY","offsetDirection","getDirection","deltaX","deltaY","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocity","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","atan2","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","touches","changed","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","touch","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","gesture","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","reset","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","VERSION","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","force","curRecognizer","existing","Tap","Pan","Swipe","Pinch","Rotate","Press","__webpack_amd_options__","deltaDifference","scaleOffset","startToFront","endToFront","moveable","zoomable","zoomMin","zoomMax","animationTimer","_onDragStart","_onDrag","_onDragEnd","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","byUser","finalStart","finalEnd","_cancelAnimation","initStart","initEnd","easingName","easingFunction","initTime","anyChanged","dragging","ease","done","_applyRange","updateHiddenDates","newStart","newEnd","getRange","conversion","totalHidden","previousDelta","_isInsideRange","allowDragging","getHiddenDurationBetween","diffRange","safeStart","snapAwayFromHidden","safeEnd","zoomKey","pointer","pointerDate","_pointerToDate","zoom","centerDate","hiddenDuration","hiddenDurationBefore","getHiddenDurationBefore","hiddenDurationAfter","move","onTouch","isTouching","onRelease","isReleasing","offTouch","offRelease","_isResized","resized","_previousWidth","_previousHeight","convertHiddenOptions","repeat","dateItem","totalRange","pixelTime","startDate","endDate","runUntil","dayOffset","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","safeDates","printDates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","switchedYear","switchedMonth","switchedDay","correctTimeForHidden","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","timeOffset","requiredDuration","previousPoint","correctionEnabled","hammerUtil","Activator","onMouseWheel","isActive","backgroundVertical","backgroundHorizontal","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","scrollTop","scrollTopMin","customTimes","redrawCount","drawPoints","onRender","clickToUse","activator","_initAutoResize","component","configurator","configure","appliedOptions","setModuleOptions","_origRedraw","active","_stopAutoResize","setCustomTime","getCustomTime","addCustomTime","timestamp","some","removeCustomTime","getVisibleItems","getWindow","borderRootHeight","borderRootWidth","autoHeight","containerHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","visibility","MAX_REDRAWS","repaint","setCurrentTime","getCurrentTime","_startAutoResize","_onResize","lastWidth","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","align","groupOrderSwap","fromGroup","toGroup","targetOrder","groupOrder","selectable","multiselect","editable","updateTime","updateGroup","groupEditable","onAdd","onUpdate","onMove","onRemove","onMoving","onAddGroup","onMoveGroup","onRemoveGroup","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","stackDirty","touchParams","groupTouchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","groupHammer","_onGroupDragStart","_onGroupDrag","_onGroupDragEnd","addCallback","dirty","displayed","hide","unselect","select","rawVisibleItems","visibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","restack","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","removeItem","_getType","selected","_removeItem","groupData","groupOptions","oldGroupId","oldSubGroupId","subgroup","oldGroup","_constructByEndArray","endArray","dragLeftItem","dragRightItem","itemProps","_getGroupIndex","initialX","dragLeft","_cloneItemData","dragRight","selectedItem","baseGroupIndex","groupIndex","groupOffset","ctrlKey","metaKey","_onDragStartAddItem","xAbs","newItem","offsetLeft","updateGroupAllowed","newGroupBase","initial","updateTimeAllowed","initialStart","initialEnd","newOffset","_moveToGroup","originalOrder","movingUp","targetGroupTop","draggedGroupHeight","targetGroupHeight","targetGroup","draggedGroup","newOrder","origOrder","draggedId","numGroups","curPos","orgOffset","slippedPosition","switchGroup","shouldBeGroup","switchGroupId","shiftKey","oldSelection","newSelection","newItemData","_getItemRange","_item","itemSetFromTarget","minimumStep","autoScale","FORMAT","minorLabels","majorLabels","setMoment","setFormat","setMinimumStep","roundToMinor","hasNext","setScale","setAutoScale","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","isMajor","getLabelMinor","getLabelMajor","getClassName","even","today","currentWeek","currentMonth","currentYear","subgroups","subgroupIndex","subgroupOrderer","subgroupOrder","byStart","byEnd","checkRangedItems","inner","marker","Element","title","getLabelWidth","markerHeight","lastMarkerHeight","limitSize","repositionX","customOrderedItems","_updateVisibleItems","nostack","_calculateHeight","offsetTop","repositionY","resetSubgroups","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","itemIndex","removeFromDataSet","startArray","orderByStart","orderByEnd","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","isVisible","EPSILON","aTime","bTime","iMax","collidingItem","jj","collision","newTop","baseClassName","_updateContents","_updateTitle","_updateDataAttributes","_updateStyle","getComputedStyle","maxWidth","_repaintDeleteButton","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","groupChanged","deleteButton","template","_contentToString","removeAttribute","dataAttributes","attributes","setAttribute","outerHTML","itemSetHeight","marginLeft","onTop","itemSubgroup","totalHeight","newHeight","lines","majorTexts","minorTexts","lineTop","showMinorLabels","showMajorLabels","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","labelMinor","xFirstMajorLabel","labelFits","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","majorCharWidth","pop","createTextNode","childNodes","nodeValue","measureCharMinor","measureCharMajor","overlay","_onTapOverlay","onClick","_hasParent","deactivate","escListener","activate","display","unbind","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","eventParams","drag","warned","substring","showCurrentTime","currentTimeTimer","_interopRequireDefault","__esModule","default","_classCallCheck","instance","Constructor","defineProperty","_createClass","defineProperties","descriptor","enumerable","configurable","writable","protoProps","staticProps","_ColorPicker","_ColorPicker2","parentModule","defaultContainer","pixelRatio","changedOptions","allowCreation","initialized","popupCounter","showButton","moduleOptions","domElements","popupDiv","popupLimit","popupHistory","colorPicker","_removePopup","_clean","_handleObject","_makeItem","_makeHeader","generateButton","_printOptions","onmouseover","onmouseout","optionsContainer","_push","insertTo","_showPopupIfNeeded","path","_arguments","_this2","_len","_key","_ret2","div","objectLabel","selectedValue","_update","_makeLabel","err","popupString","popupValue","oninput","_setupPopup","_this3","html","hideTimeout","deleteTimeout","_this4","correspondingElement","checkbox","checked","_this5","defaultColor","_showColorPicker","_this6","bodyRect","pickerX","pickerY","setColor","setCallback","colorString","checkOnly","visibleInSet","subObj","newPath","_getValue","_handleArray","_makeTextInput","_makeCheckbox","draw","physics","solver","enabledPath","enabledValue","error","_makeColorField","_makeDropdown","_makeRange","_constructOptions","optionsObj","getOptions","ColorPicker","generated","centerCoordinates","hueCircle","initialColor","previousColor","applied","updateCallback","_bindHammer","_setSize","htmlColors","black","navy","darkblue","mediumblue","darkgreen","teal","darkcyan","deepskyblue","darkturquoise","mediumspringgreen","lime","springgreen","aqua","cyan","midnightblue","dodgerblue","lightseagreen","forestgreen","seagreen","darkslategray","limegreen","mediumseagreen","turquoise","royalblue","steelblue","darkslateblue","mediumturquoise","indigo","darkolivegreen","cadetblue","cornflowerblue","mediumaquamarine","dimgray","slateblue","olivedrab","slategray","lightslategray","mediumslateblue","lawngreen","chartreuse","aquamarine","maroon","purple","olive","gray","skyblue","lightskyblue","blueviolet","darkred","darkmagenta","saddlebrown","darkseagreen","lightgreen","mediumpurple","darkviolet","palegreen","darkorchid","yellowgreen","sienna","brown","darkgray","lightblue","greenyellow","paleturquoise","lightsteelblue","powderblue","firebrick","darkgoldenrod","mediumorchid","rosybrown","darkkhaki","silver","mediumvioletred","indianred","peru","chocolate","tan","lightgrey","palevioletred","thistle","orchid","goldenrod","crimson","gainsboro","plum","burlywood","lightcyan","lavender","darksalmon","violet","palegoldenrod","lightcoral","khaki","aliceblue","honeydew","azure","sandybrown","wheat","beige","whitesmoke","mintcream","ghostwhite","salmon","antiquewhite","linen","lightgoldenrodyellow","oldlace","fuchsia","magenta","deeppink","orangered","tomato","hotpink","coral","darkorange","lightsalmon","orange","lightpink","pink","gold","peachpuff","navajowhite","moccasin","bisque","mistyrose","blanchedalmond","papayawhip","lavenderblush","seashell","cornsilk","lemonchiffon","floralwhite","snow","yellow","lightyellow","ivory","white","setInitial","htmlColor","_isColorString","rgbaArray","rgbObj","alpha","_setColor","_generateHueCircle","storePrevious","_hide","_updatePicker","alert","angleConvert","colorPickerSelector","colorPickerCanvas","pixelRation","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","putImageData","circle","brightnessRange","opacityRange","initialColorDiv","newColorDiv","colorPickerDiv","opacityDiv","brightnessDiv","arrowDiv","_setOpacity","_setBrightness","brightnessLabel","opacityLabel","cancelButton","applyButton","_apply","saveButton","_save","loadButton","_loadLast","pinch","_moveSelector","sat","hfac","sfac","fillRect","getImageData","centerY","centerX","newLeft","referenceOptions","subObject","usedOptions","check","__any__","getSuggestion","__type__","checkFields","referenceOption","refOptionObj","optionType","refOptionType","print","printLocation","localSearch","findInOptions","globalSearch","localSearchThreshold","globalSearchThreshold","indexMatch","closestMatch","recursive","closestMatchPath","lowerCaseOption","op","levenshteinDistance","matrix","boolean","any","function","null","groupsDraggable","linegraph","getLegend","isGroupVisible","yAxisLeft","yAxisRight","legendLeft","legendRight","screenToValue","yAxisOrientation","defaultGroup","sampling","graphHeight","shaded","barChart","sideBySide","interpolation","parametrization","dataAxis","icons","alignZeros","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","svgElements","groupsUsingDefaultStyles","COUNTER","svg","framework","BarFunctions","_updateAllGroupData","_updateGroup","removeGroup","addGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","sampledData","combinedDataLeft","combinedDataRight","getData","getYRange","getStackedYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","master","lineOffset","stepPixels","zeroCrossing","amountOfSteps","tempGroups","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","convertValue","setZeroPosition","linegraphOptions","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","labels","conversionFactor","minWidth","iconsRemoved","amountOfGroups","lineContainer","graphOptions","_redrawGroupIcons","iconHeight","iconOffset","groupArray","drawIcon","_cleanupIcons","activeGroups","_redrawLabels","_redrawTitle","stepSize","marginRange","valueAtBottom","marginEnd","maxLabelSize","stepIndex","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","invertedValue","convertedValue","characterHeight","largestWidth","textMinor","textMajor","textTitle","measureCharTitle","titleCharWidth","customRange","formattingFunction","marginStart","deadSpace","majorSteps","minorSteps","setFirst","safeRange","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","niceStart","niceEnd","rounded","previous","steps","usingDefaultStyle","zeroPosition","Line","Bar","Points","SVGcontainer","fillPath","fillHeight","outline","barWidth","bar1Height","bar2Height","icon","combinedData","groupLabel","intersections","_getDataIntersections","_getStackedYRange","accumulatedNegative","accumulatedPositive","xpos","coreDistance","amount","resolved","_catmullRom","_linear","dFill","_catmullRomUniform","p0","bp1","bp2","normalization","d1","d2","d3","A","N","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","getGroupTemplate","callbackResult","getCallback","Bargraph","drawData","barPoints","heightOffset","_getSafeDrawData","nextKey","prevKey","pointData","side","iconSize","iconSpacing","excludeFromLegend","textArea","scrollableHeight","drawLegendIcons","paddingTop","nodes","nodeIndices","edges","edgeIndices","eventListeners","onTap","onDoubleTap","onHold","onDragStart","onDrag","onDragEnd","onPinch","onMouseMove","onContext","functions","createNode","createEdge","view","bindEventListeners","images","_modulesGroups2","_modulesCanvas2","selectionHandler","_modulesSelectionHandler2","interactionHandler","_modulesInteractionHandler2","_modulesView2","renderer","_modulesCanvasRenderer2","_modulesPhysicsEngine2","layoutEngine","_modulesLayoutEngine2","clustering","_modulesClustering2","manipulation","_modulesManipulationSystem2","nodesHandler","_modulesNodesHandler2","edgesHandler","_modulesEdgesHandler2","_modulesKamadaKawaiJs2","_modulesGroups","_modulesNodesHandler","_modulesEdgesHandler","_modulesPhysicsEngine","_modulesClustering","_modulesCanvasRenderer","_modulesCanvas","_modulesView","_modulesInteractionHandler","_modulesSelectionHandler","_modulesLayoutEngine","_modulesManipulationSystem","_sharedConfigurator","_sharedConfigurator2","_sharedValidator","_sharedValidator2","_optionsJs","_modulesKamadaKawaiJs","layout","interaction","networkOptions","_updateVisibleIndices","nodeId","edgeId","updatePhysicsData","_updateValueRange","unselectAll","dotData","gephi","gephiData","valueTotal","setValueRange","canvasToDOM","DOMtoCanvas","findNode","isCluster","openCluster","cluster","getNodesInCluster","clusterByConnection","clusterByHubsize","clusterOutliers","getSeed","enableEditMode","disableEditMode","addNodeMode","editNode","editNodeMode","addEdgeMode","editEdgeMode","deleteSelected","getPositions","storePositions","moveNode","getBoundingBox","getConnectedNodes","objectId","getConnectedEdges","startSimulation","stopSimulation","stabilize","getSelectedNodes","getSelectedEdges","getNodeAt","getEdgeAt","edge","selectNodes","selectEdges","getViewPosition","releaseNode","getOptionsFromConfigurator","Groups","defaultIndex","groupsArray","defaultGroups","useDefaultGroups","optionFields","groupName","groupname","_componentsNode","_componentsNode2","_componentsSharedLabel","_componentsSharedLabel2","NodesHandler","nodesListeners","borderWidthSelected","brokenImage","fixed","face","strokeColor","image","labelHighlightBold","level","mass","scaling","maxVisible","drawThreshold","customScalingFunction","shadow","shape","shapeProperties","borderDashes","useImageSize","parseOptions","updateShape","updateLabelModule","_reset","doNotEmit","oldNodesData","newNodes","positionInitially","changedData","dataChanged","constructorClass","clearPositions","dataArray","boundingBox","nodeList","nodeObj","toId","fromId","edgeList","_sharedLabel","_sharedLabel2","_nodesShapesBox","_nodesShapesBox2","_nodesShapesCircle","_nodesShapesCircle2","_nodesShapesCircularImage","_nodesShapesCircularImage2","_nodesShapesDatabase","_nodesShapesDatabase2","_nodesShapesDiamond","_nodesShapesDiamond2","_nodesShapesDot","_nodesShapesDot2","_nodesShapesEllipse","_nodesShapesEllipse2","_nodesShapesIcon","_nodesShapesIcon2","_nodesShapesImage","_nodesShapesImage2","_nodesShapesSquare","_nodesShapesSquare2","_nodesShapesStar","_nodesShapesStar2","_nodesShapesText","_nodesShapesText2","_nodesShapesTriangle","_nodesShapesTriangle2","_nodesShapesTriangleDown","_nodesShapesTriangleDown2","Node","imagelist","grouplist","baseSize","baseFontSize","predefinedPosition","labelModule","currentShape","groupObj","imageObj","load","distanceToBorder","sizeDiff","fontDiff","updateBoundingBox","resize","parentOptions","newOptions","parsedColor","_slicedToArray","sliceIterator","_arr","_n","_e","_s","Symbol","Label","pointToSelf","fontOptions","yLine","nodeOptions","labelDirty","baseline","viewFontSize","calculateLabelSize","_drawBackground","_drawText","lineMargin","fontSize","_getColor2","_getColor","_getColor22","fontColor","_setAlignment2","_setAlignment","_setAlignment22","lineCount","strokeText","_processLabel","measureText","newOptionsArray","_inherits","subClass","superClass","setPrototypeOf","__proto__","_get","_x","_x2","_x3","_again","receiver","desc","getOwnPropertyDescriptor","getPrototypeOf","_utilNodeBase","_utilNodeBase2","Box","_NodeBase","textSize","getTextSize","selectionLineWidth","roundRect","enableShadow","disableShadow","save","enableBorderDashes","disableBorderDashes","restore","NodeBase","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","setLineDash","dashes","_utilCircleImageBase","_utilCircleImageBase2","Circle","_CircleImageBase","diameter","_drawRawCircle","CircleImageBase","labelOffset","imageLoaded","ratio","networkScaleInv","globalAlpha","drawImage","labelDimensions","CircularImage","_swapToImageResizeWhenImageLoaded","_resizeImage","clip","_drawImageAtPosition","_drawImageLabel","_distanceToBorder","Database","database","_utilShapeBase","_utilShapeBase2","Diamond","_ShapeBase","_resizeShape","_drawShape","ShapeBase","sizeMultiplier","Dot","Ellipse","ellipse","Icon","_icon","iconTextSpacing","Image","Square","Star","Text","Triangle","TriangleDown","_componentsEdge","_componentsEdge2","EdgesHandler","edgesListeners","arrows","scaleFactor","hoverWidth","selectionWidth","selfReferenceSize","smooth","forceDirection","roundness","emitChange","edgeData","edgeOptions","reconnectEdges","markAllEdgesAsDirty","updateEdgeType","oldEdgesData","edgesData","oldEdge","disconnect","showInternalIds","connect","cleanup","edgeType","colorDirty","_edgesCubicBezierEdge","_edgesCubicBezierEdge2","_edgesBezierEdgeDynamic","_edgesBezierEdgeDynamic2","_edgesBezierEdgeStatic","_edgesBezierEdgeStatic2","_edgesStraightEdge","_edgesStraightEdge2","Edge","baseWidth","connected","_setInteractionWidths","changeInType","attachEdge","detachEdge","widthDiff","via","drawLine","drawArrows","drawLabel","viaNode","drawArrowHead","node1","node2","getPoint","translate","_rotateForLabelAlignment","_pointOnCircle","xFrom","yFrom","xTo","yTo","xObj","yObj","getDistanceToEdge","angleInDegrees","rotate","percentage","colorsDefined","_x4","_x5","_utilCubicBezierEdgeBase","_utilCubicBezierEdgeBase2","CubicBezierEdge","_CubicBezierEdgeBase","_getViaCoordinates2","_getViaCoordinates","_getViaCoordinates22","via1","via2","bezierCurveTo","x1","y1","x2","y2","nearNode","_findBorderPositionBezier","x3","y3","_ref","_ref2","_getDistanceToBezierEdge","_ref3","_ref32","vec","_BezierEdgeBase2","_BezierEdgeBase3","CubicBezierEdgeBase","_BezierEdgeBase","minDistance","lastX","lastY","_getDistanceToLine","_EdgeBase2","_EdgeBase3","BezierEdgeBase","_EdgeBase","distanceToPoint","difference","EdgeBase","getColor","getLineWidth","_drawDashedLine","_drawLine","_line","_getCircleData2","_getCircleData","_getCircleData22","_circle","pattern","lineDashOffset","_getCircleData3","_getCircleData32","dashedLine","_getCircleData4","_getCircleData42","_findBorderPosition","_findBorderPositionCircle","_getCircleData5","_getCircleData52","colorOptions","grd","createLinearGradient","fromColor","toColor","addColorStop","_getDistanceToEdge","_getCircleData6","_getCircleData62","px","py","something","u","arrowPos","guideOffset","findBorderPosition","guidePos","arrow","_angle","_getCircleData7","_getCircleData72","_length","_utilBezierEdgeBase","_utilBezierEdgeBase2","BezierEdgeDynamic","_boundFunction","positionBezierNode","setupSupportNode","parentEdgeId","quadraticCurveTo","_x6","BezierEdgeStatic","xVia","yVia","pi","originalAngle","myAngle","_utilEdgeBase","_utilEdgeBase2","StraightEdge","edgeSegmentLength","toBorderDist","toBorderPoint","borderPos","_componentsPhysicsBarnesHutSolver","_componentsPhysicsBarnesHutSolver2","_componentsPhysicsRepulsionSolver","_componentsPhysicsRepulsionSolver2","_componentsPhysicsHierarchicalRepulsionSolver","_componentsPhysicsHierarchicalRepulsionSolver2","_componentsPhysicsSpringSolver","_componentsPhysicsSpringSolver2","_componentsPhysicsHierarchicalSpringSolver","_componentsPhysicsHierarchicalSpringSolver2","_componentsPhysicsCentralGravitySolver","_componentsPhysicsCentralGravitySolver2","_componentsPhysicsFA2BasedRepulsionSolver","_componentsPhysicsFA2BasedRepulsionSolver2","_componentsPhysicsFA2BasedCentralGravitySolver","_componentsPhysicsFA2BasedCentralGravitySolver2","PhysicsEngine","physicsBody","physicsNodeIndices","physicsEdgeIndices","forces","velocities","physicsEnabled","simulationInterval","requiresTimeout","previousStates","referenceState","freezeCache","renderTimer","adaptiveTimestep","adaptiveTimestepEnabled","adaptiveCounter","adaptiveInterval","stabilized","startedStabilization","stabilizationIterations","ready","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","avoidOverlap","forceAtlas2Based","repulsion","nodeDistance","hierarchicalRepulsion","maxVelocity","minVelocity","stabilization","iterations","updateInterval","onlyDynamicEdges","timestep","layoutFailed","initPhysics","nodesSolver","edgesSolver","gravitySolver","modelOptions","viewFunction","simulationStep","_emitStabilized","startTime","physicsTick","physicsTime","runDoubleSpeed","amountOfIterations","calculateForces","moveNodes","revert","_evaluateStepQuality","nodeIds","positions","vx","vy","dpos","reference","maxNodeVelocity","averageNodeVelocity","velocityAdaptiveThreshold","nodeVelocity","_performStep","totalVelocity","solve","targetIterations","_freezeNodes","_stabilizationBatch","_finalizeStabilization","_restoreFrozenNodes","BarnesHutSolver","barnesHutTree","randomSeed","thetaInversed","overlapAvoidanceFactor","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","_calculateForces","gravityForce","fx","fy","minX","minY","maxX","maxY","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","totalMass","totalMassInv","biggestSize","skipMassUpdate","_updateBranchMass","_placeInRegion","region","seededRandom","containedNode","_insertRegion","childSize","_drawBranch","branch","RepulsionSolver","repulsingForce","HierarchicalRepulsionSolver","steepness","SpringSolver","edgeLength","node3","_calculateSpringForce","springForce","HierarchicalSpringSolver","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","CentralGravitySolver","_BarnesHutSolver2","_BarnesHutSolver3","ForceAtlas2BasedRepulsionSolver","_BarnesHutSolver","degree","_CentralGravitySolver2","_CentralGravitySolver3","ForceAtlas2BasedCentralGravitySolver","_CentralGravitySolver","_componentsNodesCluster","_componentsNodesCluster2","ClusterEngine","clusteredNodes","hubsize","_getHubSize","_checkOptions","nodesToCluster","refreshData","joinCondition","childNodesObj","childEdgesObj","clonedOptions","_cloneOptions","hiddenByCluster","_cluster","edgeCount","clusters","usedNodes","visibleEdges","gatheringSuccessful","childNodeId","_getConnectedId","clusterByEdgeCount","clusterNodeProperties","parentNodeId","parentClonedOptions","childClonedOptions","amountOfConnections","clusterEdgeProperties","childNode","otherNodeId","childKeys","createEdges","_edge","newEdge","clusteringEdgeReplacingId","processProperties","childNodesOptions","childEdgesOptions","clusterId","_getClusterPosition","clusterNode","containedNodes","containedEdges","_createClusterEdges","clusterNodeId","releaseFunction","clusterPosition","newPositions","edgesToBeDeleted","otherCluster","transferEdge","replacedEdge","nodesArray","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","hubThreshold","_Node2","_Node3","Cluster","_Node","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","CanvasRenderer","redrawRequested","renderingActive","renderRequests","allowRedraw","hideEdgesOnDrag","hideNodesOnDrag","_determineBrowserMethod","_resizeNodes","_requestRedraw","_startRendering","cancelAnimationFrame","_renderStep","_drawEdges","_drawNodes","controlNodesActive","_drawControlNodes","alwaysShow","topLeft","bottomRight","viewableArea","isSelected","isBoundingBoxOverlappingWith","browserType","Canvas","resizeTimer","resizeFunction","cameraState","hammerFrame","_cleanUp","previousWidth","currentViewCenter","distanceFromCenter","tabIndex","_prepareValue","emitEvent","oldWidth","oldHeight","previousRation","_getCameraState","_setCameraState","_XconvertCanvasToDOM","_YconvertCanvasToDOM","_XconvertDOMtoCanvas","_YconvertDOMtoCanvas","_NetworkUtil","_NetworkUtil2","View","animationSpeed","renderRefreshRate","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","initialZoom","zoomLevel","positionDefined","_getRange","numberOfNodes","yDistance","xZoomLevel","yZoomLevel","_findCenter","animationOptions","nodePosition","lockedOnNode","animateView","locked","_transitionRedraw","viewCenter","_lockedRedraw","finished","NetworkUtil","allNodes","specificNodes","_componentsNavigationHandler","_componentsNavigationHandler2","_componentsPopup","_componentsPopup2","InteractionHandler","navigationHandler","popup","popupObj","popupTimer","dragNodes","dragView","keyboard","speed","bindToWindow","navigationButtons","tooltipDelay","zoomView","pinched","checkSelectionChanges","_generateClickEvent","previouslySelectedEdgeCount","_getSelectedEdgeCount","previouslySelectedNodeCount","_getSelectedNodeCount","previousSelection","selectAdditionalOnPoint","selectOnPoint","selectedEdgesCount","selectedNodesCount","currentSelection","_determineIfDifferent2","_determineIfDifferent","nodesChanges","edgesChanges","nodeSelected","selectObject","selectionObj","xFixed","yFixed","scaleOld","preScaleDragPointer","scaleFrac","tx","ty","postScaleDragPointer","popupVisible","_checkHidePopup","setPosition","_checkShowPopup","hoverObject","pointerObj","previousPopupObjId","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","popupTargetType","popupTargetId","setText","_pointerToPositionObject","stillOnObj","overNode","NavigationHandler","iconsCreated","navigationHammers","boundFunctions","activated","configureKeyboardBindings","loadNavigationElements","cleanNavigation","navigationDOM","navigationDivs","navigationDivActions","_fit","bindToRedraw","_stopMovement","boundAction","unbindFromRedraw","Popup","doShow","SelectionHandler","hoverObj","selectConnectedEdges","hoverConnectedEdges","updateSelection","selectionChanged","deselectObject","emptySelection","DOM","highlightEdges","_selectConnectedEdges","_addToSelection","_removeFromSelection","canvasPos","returnNode","positionObject","_getAllNodesOverlappingWith","_getEdgesOverlappingWith","returnEdge","_getAllEdgesOverlappingWith","clusterSize","_addToHover","hoverChanged","blurObject","_hoverConnectedEdges","edgeIds","idArray","RangeError","LayoutEngine","initialRandomSeed","optionsBackup","improvedLayout","hierarchical","levelSeparation","sortMethod","hierarchicalLevels","setupHierarchicalLayout","layoutNetwork","prevHierarchicalState","adaptAllOptions","MAX_LEVELS","clusterThreshold","startLength","before","clusterBridges","after","_declusterAll","info","kamadaKawai","_shiftToCenter","_getRangeCore","clustersPresent","definedLevel","undefinedLevel","nodeSpacing","_determineLevelsByHubsize","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","positionedNodes","_placeBranchNodes","hubSize","_setLevelByHubsize","minLevel","_setLevelDirected","parentId","parentLevel","childNodeLevel","ManipulationSystem","editMode","manipulationDiv","editModeDiv","closeDiv","manipulationHammers","temporaryUIFunctions","temporaryEventFunctions","temporaryIds","guiEnabled","inMode","selectedControlNode","initiallyActive","addNode","addEdge","editEdge","deleteNode","deleteEdge","controlNodeStyle","_restore","_setup","showManipulatorToolbar","_createEditButton","manipulationDOM","selectedNodeCount","selectedEdgeCount","selectedTotalCount","needSeperator","_createAddNodeButton","_createSeperator","_createAddEdgeButton","_createEditNodeButton","_createEditEdgeButton","_createDeleteButton","_bindHammerToDiv","toggleEditMode","_temporaryBindEvent","_createBackButton","_createDescription","_performAddNode","_getSelectedNode","finalizedData","_temporaryBindUI","_handleConnect","_finishConnect","_dragControlNode","edgeBeingEditedId","controlNodeFrom","_getNewTargetNode","controlNodeTo","_controlNodeTouch","_controlNodeDragStart","_controlNodeDrag","_controlNodeDragEnd","findBorderPositions","selectedNodes","selectedEdges","deleteFunction","_createWrappers","_removeManipulationDOM","_createButton","_cleanManipulatorHammers","_cleanupTemporaryNodesAndEdges","_unbindTemporaryUIs","_unbindTemporaryEvents","labelClassName","newFunction","boundFunction","UIfunctionName","functionName","eventName","domElement","indexTempEdge","indexTempNode","lastTouch","fromSelect","toSelect","overlappingNodeIds","_performEditEdge","targetNode","connectionEdge","connectFromId","_performAddEdge","clickData","defaultData","sourceNodeId","targetNodeId","_this7","_componentsAlgorithmsFloydWarshallJs","_componentsAlgorithmsFloydWarshallJs2","KamadaKawai","edgeStrength","distanceSolver","edgesArray","ignoreClusters","D_matrix","getDistances","_createL_matrix","_createK_matrix","innerThreshold","maxInnerIterations","maxEnergy","highE_nodeId","dE_dx","dE_dy","delta_m","subIterations","_getHighestEnergyNode2","_getHighestEnergyNode","_getHighestEnergyNode22","_moveNode","_getEnergy2","_getEnergy","_getEnergy22","maxEnergyNodeId","dE_dx_max","dE_dy_max","nodeIdx","_getEnergy3","_getEnergy32","x_m","y_m","iIdx","x_i","y_i","denominator","K_matrix","L_matrix","d2E_dx2","d2E_dxdy","d2E_dy2","FloydWarshall","k","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","diamond","r2d","kappa","ox","oy","xe","ye","xm","ym","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","patternLength","slope","distRemaining","patternIndex","dashLength","parseDOT","parseGraph","first","nextPreview","isAlphaNumeric","regexAlphaNumeric","setValue","graphs","attr","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","setProp","convertAttr","mapping","visProp","visPropI","graphData","dotNode","graphNode","NODE_ATTR_MAPPING","convertEdge","dotEdge","graphEdge","EDGE_ATTR_MAPPING","subEdge","fontsize","fontcolor","labelfontcolor","fontname","fillcolor","labeltooltip","{","}","[","]",";","=",",","->","--","gephiJSON","inheritColor","gEdges","gNodes","gEdge","gNode","imageBroken","url","imageToCache","brokenUrl","imageToLoadBrokenUrlOn","onerror","_addImageToCache","imageToRedrawWith","cachedImage","img","onload","_redrawWithImage","_tryloadBrokenUrl","edit","del","back","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","editClusterError"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 6a3a813c..68558dfe 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.8.1 - * @date 2015-09-07 + * @version 4.8.2 + * @date 2015-09-14 * * @license * Copyright (C) 2011-2015 Almende B.V, http://almende.com @@ -22,23 +22,23 @@ * * Vis.js may be distributed under either license. */ -"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(o){if(i[o])return i[o].exports;var n=i[o]={exports:{},id:o,loaded:!1};return t[o].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(7),e.DataSet=i(8),e.DataView=i(10),e.Queue=i(9),e.Graph3d=i(11),e.graph3d={Camera:i(15),Filter:i(16),Point2d:i(14),Point3d:i(13),Slider:i(17),StepNumber:i(18)},e.Timeline=i(19),e.Graph2d=i(49),e.timeline={DateUtil:i(27),DataStep:i(52),Range:i(24),stack:i(32),TimeStep:i(30),components:{items:{Item:i(34),BackgroundItem:i(38),BoxItem:i(36),PointItem:i(37),RangeItem:i(33)},Component:i(26),CurrentTime:i(44),CustomTime:i(42),DataAxis:i(51),GraphGroup:i(53),Group:i(31),BackgroundGroup:i(35),ItemSet:i(29),Legend:i(57),LineGraph:i(50),TimeAxis:i(39)}},e.Network=i(59),e.network={Images:i(117),dotparser:i(115),gephiParser:i(116),allOptions:i(111)},e.network.convertDot=function(t){return e.network.dotparser.DOTToGraph(t)},e.network.convertGephi=function(t,i){return e.network.gephiParser.parseGephi(t,i)},e.moment=i(2),e.Hammer=i(20),e.keycharm=i(41)},function(t,e,i){var o=i(2),n=i(6);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.recursiveDOMDelete=function(t){if(t)for(;t.hasChildNodes()===!0;)e.recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},e.giveRange=function(t,e,i,o){if(e==t)return.5;var n=1/(e-t);return Math.max(0,(o-t)*n)},e.isString=function(t){return t instanceof String||"string"==typeof t},e.isDate=function(t){if(t instanceof Date)return!0;if(e.isString(t)){var i=s.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.randomUUID=function(){return n.v4()},e.assignAllKeys=function(t,e){for(var i in t)t.hasOwnProperty(i)&&"object"!=typeof t[i]&&(t[i]=e)},e.fillIfDefined=function(t,i){var o=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];for(var n in t)void 0!==i[n]&&("object"!=typeof i[n]?void 0!==i[n]&&null!==i[n]||void 0===t[n]||o!==!0?t[n]=i[n]:delete t[n]:"object"==typeof t[n]&&e.fillIfDefined(t[n],i[n],o))},e.protoExtend=function(t,e){for(var i=1;ii;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0===t)return void 0;if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(o.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])):o(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return o(t);if(t instanceof Date)return o(t.valueOf());if(o.isMoment(t))return o(t);if(e.isString(t))return n=s.exec(t),o(n?Number(n[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(o.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){n=s.exec(t);var r;return r=n?new Date(Number(n[1])).valueOf():new Date(t).valueOf(),"/Date("+r+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}};var s=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=typeof t;return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var r={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=r.split(t.style.cssText),n=r.split(i),s=e.extend(o,n);t.style.cssText=r.join(s)},e.removeCssText=function(t,e){var i=r.split(t.style.cssText),o=r.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=r.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var o=Object.create(i),n=0;n=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],u=e(l);if(0==u)return h;-1==u?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o){for(var n,s,r,a,h=1e4,d=0,l=0,u=t.length-1;u>=l&&h>d;){if(a=Math.floor(.5*(u+l)),n=t[Math.max(0,a-1)][i],s=t[a][i],r=t[Math.min(t.length-1,a+1)][i],s==e)return a;if(e>n&&s>e)return"before"==o?Math.max(0,a-1):a;if(e>s&&r>e)return"before"==o?a:Math.min(t.length-1,a+1);e>s?l=a+1:u=a-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return zi.apply(null,arguments)}function i(t){zi=t}function o(t){return"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in Ai)o=Ai[i],n=e[o],"undefined"!=typeof n&&(t[o]=n);return t}function f(t){p(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),Bi===!1&&(Bi=!0,e.updateOffset(this),Bi=!1)}function m(t){return t instanceof f||null!=t&&null!=t._isAMomentObject}function v(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=v(e)),i}function y(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&g(t[o])!==g(e[o]))&&r++;return r+s}function b(){}function w(t){return t?t.toLowerCase().replace("_","-"):t}function _(t){for(var e,i,o,n,s=0;s0;){if(o=x(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&y(n,i,!0)>=e-1)break;e--}s++}return null}function x(e){var i=null;if(!Ri[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Li._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),k(i)}catch(o){}return Ri[e]}function k(t,e){var i;return t&&(i="undefined"==typeof e?D(t):O(t,e),i&&(Li=i)),Li._abbr}function O(t,e){return null!==e?(e.abbr=t,Ri[t]=Ri[t]||new b,Ri[t].set(e),k(t),Ri[t]):(delete Ri[t],null)}function D(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Li;if(!o(t)){if(e=x(t))return e;t=[t]}return _(t)}function M(t,e){var i=t.toLowerCase();Fi[i]=Fi[i+"s"]=Fi[e]=t}function C(t){return"string"==typeof t?Fi[t]||Fi[t.toLowerCase()]:void 0}function T(t){var e,i,o={};for(i in t)r(t,i)&&(e=C(i),e&&(o[e]=t[i]));return o}function E(t,i){return function(o){return null!=o?(P(this,t,o),e.updateOffset(this,i),this):S(this,t)}}function S(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function P(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function I(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=C(t),"function"==typeof this[t])return this[t](e);return this}function N(t,e,i){var o=""+Math.abs(t),n=e-o.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function z(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Yi[t]=n),e&&(Yi[e[0]]=function(){return N(n.apply(this,arguments),e[1],e[2])}),i&&(Yi[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function L(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function A(t){var e,i,o=t.match(ji);for(e=0,i=o.length;i>e;e++)Yi[o[e]]?o[e]=Yi[o[e]]:o[e]=L(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function B(t,e){return t.isValid()?(e=R(e,t.localeData()),Wi[e]=Wi[e]||A(e),Wi[e](t)):t.localeData().invalidDate()}function R(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Hi.lastIndex=0;o>=0&&Hi.test(t);)t=t.replace(Hi,i),Hi.lastIndex=0,o-=1;return t}function F(t){return"function"==typeof t&&"[object Function]"===Object.prototype.toString.call(t)}function j(t,e,i){no[t]=F(e)?e:function(t){return t&&i?i:e}}function H(t,e){return r(no,t)?no[t](e._strict,e._locale):new RegExp(W(t))}function W(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Y(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=g(t)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function K(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),V(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function J(t){return null!=t?(K(this,t),e.updateOffset(this,!0),this):S(this,"Month")}function Q(){return V(this.year(),this.month())}function $(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[ao]<0||i[ao]>11?ao:i[ho]<1||i[ho]>V(i[ro],i[ao])?ho:i[lo]<0||i[lo]>24||24===i[lo]&&(0!==i[uo]||0!==i[co]||0!==i[po])?lo:i[uo]<0||i[uo]>59?uo:i[co]<0||i[co]>59?co:i[po]<0||i[po]>999?po:-1,l(t)._overflowDayOfYear&&(ro>e||e>ho)&&(e=ho),l(t).overflow=e),t}function tt(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function et(t,e){var i=!0;return a(function(){return i&&(tt(t+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function it(t,e){vo[t]||(tt(e),vo[t]=!0)}function ot(t){var e,i,o=t._i,n=go.exec(o);if(n){for(l(t).iso=!0,e=0,i=yo.length;i>e;e++)if(yo[e][1].exec(o)){t._f=yo[e][0];break}for(e=0,i=bo.length;i>e;e++)if(bo[e][1].exec(o)){t._f+=(n[6]||" ")+bo[e][0];break}o.match(eo)&&(t._f+="Z"),xt(t)}else t._isValid=!1}function nt(t){var i=wo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(ot(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function st(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 1970>t&&a.setFullYear(t),a}function rt(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function at(t){return ht(t)?366:365}function ht(t){return t%4===0&&t%100!==0||t%400===0}function dt(){return ht(this.year())}function lt(t,e,i){var o,n=i-e,s=i-t.day();return s>n&&(s-=7),n-7>s&&(s+=7),o=St(t).add(s,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function ut(t){return lt(t,this._week.dow,this._week.doy).week}function ct(){return this._week.dow}function pt(){return this._week.doy}function ft(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function mt(t){var e=lt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function vt(t,e,i,o,n){var s,r=6+n-o,a=rt(t,0,1+r),h=a.getUTCDay();return n>h&&(h+=7),i=null!=i?1*i:n,s=1+r+7*(e-1)-h+i,{year:s>0?t:t-1,dayOfYear:s>0?s:at(t-1)+s}}function gt(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function yt(t,e,i){return null!=t?t:null!=e?e:i}function bt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wt(t){var e,i,o,n,s=[];if(!t._d){for(o=bt(t),t._w&&null==t._a[ho]&&null==t._a[ao]&&_t(t),t._dayOfYear&&(n=yt(t._a[ro],o[ro]),t._dayOfYear>at(n)&&(l(t)._overflowDayOfYear=!0),i=rt(n,0,t._dayOfYear),t._a[ao]=i.getUTCMonth(),t._a[ho]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[lo]&&0===t._a[uo]&&0===t._a[co]&&0===t._a[po]&&(t._nextDay=!0,t._a[lo]=0),t._d=(t._useUTC?rt:st).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[lo]=24)}}function _t(t){var e,i,o,n,s,r,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=yt(e.GG,t._a[ro],lt(St(),1,4).year),o=yt(e.W,1),n=yt(e.E,1)):(s=t._locale._week.dow,r=t._locale._week.doy,i=yt(e.gg,t._a[ro],lt(St(),s,r).year),o=yt(e.w,1),null!=e.d?(n=e.d,s>n&&++o):n=null!=e.e?e.e+s:s),a=vt(i,o,n,r,s),t._a[ro]=a.year,t._dayOfYear=a.dayOfYear}function xt(t){if(t._f===e.ISO_8601)return void ot(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=R(t._f,t._locale).match(ji)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Yi[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),U(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[lo]<=12&&t._a[lo]>0&&(l(t).bigHour=void 0),t._a[lo]=kt(t._locale,t._a[lo],t._meridiem),wt(t),$(t)}function kt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Ot(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function Dt(t){if(!t._d){var e=T(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],wt(t)}}function Mt(t){var e=new f($(Ct(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Ct(t){var e=t._i,i=t._f;return t._locale=t._locale||D(t._l),null===e||void 0===i&&""===e?c({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),m(e)?new f($(e)):(o(i)?Ot(t):i?xt(t):n(e)?t._d=e:Tt(t),t))}function Tt(t){var i=t._i;void 0===i?t._d=new Date:n(i)?t._d=new Date(+i):"string"==typeof i?nt(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),wt(t)):"object"==typeof i?Dt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Et(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,Mt(s)}function St(t,e,i,o){return Et(t,e,i,o,!1)}function Pt(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return St();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+N(~~(t/60),2)+e+N(~~t%60,2)})}function Bt(t){var e=(t||"").match(eo)||[],i=e[e.length-1]||[],o=(i+"").match(Do)||["-",0,0],n=+(60*o[1])+g(o[2]);return"+"===o[0]?n:-n}function Rt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(m(t)||n(t)?+t:+St(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):St(t).local()}function Ft(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function jt(t,i){var o,n=this._offset||0;return null!=t?("string"==typeof t&&(t=Bt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Ft(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?ie(this,Jt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Ft(this)}function Ht(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Wt(t){return this.utcOffset(0,t)}function Yt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ft(this),"m")),this}function Gt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Bt(this._i)),this}function Ut(t){return t=t?St(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Vt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qt(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var t={};if(p(t,this),t=Ct(t),t._a){var e=t._isUTC?h(t._a):St(t._a);this._isDSTShifted=this.isValid()&&y(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xt(){return!this._isUTC}function Zt(){return this._isUTC}function Kt(){return this._isUTC&&0===this._offset}function Jt(t,e){var i,o,n,s=t,a=null;return Lt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=Mo.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:g(a[ho])*i,h:g(a[lo])*i,m:g(a[uo])*i,s:g(a[co])*i,ms:g(a[po])*i}):(a=Co.exec(t))?(i="-"===a[1]?-1:1,s={y:Qt(a[2],i),M:Qt(a[3],i),d:Qt(a[4],i),h:Qt(a[5],i),m:Qt(a[6],i),s:Qt(a[7],i),w:Qt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=te(St(s.from),St(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new zt(s),Lt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function Qt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $t(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function te(t,e){var i;return e=Rt(e,t),t.isBefore(e)?i=$t(t,e):(i=$t(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function ee(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(it(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Jt(i,o),ie(this,n,t),this}}function ie(t,i,o,n){var s=i._milliseconds,r=i._days,a=i._months;n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&P(t,"Date",S(t,"Date")+r*o),a&&K(t,S(t,"Month")+a*o),n&&e.updateOffset(t,r||a)}function oe(t,e){var i=t||St(),o=Rt(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse";return this.format(e&&e[s]||this.localeData().calendar(s,this,St(i)))}function ne(){return new f(this)}function se(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:St(t),+this>+t):(i=m(t)?+t:+St(t),i<+this.clone().startOf(e))}function re(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:St(t),+t>+this):(i=m(t)?+t:+St(t),+this.clone().endOf(e)e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function ue(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ce(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(i=St([2e3,1]).day(e),o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(o.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function We(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Be(t,this.localeData()),this.add(t-e,"d")):e}function Ye(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ge(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ue(t,e){z(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Ve(t,e){return e._meridiemParse}function qe(t){return"p"===(t+"").toLowerCase().charAt(0)}function Xe(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Ze(t,e){e[po]=g(1e3*("0."+t))}function Ke(){return this._isUTC?"UTC":""}function Je(){return this._isUTC?"Coordinated Universal Time":""}function Qe(t){return St(1e3*t)}function $e(){return St.apply(null,arguments).parseZone()}function ti(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.call(e,i):o}function ei(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function ii(){return this._invalidDate}function oi(t){return this._ordinal.replace("%d",t)}function ni(t){return t}function si(t,e,i,o){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,o):n.replace(/%d/i,t)}function ri(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ai(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hi(t,e,i,o){var n=D(),s=h().set(o,e);return n[i](s,t)}function di(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return hi(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=hi(t,s,i,n);return r}function li(t,e){return di(t,e,"months",12,"month")}function ui(t,e){return di(t,e,"monthsShort",12,"month")}function ci(t,e){return di(t,e,"weekdays",7,"day")}function pi(t,e){return di(t,e,"weekdaysShort",7,"day")}function fi(t,e){return di(t,e,"weekdaysMin",7,"day")}function mi(){var t=this._data;return this._milliseconds=Ko(this._milliseconds),this._days=Ko(this._days),this._months=Ko(this._months),t.milliseconds=Ko(t.milliseconds),t.seconds=Ko(t.seconds),t.minutes=Ko(t.minutes),t.hours=Ko(t.hours),t.months=Ko(t.months),t.years=Ko(t.years),this}function vi(t,e,i,o){var n=Jt(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function gi(t,e){return vi(this,t,e,1)}function yi(t,e){return vi(this,t,e,-1)}function bi(t){return 0>t?Math.floor(t):Math.ceil(t)}function wi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*bi(xi(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=v(s/1e3),h.seconds=t%60,e=v(t/60),h.minutes=e%60,i=v(e/60),h.hours=i%24,r+=v(i/24),n=v(_i(r)),a+=n,r-=bi(xi(n)),o=v(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function _i(t){return 4800*t/146097}function xi(t){return 146097*t/4800}function ki(t){var e,i,o=this._milliseconds;if(t=C(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+_i(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xi(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Oi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Di(t){return function(){return this.as(t)}}function Mi(t){return t=C(t),this[t+"s"]()}function Ci(t){return function(){return this._data[t]}}function Ti(){return v(this.days()/7)}function Ei(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Si(t,e,i){var o=Jt(t).abs(),n=pn(o.as("s")),s=pn(o.as("m")),r=pn(o.as("h")),a=pn(o.as("d")),h=pn(o.as("M")),d=pn(o.as("y")),l=n0,l[4]=i,Ei.apply(null,l)}function Pi(t,e){return void 0===fn[t]?!1:void 0===e?fn[t]:(fn[t]=e,!0)}function Ii(t){var e=this.localeData(),i=Si(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ni(){var t,e,i,o=mn(this._milliseconds)/1e3,n=mn(this._days),s=mn(this._months);t=v(o/60),e=v(t/60),o%=60,t%=60,i=v(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var zi,Li,Ai=e.momentProperties=[],Bi=!1,Ri={},Fi={},ji=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Hi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Wi={},Yi={},Gi=/\d/,Ui=/\d\d/,Vi=/\d{3}/,qi=/\d{4}/,Xi=/[+-]?\d{6}/,Zi=/\d\d?/,Ki=/\d{1,3}/,Ji=/\d{1,4}/,Qi=/[+-]?\d{1,6}/,$i=/\d+/,to=/[+-]?\d+/,eo=/Z|[+-]\d\d:?\d\d/gi,io=/[+-]?\d+(\.\d{1,3})?/,oo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,no={},so={},ro=0,ao=1,ho=2,lo=3,uo=4,co=5,po=6;z("M",["MM",2],"Mo",function(){return this.month()+1}),z("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),z("MMMM",0,0,function(t){return this.localeData().months(this,t)}),M("month","M"),j("M",Zi),j("MM",Zi,Ui),j("MMM",oo),j("MMMM",oo),Y(["M","MM"],function(t,e){e[ao]=g(t)-1}),Y(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[ao]=n:l(i).invalidMonth=t});var fo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),mo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),vo={};e.suppressDeprecationWarnings=!1;var go=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],bo=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],wo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=et("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),z(0,["YY",2],0,function(){return this.year()%100}),z(0,["YYYY",4],0,"year"),z(0,["YYYYY",5],0,"year"),z(0,["YYYYYY",6,!0],0,"year"),M("year","y"),j("Y",to),j("YY",Zi,Ui),j("YYYY",Ji,qi),j("YYYYY",Qi,Xi),j("YYYYYY",Qi,Xi),Y(["YYYYY","YYYYYY"],ro),Y("YYYY",function(t,i){i[ro]=2===t.length?e.parseTwoDigitYear(t):g(t)}),Y("YY",function(t,i){i[ro]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var _o=E("FullYear",!1);z("w",["ww",2],"wo","week"),z("W",["WW",2],"Wo","isoWeek"),M("week","w"),M("isoWeek","W"),j("w",Zi),j("ww",Zi,Ui),j("W",Zi),j("WW",Zi,Ui),G(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=g(t)});var xo={dow:0,doy:6};z("DDD",["DDDD",3],"DDDo","dayOfYear"),M("dayOfYear","DDD"),j("DDD",Ki),j("DDDD",Vi),Y(["DDD","DDDD"],function(t,e,i){i._dayOfYear=g(t)}),e.ISO_8601=function(){};var ko=et("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=St.apply(null,arguments);return this>t?this:t}),Oo=et("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=St.apply(null,arguments);return t>this?this:t});At("Z",":"),At("ZZ",""),j("Z",eo),j("ZZ",eo),Y(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Bt(t)});var Do=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Mo=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Co=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Jt.fn=zt.prototype;var To=ee(1,"add"),Eo=ee(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var So=et("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});z(0,["gg",2],0,function(){return this.weekYear()%100}),z(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Se("gggg","weekYear"),Se("ggggg","weekYear"),Se("GGGG","isoWeekYear"),Se("GGGGG","isoWeekYear"),M("weekYear","gg"),M("isoWeekYear","GG"),j("G",to),j("g",to),j("GG",Zi,Ui),j("gg",Zi,Ui),j("GGGG",Ji,qi),j("gggg",Ji,qi),j("GGGGG",Qi,Xi),j("ggggg",Qi,Xi),G(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=g(t)}),G(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),z("Q",0,0,"quarter"),M("quarter","Q"),j("Q",Gi),Y("Q",function(t,e){e[ao]=3*(g(t)-1)}),z("D",["DD",2],"Do","date"),M("date","D"),j("D",Zi),j("DD",Zi,Ui),j("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),Y(["D","DD"],ho),Y("Do",function(t,e){e[ho]=g(t.match(Zi)[0],10)});var Po=E("Date",!0);z("d",0,"do","day"),z("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),z("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),z("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),z("e",0,0,"weekday"),z("E",0,0,"isoWeekday"),M("day","d"),M("weekday","e"),M("isoWeekday","E"),j("d",Zi),j("e",Zi),j("E",Zi),j("dd",oo),j("ddd",oo),j("dddd",oo),G(["dd","ddd","dddd"],function(t,e,i){var o=i._locale.weekdaysParse(t);null!=o?e.d=o:l(i).invalidWeekday=t}),G(["d","e","E"],function(t,e,i,o){e[o]=g(t)});var Io="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),No="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),zo="Su_Mo_Tu_We_Th_Fr_Sa".split("_");z("H",["HH",2],0,"hour"),z("h",["hh",2],0,function(){return this.hours()%12||12}),Ue("a",!0),Ue("A",!1),M("hour","h"),j("a",Ve),j("A",Ve),j("H",Zi),j("h",Zi),j("HH",Zi,Ui),j("hh",Zi,Ui),Y(["H","HH"],lo),Y(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),Y(["h","hh"],function(t,e,i){e[lo]=g(t),l(i).bigHour=!0});var Lo=/[ap]\.?m?\.?/i,Ao=E("Hours",!0);z("m",["mm",2],0,"minute"),M("minute","m"),j("m",Zi),j("mm",Zi,Ui),Y(["m","mm"],uo);var Bo=E("Minutes",!1);z("s",["ss",2],0,"second"),M("second","s"),j("s",Zi),j("ss",Zi,Ui),Y(["s","ss"],co);var Ro=E("Seconds",!1);z("S",0,0,function(){return~~(this.millisecond()/100)}),z(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),z(0,["SSS",3],0,"millisecond"),z(0,["SSSS",4],0,function(){return 10*this.millisecond()}),z(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),z(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),z(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),z(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),z(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),M("millisecond","ms"),j("S",Ki,Gi),j("SS",Ki,Ui),j("SSS",Ki,Vi);var Fo;for(Fo="SSSS";Fo.length<=9;Fo+="S")j(Fo,$i);for(Fo="S";Fo.length<=9;Fo+="S")Y(Fo,Ze);var jo=E("Milliseconds",!1);z("z",0,0,"zoneAbbr"),z("zz",0,0,"zoneName");var Ho=f.prototype;Ho.add=To,Ho.calendar=oe,Ho.clone=ne,Ho.diff=de,Ho.endOf=_e,Ho.format=pe,Ho.from=fe,Ho.fromNow=me,Ho.to=ve,Ho.toNow=ge,Ho.get=I,Ho.invalidAt=Ee,Ho.isAfter=se,Ho.isBefore=re,Ho.isBetween=ae,Ho.isSame=he,Ho.isValid=Ce,Ho.lang=So,Ho.locale=ye,Ho.localeData=be,Ho.max=Oo,Ho.min=ko,Ho.parsingFlags=Te,Ho.set=I,Ho.startOf=we,Ho.subtract=Eo,Ho.toArray=De,Ho.toObject=Me,Ho.toDate=Oe,Ho.toISOString=ce,Ho.toJSON=ce,Ho.toString=ue,Ho.unix=ke,Ho.valueOf=xe,Ho.year=_o,Ho.isLeapYear=dt,Ho.weekYear=Ie,Ho.isoWeekYear=Ne,Ho.quarter=Ho.quarters=Ae,Ho.month=J,Ho.daysInMonth=Q,Ho.week=Ho.weeks=ft,Ho.isoWeek=Ho.isoWeeks=mt,Ho.weeksInYear=Le,Ho.isoWeeksInYear=ze,Ho.date=Po,Ho.day=Ho.days=We,Ho.weekday=Ye,Ho.isoWeekday=Ge,Ho.dayOfYear=gt,Ho.hour=Ho.hours=Ao,Ho.minute=Ho.minutes=Bo,Ho.second=Ho.seconds=Ro,Ho.millisecond=Ho.milliseconds=jo,Ho.utcOffset=jt,Ho.utc=Wt,Ho.local=Yt,Ho.parseZone=Gt,Ho.hasAlignedHourOffset=Ut,Ho.isDST=Vt,Ho.isDSTShifted=qt,Ho.isLocal=Xt,Ho.isUtcOffset=Zt,Ho.isUtc=Kt,Ho.isUTC=Kt,Ho.zoneAbbr=Ke,Ho.zoneName=Je,Ho.dates=et("dates accessor is deprecated. Use date instead.",Po),Ho.months=et("months accessor is deprecated. Use month instead",J),Ho.years=et("years accessor is deprecated. Use year instead",_o),Ho.zone=et("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Ht);var Wo=Ho,Yo={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Go={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Uo="Invalid date",Vo="%d",qo=/\d{1,2}/,Xo={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"},Zo=b.prototype;Zo._calendar=Yo,Zo.calendar=ti,Zo._longDateFormat=Go,Zo.longDateFormat=ei,Zo._invalidDate=Uo,Zo.invalidDate=ii,Zo._ordinal=Vo,Zo.ordinal=oi,Zo._ordinalParse=qo,Zo.preparse=ni,Zo.postformat=ni,Zo._relativeTime=Xo,Zo.relativeTime=si,Zo.pastFuture=ri,Zo.set=ai,Zo.months=q,Zo._months=fo,Zo.monthsShort=X,Zo._monthsShort=mo,Zo.monthsParse=Z,Zo.week=ut,Zo._week=xo,Zo.firstDayOfYear=pt,Zo.firstDayOfWeek=ct,Zo.weekdays=Re,Zo._weekdays=Io,Zo.weekdaysMin=je,Zo._weekdaysMin=zo,Zo.weekdaysShort=Fe,Zo._weekdaysShort=No,Zo.weekdaysParse=He,Zo.isPM=qe,Zo._meridiemParse=Lo,Zo.meridiem=Xe,k("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=et("moment.lang is deprecated. Use moment.locale instead.",k),e.langData=et("moment.langData is deprecated. Use moment.localeData instead.",D);var Ko=Math.abs,Jo=Di("ms"),Qo=Di("s"),$o=Di("m"),tn=Di("h"),en=Di("d"),on=Di("w"),nn=Di("M"),sn=Di("y"),rn=Ci("milliseconds"),an=Ci("seconds"),hn=Ci("minutes"),dn=Ci("hours"),ln=Ci("days"),un=Ci("months"),cn=Ci("years"),pn=Math.round,fn={s:45,m:45,h:22,d:26,M:11},mn=Math.abs,vn=zt.prototype;vn.abs=mi,vn.add=gi,vn.subtract=yi,vn.as=ki,vn.asMilliseconds=Jo,vn.asSeconds=Qo,vn.asMinutes=$o,vn.asHours=tn,vn.asDays=en,vn.asWeeks=on,vn.asMonths=nn,vn.asYears=sn,vn.valueOf=Oi,vn._bubble=wi,vn.get=Mi,vn.milliseconds=rn,vn.seconds=an,vn.minutes=hn,vn.hours=dn,vn.days=ln,vn.weeks=Ti,vn.months=un,vn.years=cn,vn.humanize=Ii,vn.toISOString=Ni,vn.toString=Ni,vn.toJSON=Ni,vn.locale=ye,vn.localeData=be,vn.toIsoString=et("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ni),vn.lang=So,z("X",0,0,"unix"),z("x",0,0,"valueOf"),j("x",to),j("X",io),Y("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),Y("x",function(t,e,i){i._d=new Date(g(t))}),e.version="2.10.6",i(St),e.fn=Wo,e.min=It,e.max=Nt,e.utc=h,e.unix=Qe,e.months=li,e.isDate=n,e.locale=k,e.invalid=c,e.duration=Jt,e.isMoment=m,e.weekdays=ci,e.parseZone=$e,e.localeData=D,e.isDuration=Lt,e.monthsShort=ui,e.weekdaysMin=fi,e.defineLocale=O,e.weekdaysShort=pi,e.normalizeUnits=C,e.relativeTimeThreshold=Pi;var gn=e;return gn})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.style&&a.setAttributeNS(null,"style",o.style),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var o=this._options.type[i];"Date"==o||"ISODate"==o||"ASPDate"==o?this._type[i]="Date":this._type[i]=o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n=i(1),s=i(9);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=s.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0;ns;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],s=this,r=s._fieldId,a=function(t){var e=t[r];s._data[e]?(e=s._updateItem(t),o.push(e),n.push(t)):(e=s._addItem(t),i.push(e))};if(Array.isArray(t))for(var h=0,d=t.length;d>h;h++)a(t[h]);else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(t)}return i.length&&this._trigger("add",{items:i},e),o.length&&this._trigger("update",{items:o,data:n},e),i.concat(o)},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,c,p=o&&o.type||this._options.type,f=o&&o.filter,m=[];if(void 0!=e)d=s._getItem(e,p),f&&!f(d)&&(d=null);else if(void 0!=i)for(u=0,c=i.length;c>u;u++)d=s._getItem(i[u],p),(!f||f(d))&&m.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=s._getItem(l,p),(!f||f(d))&&m.push(d));if(o&&o.order&&void 0==e&&this._sort(m,o.order),o&&o.fields){var v=o.fields;if(void 0!=e)d=this._filterFields(d,v);else for(u=0,c=m.length;c>u;u++)m[u]=this._filterFields(m[u],v)}if("Object"==a){var g={};for(u=0;ue;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=this._getItem(o,d),a(n)&&l.push(n[this._fieldId]));else if(h){s=[];for(o in r)r.hasOwnProperty(o)&&s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=r[o],l.push(n[this._fieldId]));return l},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n=e&&e.filter,s=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],o=i[this._fieldId],t(i,o);else for(o in r)r.hasOwnProperty(o)&&(i=this._getItem(o,s),(!n||n(i))&&t(i,o))},o.prototype.map=function(t,e){var i,o=e&&e.filter,n=e&&e.type||this._options.type,s=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,n),(!o||o(i))&&s.push(t(i,a)));return e&&e.order&&this._sort(s,e.order),s},o.prototype._filterFields=function(t,e){if(!t)return t;var i={};if(Array.isArray(e))for(var o in t)t.hasOwnProperty(o)&&-1!=e.indexOf(o)&&(i[o]=t[o]);else for(var o in t)t.hasOwnProperty(o)&&e.hasOwnProperty(o)&&(i[e[o]]=t[o]);return i},o.prototype._sort=function(t,e){if(n.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(n.isNumber(t)||n.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||r>o)&&(i=s,o=r)}return i},o.prototype.min=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||o>r)&&(i=s,o=r)}return i},o.prototype.distinct=function(t){var e,i=this._data,o=[],s=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(o[e]==d){l=!0;break}l||void 0===d||(o[r]=d,r++)}if(s)for(e=0;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(8);o.prototype.setData=function(t){var e,i,o;if(this._data){this._data.off&&this._data.off("*",this.listener),e=[];for(var n in this._ids)this._ids.hasOwnProperty(n)&&e.push(n);this._ids={},this.length=0,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,o=e.length;o>i;i++)n=e[i],this._ids[n]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},o=[],n=[],s=0;so;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(u.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s],c.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],c.push(s))}this.length+=l.length-c.length,l.length&&this._trigger("add",{items:l},i),u.length&&this._trigger("update",{items:u, -data:d},i),c.length&&this._trigger("remove",{items:c},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new c,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(12),a=i(8),h=i(10),d=i(1),l=i(13),u=i(14),c=i(15),p=i(16),f=i(17),m=i(18);r(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-c)/(p-c),v=240*f,g=this._hsv2rgb(v,1,1);u.strokeStyle=g,u.beginPath(),u.moveTo(h,r+t),u.lineTo(a,r+t),u.stroke()}u.strokeStyle=this.axisColor,u.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(u.strokeStyle=this.axisColor,u.fillStyle=this.dataColor.fill,u.beginPath(),u.moveTo(h,r),u.lineTo(a,r),u.lineTo(a-i+e,d),u.lineTo(h,d),u.closePath(),u.fill(),u.stroke()),this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new m(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new l(_,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(v.lineWidth=1,o=void 0===this.defaultYStep,i=new m(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new l(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(v.lineWidth=1,o=void 0===this.defaultZStep,i=new m(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(s,r,i.getCurrent())),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(t.x-b,t.y),v.stroke(),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();v.lineWidth=1,t=this._convert3Dto2D(new l(s,r,this.zMin)),e=this._convert3Dto2D(new l(s,r,this.zMax)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),v.lineWidth=1,c=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),c=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),v.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke();var x=this.xLabel;x.length>0&&(u=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-u:this.yMax+u,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(k,n.x,n.y));var O=this.zLabel;O.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new l(s,r,a)),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(O,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,u,c,p,f=this.frame.canvas,m=f.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else r=!0;r?(p=(t.point.z+e.point.z+i.point.z+n.point.z)/4,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),u=1,this.showShadow?(c=Math.min(1+x.x/k/2,1),a=this._hsv2rgb(d,u,c),h=a):(c=1,a=this._hsv2rgb(d,u,c),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(n.screen.x,n.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;sc&&(c=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.dataColor.fill,m=this.dataColor.stroke):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=this._getStrokeWidth(d),i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,c,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0){for(t=this.dataPoints[0],o.lineWidth=this._getStrokeWidth(t),o.lineJoin="round",o.lineCap="round",o.strokeStyle=this.dataColor.stroke,o.beginPath(),o.moveTo(t.screen.x,t.screen.y),e=1;e0?1:0>t?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=100,s=null,r=null,a=null,h=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var d=s.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var c=d[l],p=c.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return s}}else for(i=0;ib)&&n>b&&(a=b,r=s)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e){function i(t){return t?o(t):void 0}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;no;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var o=new i;return o.x=t.x-e.x,o.y=t.y-e.y,o.z=t.z-e.z,o},i.add=function(t,e){var o=new i;return o.x=t.x+e.x,o.y=t.y+e.y,o.z=t.z+e.z,o},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var o=new i;return o.x=t.y*e.z-t.z*e.y,o.y=t.z*e.x-t.x*e.z,o.z=t.x*e.y-t.y*e.x,o},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(13);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(10);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e){function i(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}i.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){function o(t,e,i,d){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof r||i instanceof a)&&i instanceof Object){var c=d;d=i,i=c}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},moment:n,width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return f.timeAxis.step.scale},getStep:function(){return f.timeAxis.step.step},toScreen:f._toScreen.bind(f),toGlobalScreen:f._toGlobalScreen.bind(f),toTime:f._toTime.bind(f),toGlobalTime:f._toGlobalTime.bind(f)}},this.range=new h(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new l(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new u(this.body),this.components.push(this.currentTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){f.emit("click",f.getEventProperties(t))}),this.on("doubletap",function(t){f.emit("doubleClick",f.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){f.emit("contextmenu",f.getEventProperties(t))},d&&this.setOptions(d),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(12),i(20),i(2)),s=i(1),r=i(8),a=i(10),h=i(24),d=i(28),l=i(39),u=i(44),c=i(42),p=i(29),f=i(45),m=i(47)["default"],v=i(47).printStyle,g=i(48).allOptions,y=i(48).configureOptions;o.prototype=new d,o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){var e=m.validate(t,g);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",v),d.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof r||t instanceof a?t:new r(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var o=this.getItemRange();var n=void 0!=this.options.start?this.options.start:o.min,s=void 0!=this.options.end?this.options.end:o.max;this.setWindow(n,s,{animation:!1})}else this.fit({animation:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof r||t instanceof a?t:new r(t):null,this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.fit=function(t){var e=t&&void 0!==t.animation?t.animation:!0,i=this.getItemRange();this.range.setRange(i.min,i.max,e)},o.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=e.min,o=e.max,n=null,r=null;if(null!=i&&null!=o){var a,h,d,l,u;!function(){var e=function(t){return s.convert(t.data.start,"Date").valueOf()},c=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return s.convert(e,"Date").valueOf()};a=o-i,0>=a&&(a=10),h=a/t.props.center.width,s.forEach(t.itemSet.items,function(t){t.show();var s=e(t),a=c(t),d=new Date(s-(t.getWidthLeft()+10)*h),l=new Date(a+(t.getWidthRight()+10)*h);i>d&&(i=d,n=t),l>o&&(o=l,r=t)}.bind(t)),n&&r&&(d=n.getWidthLeft()+10,l=r.getWidthRight()+10,u=t.props.center.width-d-l,u>0&&(i=e(n)-d*a/u,o=c(r)+l*a/u))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=s.convert(i.start,"Date").valueOf(),n=s.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=o)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=c.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(o),f=d?d(p,l,u):p,m=s.getTarget(t),v=null;return null!=r?v="item":null!=h?v="custom-time":s.hasParent(m,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&s.hasParent(m,this.timeAxis2.dom.foreground)?v="axis":s.hasParent(m,this.itemSet.dom.labelSet)?v="group-label":s.hasParent(m,this.currentTime.bar)?v="current-time":s.hasParent(m,this.dom.center)&&(v="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:p,snappedTime:f}},t.exports=o},function(t,e,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0},e.firstTarget=t;for(var o=t;o&&!i;){var n=o.hammer&&o.hammer._handlers[e.type];if(n)for(var s=0;s0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(f(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o-1}function _(t){return t.trim().split(/\s+/g)}function x(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function D(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=z(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=L(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=R(a,h),I(i,e),e.offsetDirection=B(e.deltaX,e.deltaY),e.scale=r?H(r.pointers,o):1,e.rotation=r?j(r.pointers,o):0,N(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function I(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};(e.eventType===Tt||s.eventType===St)&&(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function N(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Pt&&(h>Ct||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=B(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function z(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function A(t,e,i){return{x:e/t||0,y:i/t||0}}function B(t,e){return t===e?It:vt(t)>=vt(e)?t>0?Nt:zt:e>0?Lt:At}function R(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return F(e[1],e[0],Ht)-F(t[1],t[0],Ht)}function H(t,e){return R(e[0],e[1],Ht)/R(t[0],t[1],Ht)}function W(){this.evEl=Yt,this.evWin=Gt,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function Y(){this.evEl=qt,this.evWin=Xt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Kt,this.evWin=Jt,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=k(t.touches),o=k(t.changedTouches);return e&(St|Pt)&&(i=O(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=$t,this.targetIds={},T.apply(this,arguments)}function q(t,e){var i=k(t.touches),o=this.targetIds;if(e&(Tt|Et)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=k(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return b(t.target,h)}),e===Tt)for(n=0;na&&(e.push(t),a=e.length-1):n&(St|Pt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Zt={touchstart:Tt,touchmove:Et,touchend:St,touchcancel:Pt},Kt="touchstart",Jt="touchstart touchmove touchend touchcancel";p(G,T,{handler:function(t){var e=Zt[t.type];if(e===Tt&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(St|Pt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}});var Qt={touchstart:Tt,touchmove:Et,touchend:St,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel";p(V,T,{handler:function(t){var e=Qt[t.type],i=q.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}),p(X,T,{handler:function(t,e,i){ -var o=i.pointerType==kt,n=i.pointerType==Dt;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(St|Pt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var te=D(pt.style,"touchAction"),ee=te!==a,ie="compute",oe="auto",ne="manipulation",se="none",re="pan-x",ae="pan-y";Z.prototype={set:function(t){t==ie&&(t=this.compute()),ee&&(this.manager.element.style[te]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),K(t.join(" "))},preventDefaults:function(t){if(!ee){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=w(o,se),s=w(o,ae),r=w(o,re);return n||s&&i&Bt||r&&i&Rt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var he=1,de=2,le=4,ue=8,ce=ue,pe=16,fe=32;J.prototype={defaults:{},set:function(t){return u(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=tt(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=tt(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=tt(t,this),-1===x(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=tt(t,this);var e=x(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?Q(o):""),t)}var i=this,o=this.state;ue>o&&e(!0),e(),o>=ue&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=fe)},canEmit:function(){for(var t=0;ts?Nt:zt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?Lt:At,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return et.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),p(ot,et,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),p(nt,J,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(St|Pt)&&!n)this.reset();else if(t.eventType&Tt)this.reset(),this._timer=h(function(){this.state=ce,this.tryEmit()},e.time,this);else if(t.eventType&St)return ce;return fe},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ce&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),p(st,et,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),p(rt,et,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Bt|Rt,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Bt|Rt)?e=t.velocity:i&Bt?e=t.velocityX:i&Rt&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&vt(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(at,J,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanceu,c=r||null===n?n:h+(n-h)*i,v=r||null===s?s:l+(s-l)*i;g=a._applyRange(c,v),d.updateHiddenDates(a.options.moment,a.body,a.options.hiddenDates),m=m||g,g&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),r?m&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animationTimer=setTimeout(b,20)}};return v()}var g=this._applyRange(n,s);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),g){var y={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",y),this.body.emitter.emit("rangechanged",y)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*o,h=this.props.touch.start+a,l=this.props.touch.end+a,u=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),c=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||c!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=c,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=s({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=s(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.options.moment,this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),r=o-n,a=i-n+(this.props.touch.start-(i-n))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var l=d.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(l!=a||u!=h)&&(this.props.touch.start=l,this.props.touch.end=u,this.scaleOffset=1-t.scale,a=l,h=u),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX,i=e-r.getAbsoluteLeft(this.body.dom.centerContainer),o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||l!=a)&&(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e,i){i(20);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&!o&&(e(t),o=!0,setTimeout(function(){o=!1},0))},t.on("hammer.input",e.inputHandler)};var o=!1;e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&!n&&(e(t),n=!0,setTimeout(function(){n=!1},0))},t.on("hammer.input",e.inputHandler)};var n=!1;e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.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=i},function(t,e){e.convertHiddenOptions=function(t,e,i){if(e.hiddenDates=[],i&&1==Array.isArray(i)){for(var o=0;o=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),(1==v.hidden||1==g.hidden)&&i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){o=!0;break}}if(1==o&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n=i(12),s=i(20),r=i(25),a=i(1),h=(i(8),i(10),i(24),i(29),i(39)),d=i(40),l=i(27),u=i(42);n(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new s(this.dom.root),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),this.listeners={};var o=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(o.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),r.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),r.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","throttleRedraw"];if(a.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new h(this.body);i.setOptions=function(t){var e=t?a.extend({},t):{};e.orientation="top",h.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&l.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new d(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=a.deepExtend({},this.options);this.components.forEach(function(t){a.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._origRedraw||(this._origRedraw=this._redraw.bind(this)),this._redraw=a.throttle(this._origRedraw,this.options.throttleRedraw),this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.getEventProperties=function(t){return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?a.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,a.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0;this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){ -var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=a.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,o=this.dom;if(o){l.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(a.addClassName(o.root,"vis-top"),a.removeClassName(o.root,"vis-bottom")):(a.removeClassName(o.root,"vis-top"),a.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=a.option.asSize(e.maxHeight,""),o.root.style.minHeight=a.option.asSize(e.minHeight,""),o.root.style.width=a.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var r=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+r+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=a.option.asSize(e.height,h+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var d=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=d,i.leftContainer.height=d,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var c=this.props.scrollTop;"top"!=e.orientation.item&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=c+"px",o.left.style.left="0",o.left.style.top=c+"px",o.right.style.left="0",o.right.style.top=c+"px";var p=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(o.shadowTop.style.visibility=p,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=p,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=p,o.shadowBottomRight.style.visibility=f,this.components.forEach(function(e){t=e.redraw()||t}),t){var m=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=s.option.asSize,o=this.options,n=o.orientation.item,r=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",r=this._orderGroups()||r;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,u=this._firstGroup(),c={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},f=0,m=t.axis+t.item.vertical;return this.groups[g].redraw(e,p,l),s.forEach(this.groups,function(t){var i=t==u?c:p,o=t.redraw(e,i,l);r=o||r,f+=t.height}),f=Math.max(f,m),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[v];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[v];this.groups[g];if(this.groupsData){if(i){i.hide(),delete this.groups[v];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new l(s,r,this),this.groups[v]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(s.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:v},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},o.prototype._order=function(){s.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==v||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);s.extend(n,{height:null}),o=new l(t,i,e),e.groups[t]=o;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!s.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;in+r)return}else{var a=e.height;if(n+a-r>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var u=this.groupsData.getIds({order:this.options.groupOrder});if(!s.equalArray(u,this.groupTouchParams.originalOrder))for(var h=this.groupsData,c=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(c.length,u.length),m=0,v=0,g=0;f>m;){for(;f>m+v&&f>m+g&&u[m+v]==c[m+g];)m++;if(m+v>=f)break;if(u[m+v]!=p)if(c[m+g]!=p){var y=u.indexOf(c[m+g]),b=h.get(u[m+v]),w=h.get(c[m+g]);this.options.groupOrderSwap(b,w,h),h.update(b),h.update(w);var _=u[m+v];u[m+v]=c[m+g],u[y]=_,m++}else g=1;else v=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=s.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!s.equalArray(n,e.groupTouchParams.originalOrder))for(var r=e.groupTouchParams.originalOrder,a=Math.min(r.length,n.length),h=0;a>h;){for(;a>h&&n[h]==r[h];)h++;if(h>=a)break;var d=n.indexOf(r[h]),l=o.get(n[h]),u=o.get(r[h]);e.options.groupOrderSwap(l,u,o),groupsData.update(l),groupsData.update(u);var c=n[h];n[h]=r[h],n[d]=c,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(t.stopPropagation(),o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=s.getAbsoluteLeft(this.dom.frame),a=t.center.x-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),u={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(a+this.props.width/5);u.end=i?i(c,d,l):c}u[this.itemsData._fieldId]=s.randomUUID();var p=this.groupFromTarget(t);p&&(u.group=p.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){i.push(e.id);var s=o._getItemRange(this.itemsData.get(i,this.itemOptions));i=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=s.min&&d<=s.max&&!(a instanceof m)&&i.push(a.id)}}else{var l=i.indexOf(e.id);-1==l?i.push(e.id):i.splice(l,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"vis-year"+c+n(a)+t(c);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(32);i(33);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),"function"==typeof this.itemSet.options.order){if(i){var a=this,h=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),a.visibleItems.push(t)),t.repositionX(h)});var d=this.orderedItems.byStart.slice().sort(function(t,e){return a.itemSet.options.order(t.data,e.data)});s.stack(d,e,!0)}this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?s.stack(this.visibleItems,e,i):s.nostack(this.visibleItems,e,this.subgroups);var l=this._calculateHeight(e),u=this.dom.foreground;this.top=u.offsetTop,this.left=u.offsetLeft,this.width=u.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var c=0,p=this.visibleItems.length;p>c;c++){var f=this.visibleItems[c];f.repositionY(e)}return o},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var o=this;if(i.length>0){var s=i[0].top,r=i[0].top+i[0].height;if(n.forEach(i,function(t){s=Math.min(s,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(o.subgroups[t.data.subgroup].height=Math.max(o.subgroups[t.data.subgroup].height,t.height),o.subgroups[t.data.subgroup].visible=!0)}),s>t.axis){var a=s-t.axis;r-=a,n.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-o.vertical+ie.top}},function(t,e,i){function o(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 n=(i(20),i(34));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=n,this.width=r,i=Math.min(s-n,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,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,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(20),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;in;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(34);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation.item;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,format:r.FORMAT,moment:h,timeAxis:null},this.options=n.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n=i(1),s=i(26),r=i(30),a=i(27),h=i(2);o.prototype=new s,o.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showMinorLabels","showMajorLabels","hiddenDates","timeAxis","moment"],this.options,t), -n.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"==typeof t.orientation&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof h.locale?h.locale(t.locale):h.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=n.convert(this.body.range.start,"Number"),i=n.convert(this.body.range.end,"Number"),o=this.body.util.toTime(7*(this.props.minorCharWidth||10)).valueOf(),s=o-a.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);s-=this.body.util.toTime(0).valueOf();var h=new r(new Date(e),new Date(i),s,this.body.hiddenDates);h.setMoment(this.options.moment),this.options.format&&h.setFormat(this.options.format),this.options.timeAxis&&h.setScale(this.options.timeAxis),this.step=h;var d=this.dom;d.redundant.lines=d.lines,d.redundant.majorTexts=d.majorTexts,d.redundant.minorTexts=d.minorTexts,d.lines=[],d.majorTexts=[],d.minorTexts=[];var l,u,c,p,f,m,v,g,y,b=void 0,w=0;for(h.start(),u=h.getCurrent(),p=this.body.util.toScreen(u);h.hasNext()&&1e3>w;){w++,f=h.isMajor(),y=h.getClassName(),g=h.getLabelMinor(),l=u,c=p,h.next(),u=h.getCurrent(),p=this.body.util.toScreen(u),m=p-c;var _=(g.length+1)*this.props.minorCharWidth0&&(void 0==b&&(b=c),this._repaintMajorText(c,h.getLabelMajor(),t,y)),v=this._repaintMajorLine(c,m,t,y)):_?v=this._repaintMinorLine(c,m,t,y):v&&(v.style.width=parseInt(v.style.width)+m+"px")}if(this.options.showMajorLabels){var x=this.body.util.toTime(0),k=h.getLabelMajor(x),O=k.length*(this.props.majorCharWidth||10)+10;(void 0==b||b>O)&&this._repaintMajorText(0,k,t,y)}n.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",n.style.left=t-s.minorLineWidth/2+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-minor "+o,n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",n.style.left=t-s.majorLineWidth/2+"px",n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-major "+o,n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(41),r=i(12),a=i(20),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;no&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-configuration vis-config-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),this._push(),this.colorPicker.insertTo(this.container)}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?o-1:0),s=1;o>s;s++)n[s-1]=e[s];return n.forEach(function(t){r.appendChild(t)}),i.domElements.push(r),{v:i.domElements.length}}();if("object"==typeof r)return r.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;se&&n>e*u?(a.min=Math.ceil(e*u),l=a.min,d="range increased"):n>e/u&&(a.min=Math.ceil(e/u),l=a.min,d="range increased"),e*u>s&&1!==s&&(a.max=Math.ceil(e*u),l=a.max,d="range increased"),a.value=e}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var p=this;a.onchange=function(){c.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,f,a,c);""!==d&&this.popupHistory[m]!==l&&(this.popupHistory[m]=l,this._setupPopup(d,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;es;s++)for(r=0;rp?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),h):n.distance<=d?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),h):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),h),r=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],r=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var u in i){var c=void 0;if(void 0!==i[u].__type__&&n===!0){var p=t.findInOptions(e,i[u],s.copyAndExtendArray(o,u));r>p.distance&&(a=p.closestMatch,h=p.path,r=p.distance,l=p.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),c=t.levenshteinDistance(e,u),r>c&&(a=u,h=s.copyArray(o),r=c)}return{closestMatch:a,path:h,distance:r,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var s=0;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}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=c.customTimeFromTarget(t),h=s.getTarget(t),d=null;s.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&s.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":s.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":s.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":s.hasParent(h,this.currentTime.bar)?d="current-time":s.hasParent(h,this.dom.center)&&(d="background");var l=[],u=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return u.hidden||l.push(u.screenToValue(n)),p.hidden||l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},t.exports=o},function(t,e,i){function o(t,e){this.id=n.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=n.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=n.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var n=i(1),s=i(7),r=i(8),a=i(10),h=i(26),d=i(51),l=i(53),u=i(57),c=i(56),p=(i(54),"__ungrouped__");o.prototype=new h,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",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 u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),u={};for(this._getRelevantData(a,u,d,l),this._applySampling(a,u),e=0;ep&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;ro){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a; -s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=s)d.push(n[l]);e[t[o]]=d}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(n.getData(o)):h=h.concat(n.getData(o)):i[t[s]]=n.getYRange(o,t[s]));c.getStackedYRange(a,i,t,"__barStackLeft","left"),c.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,this.yAxisRight.stepPixels=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,this.yAxisRight.amountOfSteps=this.yAxisLeft.amountOfSteps,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;ut?-1:1});for(var a=0;a0&&(t=0),this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=this.options.visible===!0?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,this.options.icons===!0?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var e,i=this.options.orientation;if(this.master===!1){var o,n,r,h;-1!==this.zeroCrossing&&this.options.alignZeros===!0?this.range.end>0?(o=this.range.end/this.zeroCrossing,n=this.range.end-this.amountOfSteps*o,r=this.range.end):(o=-1*this.range.start/(this.amountOfSteps-this.zeroCrossing),n=this.range.start,r=this.range.start+o*this.amountOfSteps):(n=this.range.start,r=this.range.end),h=this.stepPixels}else h=this.props.majorCharHeight,n=this.range.start,r=this.range.end;if(this.step=e=new a(n,r,h,this.dom.frame.offsetHeight,this.options[this.options.orientation].range,this.options[this.options.orientation].format,this.master===!1&&this.options.alignZeros),this.master===!0)this.stepPixels=this.dom.frame.offsetHeight/e.marginRange*e.step,this.amountOfSteps=Math.ceil(this.dom.frame.offsetHeight/this.stepPixels);else if(this.options.alignZeros===!0&&-1!==this.zeroCrossing){var d=(e.current-this.zeroCrossing*e.step)/e.step;this.step.shift(d)}this.valueAtBottom=e.marginEnd,this.maxLabelSize=0;for(var l=0,u=0,c=!1;u0&&u!==this.amountOfSteps&&((this.options.showMinorLabels&&c===!1||this.master===!1&&this.options.showMinorLabels===!0)&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-minor",this.props.minorCharHeight),c&&this.options.showMajorLabels&&this.master===!0||this.options.showMinorLabels===!1&&this.master===!1&&c===!0?(l>=0&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(l,i,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(l,i,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth)),this.master===!0&&0===e.current&&(this.zeroCrossing=u),e.next(),u+=1;this.master===!0&&0===e.current&&(this.zeroCrossing=u),this.conversionFactor=this.stepPixels/e.step;var p=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(p=this.props.titleCharHeight);var f=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-f&&this.options.visible===!0?(this.width=this.maxLabelSize+f,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+f),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),t=!1),t},o.prototype.convertValue=function(t){var e=this.valueAtBottom-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtBottom-t/this.conversionFactor},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizes&&(h=s);for(var d=!1,l=h;Math.abs(l)<=Math.abs(s);l++){a=Math.pow(10,l);for(var u=0;u=n){d=!0,r=u;break}}if(d===!0)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},i.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,this.alignZeros===!0&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},i.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},i.prototype.hasNext=function(){return this.current>=this.marginStart},i.prototype.next=function(){var t=this.current;this.current-=this.step,this.current===t&&(this.current=this._end)},i.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},i.prototype.getCurrent=function(){var t=Math.abs(this.current)t)for(var e=0;-t>e;e++)this.previous();else if(t>0)for(var e=0;t>e;e++)this.next()},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var s=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation"];this.options=n.selectiveBridgeObject(s,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,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 n=i(1),s=i(7),r=i(54),a=i(56),h=i(55);o.prototype.setItems=function(t){if(null!=t){this.itemsData=t,1==this.options.sort&&this.itemsData.sort(function(t,e){return t.x-e.x});for(var e=0;et[o].y?t[o].y:e,i=i0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0===i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o.prototype.draw=function(t,e,i){if(null!=t&&t.length>0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=n.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t),1==e.options.shaded.enabled){var d,l=n.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&s.draw(t,e,i)}},o._catmullRomUniform=function(t){for(var e,i,o,n,s,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={x:(-e.x+6*i.x+o.x)*h,y:(-e.y+6*i.y+o.y)*h},r={x:(i.x+6*o.x-n.x)*h,y:(i.y+6*o.y-n.y)*h},a+="C"+s.x+","+s.y+" "+r.x+","+r.y+" "+o.x+","+o.y+" ";return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var o,n,s,r,a,h,d,l,u,c,p,f,m,v,g,y,b,w,_,x=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",k=t.length,O=0;k-1>O;O++)o=0==O?t[0]:t[O-1],n=t[O],s=t[O+1],r=k>O+2?t[O+2]:s,d=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),l=Math.sqrt(Math.pow(n.x-s.x,2)+Math.pow(n.y-s.y,2)),u=Math.sqrt(Math.pow(s.x-r.x,2)+Math.pow(s.y-r.y,2)),v=Math.pow(u,i),y=Math.pow(u,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),c=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={x:(-b*o.x+c*n.x+w*s.x)*f,y:(-b*o.y+c*n.y+w*s.y)*f},h={x:(y*n.x+p*s.x-b*r.x)*m,y:(y*n.y+p*s.y-b*r.y)*m},0==a.x&&0==a.y&&(a=n),0==h.x&&0==h.y&&(h=s),x+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+s.x+","+s.y+" ";return x},o._linear=function(t){for(var e="",i=0;it[o].y?t[o].y:e,i=it[o].y?t[o].y:e,i=i0&&(r=Math.min(r,Math.abs(c[l-1].x-a))),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved),y=l-(p[a].resolved+1);g0&&(r=Math.min(r,Math.abs(c[y].x-a))),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,d.options.stack===!0?c[l].y0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0===i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=nt?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups);t.sort(function(t,e){return e>t?-1:1}),s.prepareElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3; -this.svg.style.width=n+5+i+"px";for(var h=0;h0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var i=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[i],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=["color","font","fixed","shadow"];if(B.selectiveNotDeepExtend(o,t,e,i),B.mergeOptions(t,e,"shadow"),void 0!==e.color&&null!==e.color){var n=B.parseColor(e.color);B.fillIfDefined(t.color,n)}else i===!0&&null===e.color&&(t.color=void 0,delete t.color);void 0!==e.fixed&&null!==e.fixed&&("boolean"==typeof e.fixed?(t.fixed.x=e.fixed,t.fixed.y=e.fixed):(void 0!==e.fixed.x&&"boolean"==typeof e.fixed.x&&(t.fixed.x=e.fixed.x),void 0!==e.fixed.y&&"boolean"==typeof e.fixed.y&&(t.fixed.y=e.fixed.y))),void 0!==e.font&&a["default"].parseOptions(t.font,e),void 0!==e.scaling&&B.mergeOptions(t.scaling,e.scaling,"label")}}]),t}();e["default"]=R,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(r=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=n(d,2),u=l[0],c=l[1],p=this._setAlignment(t,i,h,s),f=n(p,2);i=f[0],h=f[1],t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,t.fillStyle=u,t.textAlign="center",this.fontOptions.strokeWidth>0&&(t.lineWidth=this.fontOptions.strokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var m=0;m0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if("horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){e=0,i=0;var n=2;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(t<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-t)));e=r.overrideOpacity(e,o),i=r.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;ithis.imageObj.height?(o=this.imageObj.width/this.imageObj.height,e=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,i=2*this.options.size*o):(e=this.imageObj.width,i=this.imageObj.height),this.width=e,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?a:r,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t),t.restore()}},{key:"_drawImageAtPosition",value:function(t){0!=this.imageObj.width&&(t.globalAlpha=1,this.enableShadow(t),t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),this.disableShadow(t))}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+3))}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(t,e,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+n+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t),t.fillText(this.options.icon.code,e,i),this.disableShadow(t)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this.resize(t),this._distanceToBorder(e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=["id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","selectionWidth","selfReferenceSize","to","title","value","width"];if(v.selectiveDeepExtend(o,t,e,i),v.mergeOptions(t,e,"smooth"),v.mergeOptions(t,e,"shadow"),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=void 0,delete t.dashes),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),v.mergeOptions(t.scaling,e.scaling,"label")):i===!0&&null===e.scaling&&(t.scaling=void 0,delete t.scaling),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var n=e.arrows.toLowerCase();-1!=n.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=n.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=n.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!=typeof e.arrows)throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));v.mergeOptions(t.arrows,e.arrows,"to"),v.mergeOptions(t.arrows,e.arrows,"middle"),v.mergeOptions(t.arrows,e.arrows,"from")}else i===!0&&null===e.arrows&&(t.arrows=void 0,delete t.arrows);if(void 0!==e.color&&null!==e.color)if(v.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var s=!1;void 0!==e.color.color&&(t.color.color=e.color.color,s=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,s=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,s=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&s===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=void 0,delete t.color);void 0!==e.font&&a["default"].parseOptions(t.font,e)}}]),t}();e["default"]=g,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function t(t,e){for(var i=0;iMath.abs(e)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var a=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=r(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,s,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=r(e,2),o=i[0],n=i[1],s=t,a=[];a[0]=Math.pow(1-s,3),a[1]=3*s*Math.pow(1-s,2),a[2]=3*Math.pow(s,2)*(1-s),a[3]=Math.pow(s,3);var h=a[0]*this.from.x+a[1]*o.x+a[2]*n.x+a[3]*this.to.x,d=a[0]*this.from.y+a[1]*o.y+a[2]*n.y+a[3]*this.to.y;return{x:h,y:d}}}]),e}(l["default"]);e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;il;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=h>d?d:h),f=c,m=p;return h}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i=l&&h>d;){var m=.5*(l+u);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)r?f===!1?l=m:u=m:f===!1?u=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;10>d;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=a>h?h:a),p=u,f=c;return a}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;io.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,u=void 0,c=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),u=this._pointOnCircle(o,n,l,g),c=Math.atan2(t.y-u.y,t.x-u.x),p=t.distanceToBorder(e,c),f=Math.sqrt(Math.pow(u.x-t.x,2)+Math.pow(u.y-t.y,2)),m=p-f,!(Math.abs(m)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return u.t=g,u}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,e===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),u=l[0],c=l[1],p=l[2],f=u-s,m=c-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"drawArrowHead",value:function(t,e,i,o,s){t.strokeStyle=this.getColor(t,o,s),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(o,s);var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0;if("from"===e?(d=this.from,l=this.to,u=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(d=this.to,l=this.from,u=-.1,c=this.options.arrows.to.scaleFactor):(d=this.to,l=this.from,c=this.options.arrows.middle.scaleFactor),d!=l){if("middle"!==e)if(this.options.smooth.enabled===!0){h=this.findBorderPosition(d,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);r=Math.atan2(h.y-p.y,h.x-p.x)}else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.6,i);a=(10+5*this.options.width)*c,t.arrow(h.x,h.y,r,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}else{var f=void 0,m=void 0,v=this._getCircleData(t),g=n(v,3),y=g[0],b=g[1],w=g[2];"from"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),f=-2*m.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),f=-2*m.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(m=this._pointOnCircle(y,b,w,.175),f=3.9269908169872414);var _=(10+5*this.options.width)*c;t.arrow(m.x,m.y,f,_),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0.5)",t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s):this.from.x>this.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"===o&&(t=i*s>n?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"===o&&(e=i*n>s?this.from.y:e));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)<=Math.abs(this.from.y-this.to.y)?(t=this.from.x,e=this.from.yMath.abs(this.from.y-this.to.y)&&(t=this.from.x=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s,t=this.to.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,e=this.to.y1&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:t.stabilizationIterations}),t.stabilizationIterations=0},0)}},{key:"physicsTick",value:function(){if(this.stabilized===!1){if(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0){var t=1.2;this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.calculateForces(),this.moveNodes(),this.revert(),this.timestep=.5*this.timestep,this.calculateForces(),this.moveNodes(),this.calculateForces(),this.moveNodes(),this._evaluateStepQuality()===!0?this.timestep=t*this.timestep:this.timestep/ts))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=this.options.maxVelocity?this.options.maxVelocity:1e9,i=0,o=0,n=5,s=0;se?s[t].x>0?e:-e:s[t].x,i.x+=s[t].x*o}else n[t].x=0,s[t].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[t].y,d=(n[t].y-h)/i.options.mass;s[t].y+=d*o,s[t].y=Math.abs(s[t].y)>e?s[t].y>0?e:-e:s[t].y,i.y+=s[t].y*o}else n[t].y=0,s[t].y=0;var l=Math.sqrt(Math.pow(s[t].x,2)+Math.pow(s[t].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].x&&t[e].y&&(this.freezeCache[e]={x:t[e].options.fixed.x,y:t[e].options.fixed.y},t[e].options.fixed.x=!0,t[e].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];return"number"!=typeof e&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),e=this.options.stabilization.iterations),0===this.physicsBody.physicsNodeIndices.length?void(this.ready=!0):(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,void setTimeout(function(){return t._stabilizationBatch()},0))}},{key:"_stabilizationBatch",value:function(){for(var t=0;this.stabilized===!1&&t0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t); -}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var u=Math.abs(r-n)-Math.abs(a-s);u>0?(s-=.5*u,a+=.5*u):(n+=.5*u,r-=.5*u);var c=1e-5,p=Math.max(c,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var h=0;o>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii&&(s=.5*u>i?1:c*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,c[r.id].x-=o,c[r.id].y-=n,c[a.id].x+=o,c[a.id].y+=n}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var o=0;o0&&Object.keys(c).length>0&&f===!0&&o.push({nodes:u,edges:c})}}}for(var l=0;lo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var o=this.body.nodes[t],n=o.containedNodes,s=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var r={},a={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];r[d]={x:l.x,y:l.y}}var u=e.releaseFunction(a,r);for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];void 0!==u[d]&&(l.x=void 0===u[d].x?o.x:u[d].x,l.y=void 0===u[d].y?o.y:u[d].y)}}else for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];l=n[d],l.x=o.x,l.y=o.y}for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];l.vx=o.vx,l.vy=o.vy,l.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[d]}for(var c=[],p=0;po;)e.push(this.clusteredNodes[t].node),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t]),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;no&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;a=d=h=void 0,o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;return void 0===h?void 0:h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return void 0;t=d,e=s,i=r,o=!0}},a=i(62),h=o(a),d=function(t){function e(t,i,o,s,a){n(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o,s,a),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}return s(e,t),e}(h["default"]);e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){t._redraw(!1)},0):window.requestAnimationFrame(function(){t._redraw(!1)}))}},{key:"_redraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");(0===this.canvas.frame.canvas.width||0===this.canvas.frame.canvas.height)&&this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),this.controlNodesActive===!0&&this._drawControlNodes(e),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0){this.body.view.scale=this.cameraState.scale*(this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth);var t=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),e={x:t.x-this.cameraState.position.x,y:t.y-this.cameraState.position.y};this.body.view.translation.x+=e.x*this.body.view.scale,this.body.view.translation.y+=e.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),r.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],e=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this._getCameraState(r),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=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,i=!0):((this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)||this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio))&&this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),i}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=a["default"]._getRange(this.body.nodes,t.nodes);var h=this.body.nodeIndices.length;o=12.662/(h+7.4147)+.0964822;var d=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);o*=d}else{this.body.emitter.emit("_resizeNodes"),i=a["default"]._getRange(this.body.nodes,t.nodes);var l=1.1*Math.abs(i.maxX-i.minX),u=1.1*Math.abs(i.maxY-i.minY),c=this.canvas.frame.canvas.clientWidth/l,p=this.canvas.frame.canvas.clientHeight/u;o=p>=c?c:p}o>1?o=1:0===o&&(o=1);var f=a["default"]._findCenter(i),m={position:f,scale:o,animation:t.animation};this.moveTo(m)}},{key:"focus",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),n50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),u=l.nodesChanges,c=l.edgesChanges,p=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0,p=!0):0>h-n?(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0):h===n&&u===!0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),this.selectionHandler._generateClickEvent("selectNode",e,t),p=!0,r=!0),a-o>0&&p===!1?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o?(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0):a===o&&c===!0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineIfDifferent",value:function(t,e){for(var i=!1,o=!1,n=0;nt&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,u=[],c=0;c0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],c=0;c0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r0?e===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return void 0}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return void 0}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptions(e);if(i===!0)return this.body.emitter.emit("refresh"),h.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptions",value:function(t){if(this.options.hierarchical.enabled===!0){void 0===t.physics||t.physics===!0?(t.physics={solver:"hierarchicalRepulsion"},this.optionsBackup.physics={solver:"barnesHut"}):"object"==typeof t.physics?(this.optionsBackup.physics={solver:"barnesHut"},void 0!==t.physics.solver&&(this.optionsBackup.physics={solver:t.physics.solver}),t.physics.solver="hierarchicalRepulsion"):t.physics!==!1&&(this.optionsBackup.physics={solver:"barnesHut"},t.physics.solver="hierarchicalRepulsion");var e="horizontal";("RL"===this.options.hierarchical.direction||"LR"===this.options.hierarchical.direction)&&(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:e}):(void 0!==t.edges.smooth.type&&"dynamic"!==t.edges.smooth.type&&(e=t.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:void 0===t.edges.smooth.type?"dynamic":t.edges.smooth.type,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:e,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var e=0;es){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var e=0;e0){var t=void 0,e=void 0,i=!1,o=!1;this.hierarchicalLevels={},this.nodeSpacing=100;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");o===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():("directed"===this.options.hierarchical.sortMethod,this._determineLevelsDirected()));var n=this._getDistribution();this._placeNodesByHierarchy(n)}}},{key:"_placeNodesByHierarchy",value:function(t){var e=void 0,i=void 0;this.positionedNodes={};for(var o in t)if(t.hasOwnProperty(o))for(e in t[o].nodes)t[o].nodes.hasOwnProperty(e)&&(i=t[o].nodes[e],"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===i.x&&(i.x=t[o].distance),t[o].distance=i.x+this.nodeSpacing):(void 0===i.y&&(i.y=t[o].distance),t[o].distance=i.y+this.nodeSpacing),this.positionedNodes[e]=!0,this._placeBranchNodes(i.edges,i.id,t,o))}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchicalLevels[e]?0:this.hierarchicalLevels[e];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===t[o]&&(t[o]={amount:0,nodes:{},distance:0}),t[o].amount+=1,t[o].nodes[e]=i}return t}},{key:"_getHubSize",value:function(){var t=0;for(var e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){var i=this.body.nodes[e];void 0===this.hierarchicalLevels[e]&&(t=i.edges.length0&&(i=this._getHubSize(),0!==i);)for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],e.edges.length===i&&this._setLevelByHubsize(0,e))}},{key:"_setLevelByHubsize",value:function(t,e){if(void 0===this.hierarchicalLevels[e.id]){var i=void 0;this.hierarchicalLevels[e.id]=t;for(var o=0;oo&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===s.x&&(s.x=Math.max(i[a].distance,r.x)),i[a].distance=s.x+this.nodeSpacing,this.positionedNodes[s.id]=!0):(void 0===s.y&&(s.y=Math.max(i[a].distance,r.y)),i[a].distance=s.y+this.nodeSpacing),this.positionedNodes[s.id]=!0,s.edges.length>1&&this._placeBranchNodes(s.edges,s.id,i,a))}}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(e.isCluster!==!0){var i=s.deepExtend({},e.options,!0);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var t=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var e=t.body.edges[t.edgeBeingEditedId],i=t._getNewTargetNode(e.from.x,e.from.y),o=t._getNewTargetNode(e.to.x,e.to.y);t.temporaryIds.nodes.push(i.id),t.temporaryIds.nodes.push(o.id),t.body.nodes[i.id]=i,t.body.nodeIndices.push(i.id),t.body.nodes[o.id]=o,t.body.nodeIndices.push(o.id),t._temporaryBindUI("onTouch",t._controlNodeTouch.bind(t)),t._temporaryBindUI("onTap",function(){}),t._temporaryBindUI("onHold",function(){}),t._temporaryBindUI("onDragStart",t._controlNodeDragStart.bind(t)),t._temporaryBindUI("onDrag",t._controlNodeDrag.bind(t)),t._temporaryBindUI("onDragEnd",t._controlNodeDragEnd.bind(t)),t._temporaryBindUI("onMouseMove",function(){}),t._temporaryBindEvent("beforeDrawing",function(t){var n=e.edgeType.findBorderPositions(t);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),t.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);return i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e,this.body.functions.createNode(i)}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}},group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},useImageSize:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=d,e.configureOptions=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function t(t,e){for(var i=0;in&&h>a;){a+=1;var v=this._getHighestEnergyNode(i),g=s(v,4);for(u=g[0],l=g[1],c=g[2],p=g[3],f=l,m=0;f>r&&d>m;){m+=1,this._moveNode(u,c,p);var y=this._getEnergy(u),b=s(y,3);f=b[0],c=b[1],p=b[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;ho&&(o=c,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=i[t].x,n=i[t].y,s=0,r=0,a=0;ad;d++)for(var s=0;h-1>s;s++)for(var r=s+1;h>r;r++)o[e[s]][e[r]]=Math.min(o[e[s]][e[r]],o[e[s]][e[d]]+o[e[d]][e[r]]),o[e[r]][e[s]]=o[e[s]][e[r]];return o}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,u=e+r,c=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,c+h,u,c,u),this.bezierCurveTo(c-h,u,t,p+d,t,p),this.bezierCurveTo(t,p-d,c-h,e,c,e),this.bezierCurveTo(c+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,c+h,m,c,m),this.bezierCurveTo(c-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),u=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,u),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=0>r?-c:c,t+=c,e+=h*c,u===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u})},function(t,e){function i(t){return P=t,p()}function o(){I=0,N=P.charAt(0)}function n(){I++,N=P.charAt(I)}function s(){return P.charAt(I+1)}function r(t){return A.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.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 u(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=a({},t.edge)),s.attr=a(s.attr||{},n),s}function c(){for(L=E.NULL,z="";" "===N||" "===N||"\n"===N||"\r"===N;)n();do{var t=!1;if("#"===N){for(var e=I-1;" "===P.charAt(e)||" "===P.charAt(e);)e--;if("\n"===P.charAt(e)||""===P.charAt(e)){for(;""!=N&&"\n"!=N;)n();t=!0}}if("/"===N&&"/"===s()){for(;""!=N&&"\n"!=N;)n();t=!0}if("/"===N&&"*"===s()){for(;""!=N;){if("*"===N&&"/"===s()){n(),n();break}n()}t=!0}for(;" "===N||" "===N||"\n"===N||"\r"===N;)n()}while(t);if(""===N)return void(L=E.DELIMITER);var i=N+s();if(S[i])return L=E.DELIMITER,z=i,n(),void n();if(S[N])return L=E.DELIMITER,z=N,void n();if(r(N)||"-"===N){for(z+=N,n();r(N);)z+=N,n();return"false"===z?z=!1:"true"===z?z=!0:isNaN(Number(z))||(z=Number(z)),void(L=E.IDENTIFIER)}if('"'===N){for(n();""!=N&&('"'!=N||'"'===N&&'"'===s());)z+=N,'"'===N&&n(),n();if('"'!=N)throw _('End of string " expected');return n(),void(L=E.IDENTIFIER)}for(L=E.UNKNOWN;""!=N;)z+=N,n();throw new SyntaxError('Syntax error in part "'+x(z,30)+'"')}function p(){var t={};if(o(),c(),"strict"===z&&(t.strict=!0,c()),("graph"===z||"digraph"===z)&&(t.type=z,c()),L===E.IDENTIFIER&&(t.id=z,c()),"{"!=z)throw _("Angle bracket { expected");if(c(),f(t),"}"!=z)throw _("Angle bracket } expected");if(c(),""!==z)throw _("End of file expected");return c(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==z&&"}"!=z;)m(t),";"===z&&c()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(L!=E.IDENTIFIER)throw _("Identifier expected");var o=z;if(c(),"="===z){if(c(),L!=E.IDENTIFIER)throw _("Identifier expected");t[o]=z,c()}else y(t,o)}}function v(t){var e=null;if("subgraph"===z&&(e={},e.type="subgraph",c(),L===E.IDENTIFIER&&(e.id=z,c())),"{"===z){if(c(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=z)throw _("Angle bracket } expected");c(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===z?(c(),t.node=w(),"node"):"edge"===z?(c(),t.edge=w(),"edge"):"graph"===z?(c(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===z||"--"===z;){var i,o=z;c();var n=v(t);if(n)i=n;else{if(L!=E.IDENTIFIER)throw _("Identifier or subgraph expected");i=z,d(t,{id:i}),c()}var s=w(),r=u(t,e,i,o,s);l(t,r),e=i}}function w(){for(var t=null;"["===z;){for(c(),t={};""!==z&&"]"!=z;){if(L!=E.IDENTIFIER)throw _("Attribute name expected");var e=z;if(c(),"="!=z)throw _("Equal sign = expected");if(c(),L!=E.IDENTIFIER)throw _("Attribute value expected");var i=z;h(t,e,i),c(),","==z&&c()}if("]"!=z)throw _("Bracket ] expected");c()}return t}function _(t){return new SyntaxError(t+', got "'+x(z,30)+'" (char '+I+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function k(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},P="",I=0,N="",z="",L=E.NULL,A=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=M},function(t,e){function i(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;ai;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0===t)return void 0;if(null===t)return null;if(!i)return t;if("string"!=typeof i&&!(i instanceof String))throw new Error("Type must be a string");switch(i){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(o.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])):o(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return o(t);if(t instanceof Date)return o(t.valueOf());if(o.isMoment(t))return o(t);if(e.isString(t))return n=s.exec(t),o(n?Number(n[1]):t);throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"ISODate":if(e.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(o.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=s.exec(t),n?new Date(Number(n[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+e.getType(t)+" to type ISODate");case"ASPDate":if(e.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(e.isString(t)){n=s.exec(t);var r;return r=n?new Date(Number(n[1])).valueOf():new Date(t).valueOf(),"/Date("+r+")/"}throw new Error("Cannot convert object of type "+e.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+i+'"')}};var s=/^\/?Date\((\-?\d+)/i;e.getType=function(t){var e=typeof t;return"object"==e?null===t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":void 0===e?"undefined":e},e.copyAndExtendArray=function(t,e){for(var i=[],o=0;oi;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},e.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},e.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},e.throttle=function(t,e){var i=null,o=!1;return function n(){i?o=!0:(o=!1,t(),i=setTimeout(function(){i=null,o&&n()},e))}},e.addEventListener=function(t,e,i,o){t.addEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,o)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,o){t.removeEventListener?(void 0===o&&(o=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,o)):t.detachEvent("on"+e,i)},e.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},e.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},e.hasParent=function(t,e){for(var i=t;i;){if(i===e)return!0;i=i.parentNode}return!1},e.option={},e.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},e.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},e.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},e.option.asSize=function(t,i){return"function"==typeof t&&(t=t()),e.isString(t)?t:e.isNumber(t)?t+"px":i||null},e.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},e.hexToRGB=function(t){var e=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(e,function(t,e,i,o){return e+e+i+i+o+o});var i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);return i?{r:parseInt(i[1],16),g:parseInt(i[2],16),b:parseInt(i[3],16)}:null},e.overrideOpacity=function(t,i){if(-1!=t.indexOf("rgba"))return t;if(-1!=t.indexOf("rgb")){var o=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+o[0]+","+o[1]+","+o[2]+","+i+")"}var o=e.hexToRGB(t);return null==o?t:"rgba("+o.r+","+o.g+","+o.b+","+i+")"},e.RGBToHex=function(t,e,i){return"#"+((1<<24)+(t<<16)+(e<<8)+i).toString(16).slice(1)},e.parseColor=function(t){var i;if(e.isString(t)===!0){if(e.isValidRGB(t)===!0){var o=t.substr(4).substr(0,t.length-5).split(",").map(function(t){return parseInt(t)});t=e.RGBToHex(o[0],o[1],o[2])}if(e.isValidHex(t)===!0){var n=e.hexToHSV(t),s={h:n.h,s:.8*n.s,v:Math.min(1,1.02*n.v)},r={h:n.h,s:Math.min(1,1.25*n.s),v:.8*n.v},a=e.HSVToHex(r.h,r.s,r.v),h=e.HSVToHex(s.h,s.s,s.v);i={background:t,border:a,highlight:{background:h,border:a},hover:{background:h,border:a}}}else i={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else i={},i.background=t.background||void 0,i.border=t.border||void 0,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||void 0,i.highlight.border=t.highlight&&t.highlight.border||void 0),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||void 0,i.hover.border=t.hover&&t.hover.border||void 0);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var o=Math.min(t,Math.min(e,i)),n=Math.max(t,Math.max(e,i));if(o==n)return{h:0,s:0,v:o};var s=t==o?e-i:i==o?t-e:i-t,r=t==o?3:i==o?1:5,a=60*(r-s/(n-o))/360,h=(n-o)/n,d=n;return{h:a,s:h,v:d}};var r={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),o=i[0].trim(),n=i[1].trim();e[o]=n}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var o=r.split(t.style.cssText),n=r.split(i),s=e.extend(o,n);t.style.cssText=r.join(s)},e.removeCssText=function(t,e){var i=r.split(t.style.cssText),o=r.split(e);for(var n in o)o.hasOwnProperty(n)&&delete i[n];t.style.cssText=r.join(i)},e.HSVToRGB=function(t,e,i){var o,n,s,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:o=i,n=l,s=h;break;case 1:o=d,n=i,s=h;break;case 2:o=h,n=i,s=l;break;case 3:o=h,n=d,s=i;break;case 4:o=l,n=h,s=i;break;case 5:o=i,n=h,s=d}return{r:Math.floor(255*o),g:Math.floor(255*n),b:Math.floor(255*s)}},e.HSVToHex=function(t,i,o){var n=e.HSVToRGB(t,i,o);return e.RGBToHex(n.r,n.g,n.b)},e.hexToHSV=function(t){var i=e.hexToRGB(t);return e.RGBToHSV(i.r,i.g,i.b)},e.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},e.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},e.isValidRGBA=function(t){t=t.replace(" ","");var e=/rgba\((\d{1,3}),(\d{1,3}),(\d{1,3}),(.{1,3})\)/i.test(t);return e},e.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var o=Object.create(i),n=0;n=r&&n>s;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===o?d[i]:d[i][o],u=e(l);if(0==u)return h;-1==u?r=h+1:a=h-1,s++}return-1},e.binarySearchValue=function(t,e,i,o){for(var n,s,r,a,h=1e4,d=0,l=0,u=t.length-1;u>=l&&h>d;){if(a=Math.floor(.5*(u+l)),n=t[Math.max(0,a-1)][i],s=t[a][i],r=t[Math.min(t.length-1,a+1)][i],s==e)return a;if(e>n&&s>e)return"before"==o?Math.max(0,a-1):a;if(e>s&&r>e)return"before"==o?a:Math.min(t.length-1,a+1);e>s?l=a+1:u=a-1,d++}return-1},e.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e,i){t.exports="undefined"!=typeof window&&window.moment||i(3)},function(t,e,i){(function(t){!function(e,i){t.exports=i()}(this,function(){function e(){return Ni.apply(null,arguments)}function i(t){Ni=t}function o(t){return"[object Array]"===Object.prototype.toString.call(t)}function n(t){return t instanceof Date||"[object Date]"===Object.prototype.toString.call(t)}function s(t,e){var i,o=[];for(i=0;i0)for(i in Ai)o=Ai[i],n=e[o],"undefined"!=typeof n&&(t[o]=n);return t}function f(t){p(this,t),this._d=new Date(null!=t._d?t._d.getTime():NaN),Bi===!1&&(Bi=!0,e.updateOffset(this),Bi=!1)}function m(t){return t instanceof f||null!=t&&null!=t._isAMomentObject}function v(t){return 0>t?Math.ceil(t):Math.floor(t)}function g(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=v(e)),i}function y(t,e,i){var o,n=Math.min(t.length,e.length),s=Math.abs(t.length-e.length),r=0;for(o=0;n>o;o++)(i&&t[o]!==e[o]||!i&&g(t[o])!==g(e[o]))&&r++;return r+s}function b(){}function w(t){return t?t.toLowerCase().replace("_","-"):t}function _(t){for(var e,i,o,n,s=0;s0;){if(o=x(n.slice(0,e).join("-")))return o;if(i&&i.length>=e&&y(n,i,!0)>=e-1)break;e--}s++}return null}function x(e){var i=null;if(!Ri[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Li._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),k(i)}catch(o){}return Ri[e]}function k(t,e){var i;return t&&(i="undefined"==typeof e?D(t):O(t,e),i&&(Li=i)),Li._abbr}function O(t,e){return null!==e?(e.abbr=t,Ri[t]=Ri[t]||new b,Ri[t].set(e),k(t),Ri[t]):(delete Ri[t],null)}function D(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Li;if(!o(t)){if(e=x(t))return e;t=[t]}return _(t)}function M(t,e){var i=t.toLowerCase();Fi[i]=Fi[i+"s"]=Fi[e]=t}function C(t){return"string"==typeof t?Fi[t]||Fi[t.toLowerCase()]:void 0}function T(t){var e,i,o={};for(i in t)r(t,i)&&(e=C(i),e&&(o[e]=t[i]));return o}function E(t,i){return function(o){return null!=o?(P(this,t,o),e.updateOffset(this,i),this):S(this,t)}}function S(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function P(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function I(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=C(t),"function"==typeof this[t])return this[t](e);return this}function z(t,e,i){var o=""+Math.abs(t),n=e-o.length,s=t>=0;return(s?i?"+":"":"-")+Math.pow(10,Math.max(0,n)).toString().substr(1)+o}function N(t,e,i,o){var n=o;"string"==typeof o&&(n=function(){return this[o]()}),t&&(Yi[t]=n),e&&(Yi[e[0]]=function(){return z(n.apply(this,arguments),e[1],e[2])}),i&&(Yi[i]=function(){return this.localeData().ordinal(n.apply(this,arguments),t)})}function L(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function A(t){var e,i,o=t.match(ji);for(e=0,i=o.length;i>e;e++)Yi[o[e]]?o[e]=Yi[o[e]]:o[e]=L(o[e]);return function(n){var s="";for(e=0;i>e;e++)s+=o[e]instanceof Function?o[e].call(n,t):o[e];return s}}function B(t,e){return t.isValid()?(e=R(e,t.localeData()),Wi[e]=Wi[e]||A(e),Wi[e](t)):t.localeData().invalidDate()}function R(t,e){function i(t){return e.longDateFormat(t)||t}var o=5;for(Hi.lastIndex=0;o>=0&&Hi.test(t);)t=t.replace(Hi,i),Hi.lastIndex=0,o-=1;return t}function F(t){return"function"==typeof t&&"[object Function]"===Object.prototype.toString.call(t)}function j(t,e,i){no[t]=F(e)?e:function(t){return t&&i?i:e}}function H(t,e){return r(no,t)?no[t](e._strict,e._locale):new RegExp(W(t))}function W(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,o,n){return e||i||o||n}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function Y(t,e){var i,o=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(o=function(t,i){i[e]=g(t)}),i=0;io;o++){if(n=h([2e3,o]),i&&!this._longMonthsParse[o]&&(this._longMonthsParse[o]=new RegExp("^"+this.months(n,"").replace(".","")+"$","i"),this._shortMonthsParse[o]=new RegExp("^"+this.monthsShort(n,"").replace(".","")+"$","i")),i||this._monthsParse[o]||(s="^"+this.months(n,"")+"|^"+this.monthsShort(n,""),this._monthsParse[o]=new RegExp(s.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[o].test(t))return o;if(i&&"MMM"===e&&this._shortMonthsParse[o].test(t))return o;if(!i&&this._monthsParse[o].test(t))return o}}function K(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),V(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function J(t){return null!=t?(K(this,t),e.updateOffset(this,!0),this):S(this,"Month")}function Q(){return V(this.year(),this.month())}function $(t){var e,i=t._a;return i&&-2===l(t).overflow&&(e=i[ao]<0||i[ao]>11?ao:i[ho]<1||i[ho]>V(i[ro],i[ao])?ho:i[lo]<0||i[lo]>24||24===i[lo]&&(0!==i[uo]||0!==i[co]||0!==i[po])?lo:i[uo]<0||i[uo]>59?uo:i[co]<0||i[co]>59?co:i[po]<0||i[po]>999?po:-1,l(t)._overflowDayOfYear&&(ro>e||e>ho)&&(e=ho),l(t).overflow=e),t}function tt(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function et(t,e){var i=!0;return a(function(){return i&&(tt(t+"\n"+(new Error).stack),i=!1),e.apply(this,arguments)},e)}function it(t,e){vo[t]||(tt(e),vo[t]=!0)}function ot(t){var e,i,o=t._i,n=go.exec(o);if(n){for(l(t).iso=!0,e=0,i=yo.length;i>e;e++)if(yo[e][1].exec(o)){t._f=yo[e][0];break}for(e=0,i=bo.length;i>e;e++)if(bo[e][1].exec(o)){t._f+=(n[6]||" ")+bo[e][0];break}o.match(eo)&&(t._f+="Z"),xt(t)}else t._isValid=!1}function nt(t){var i=wo.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(ot(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function st(t,e,i,o,n,s,r){var a=new Date(t,e,i,o,n,s,r);return 1970>t&&a.setFullYear(t),a}function rt(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function at(t){return ht(t)?366:365}function ht(t){return t%4===0&&t%100!==0||t%400===0}function dt(){return ht(this.year())}function lt(t,e,i){var o,n=i-e,s=i-t.day();return s>n&&(s-=7),n-7>s&&(s+=7),o=St(t).add(s,"d"),{week:Math.ceil(o.dayOfYear()/7),year:o.year()}}function ut(t){return lt(t,this._week.dow,this._week.doy).week}function ct(){return this._week.dow}function pt(){return this._week.doy}function ft(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function mt(t){var e=lt(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function vt(t,e,i,o,n){var s,r=6+n-o,a=rt(t,0,1+r),h=a.getUTCDay();return n>h&&(h+=7),i=null!=i?1*i:n,s=1+r+7*(e-1)-h+i,{year:s>0?t:t-1,dayOfYear:s>0?s:at(t-1)+s}}function gt(t){var e=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")}function yt(t,e,i){return null!=t?t:null!=e?e:i}function bt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function wt(t){var e,i,o,n,s=[];if(!t._d){for(o=bt(t),t._w&&null==t._a[ho]&&null==t._a[ao]&&_t(t),t._dayOfYear&&(n=yt(t._a[ro],o[ro]),t._dayOfYear>at(n)&&(l(t)._overflowDayOfYear=!0),i=rt(n,0,t._dayOfYear),t._a[ao]=i.getUTCMonth(),t._a[ho]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=s[e]=o[e];for(;7>e;e++)t._a[e]=s[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[lo]&&0===t._a[uo]&&0===t._a[co]&&0===t._a[po]&&(t._nextDay=!0,t._a[lo]=0),t._d=(t._useUTC?rt:st).apply(null,s),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[lo]=24)}}function _t(t){var e,i,o,n,s,r,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(s=1,r=4,i=yt(e.GG,t._a[ro],lt(St(),1,4).year),o=yt(e.W,1),n=yt(e.E,1)):(s=t._locale._week.dow,r=t._locale._week.doy,i=yt(e.gg,t._a[ro],lt(St(),s,r).year),o=yt(e.w,1),null!=e.d?(n=e.d,s>n&&++o):n=null!=e.e?e.e+s:s),a=vt(i,o,n,r,s),t._a[ro]=a.year,t._dayOfYear=a.dayOfYear}function xt(t){if(t._f===e.ISO_8601)return void ot(t);t._a=[],l(t).empty=!0;var i,o,n,s,r,a=""+t._i,h=a.length,d=0;for(n=R(t._f,t._locale).match(ji)||[],i=0;i0&&l(t).unusedInput.push(r),a=a.slice(a.indexOf(o)+o.length),d+=o.length),Yi[s]?(o?l(t).empty=!1:l(t).unusedTokens.push(s),U(s,o,t)):t._strict&&!o&&l(t).unusedTokens.push(s);l(t).charsLeftOver=h-d,a.length>0&&l(t).unusedInput.push(a),l(t).bigHour===!0&&t._a[lo]<=12&&t._a[lo]>0&&(l(t).bigHour=void 0),t._a[lo]=kt(t._locale,t._a[lo],t._meridiem),wt(t),$(t)}function kt(t,e,i){var o;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(o=t.isPM(i),o&&12>e&&(e+=12),o||12!==e||(e=0),e):e}function Ot(t){var e,i,o,n,s;if(0===t._f.length)return l(t).invalidFormat=!0,void(t._d=new Date(NaN));for(n=0;ns)&&(o=s,i=e));a(t,i||e)}function Dt(t){if(!t._d){var e=T(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],wt(t)}}function Mt(t){var e=new f($(Ct(t)));return e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e}function Ct(t){var e=t._i,i=t._f;return t._locale=t._locale||D(t._l),null===e||void 0===i&&""===e?c({nullInput:!0}):("string"==typeof e&&(t._i=e=t._locale.preparse(e)),m(e)?new f($(e)):(o(i)?Ot(t):i?xt(t):n(e)?t._d=e:Tt(t),t))}function Tt(t){var i=t._i;void 0===i?t._d=new Date:n(i)?t._d=new Date(+i):"string"==typeof i?nt(t):o(i)?(t._a=s(i.slice(0),function(t){return parseInt(t,10)}),wt(t)):"object"==typeof i?Dt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Et(t,e,i,o,n){var s={};return"boolean"==typeof i&&(o=i,i=void 0),s._isAMomentObject=!0,s._useUTC=s._isUTC=n,s._l=i,s._i=t,s._f=e,s._strict=o,Mt(s)}function St(t,e,i,o){return Et(t,e,i,o,!1)}function Pt(t,e){var i,n;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return St();for(i=e[0],n=1;nt&&(t=-t,i="-"),i+z(~~(t/60),2)+e+z(~~t%60,2)})}function Bt(t){var e=(t||"").match(eo)||[],i=e[e.length-1]||[],o=(i+"").match(Do)||["-",0,0],n=+(60*o[1])+g(o[2]);return"+"===o[0]?n:-n}function Rt(t,i){var o,s;return i._isUTC?(o=i.clone(),s=(m(t)||n(t)?+t:+St(t))-+o,o._d.setTime(+o._d+s),e.updateOffset(o,!1),o):St(t).local()}function Ft(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function jt(t,i){var o,n=this._offset||0;return null!=t?("string"==typeof t&&(t=Bt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(o=Ft(this)),this._offset=t,this._isUTC=!0,null!=o&&this.add(o,"m"),n!==t&&(!i||this._changeInProgress?ie(this,Jt(t-n,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?n:Ft(this)}function Ht(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Wt(t){return this.utcOffset(0,t)}function Yt(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(Ft(this),"m")),this}function Gt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Bt(this._i)),this}function Ut(t){return t=t?St(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Vt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function qt(){if("undefined"!=typeof this._isDSTShifted)return this._isDSTShifted;var t={};if(p(t,this),t=Ct(t),t._a){var e=t._isUTC?h(t._a):St(t._a);this._isDSTShifted=this.isValid()&&y(t._a,e.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Xt(){return!this._isUTC}function Zt(){return this._isUTC}function Kt(){return this._isUTC&&0===this._offset}function Jt(t,e){var i,o,n,s=t,a=null;return Lt(t)?s={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(s={},e?s[e]=t:s.milliseconds=t):(a=Mo.exec(t))?(i="-"===a[1]?-1:1,s={y:0,d:g(a[ho])*i,h:g(a[lo])*i,m:g(a[uo])*i,s:g(a[co])*i,ms:g(a[po])*i}):(a=Co.exec(t))?(i="-"===a[1]?-1:1,s={y:Qt(a[2],i),M:Qt(a[3],i),d:Qt(a[4],i),h:Qt(a[5],i),m:Qt(a[6],i),s:Qt(a[7],i),w:Qt(a[8],i)}):null==s?s={}:"object"==typeof s&&("from"in s||"to"in s)&&(n=te(St(s.from),St(s.to)),s={},s.ms=n.milliseconds,s.M=n.months),o=new Nt(s),Lt(t)&&r(t,"_locale")&&(o._locale=t._locale),o}function Qt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function $t(t,e){var i={milliseconds:0,months:0};return i.months=e.month()-t.month()+12*(e.year()-t.year()),t.clone().add(i.months,"M").isAfter(e)&&--i.months,i.milliseconds=+e-+t.clone().add(i.months,"M"),i}function te(t,e){var i;return e=Rt(e,t),t.isBefore(e)?i=$t(t,e):(i=$t(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function ee(t,e){return function(i,o){var n,s;return null===o||isNaN(+o)||(it(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),s=i,i=o,o=s),i="string"==typeof i?+i:i,n=Jt(i,o),ie(this,n,t),this}}function ie(t,i,o,n){var s=i._milliseconds,r=i._days,a=i._months;n=null==n?!0:n,s&&t._d.setTime(+t._d+s*o),r&&P(t,"Date",S(t,"Date")+r*o),a&&K(t,S(t,"Month")+a*o),n&&e.updateOffset(t,r||a)}function oe(t,e){var i=t||St(),o=Rt(i,this).startOf("day"),n=this.diff(o,"days",!0),s=-6>n?"sameElse":-1>n?"lastWeek":0>n?"lastDay":1>n?"sameDay":2>n?"nextDay":7>n?"nextWeek":"sameElse";return this.format(e&&e[s]||this.localeData().calendar(s,this,St(i)))}function ne(){return new f(this)}function se(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:St(t),+this>+t):(i=m(t)?+t:+St(t),i<+this.clone().startOf(e))}function re(t,e){var i;return e=C("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:St(t),+t>+this):(i=m(t)?+t:+St(t),+this.clone().endOf(e)e-s?(i=t.clone().add(n-1,"months"),o=(e-s)/(s-i)):(i=t.clone().add(n+1,"months"),o=(e-s)/(i-s)),-(n+o)}function ue(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function ce(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(i=St([2e3,1]).day(e),o="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(o.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function We(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Be(t,this.localeData()),this.add(t-e,"d")):e}function Ye(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Ge(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function Ue(t,e){N(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Ve(t,e){return e._meridiemParse}function qe(t){return"p"===(t+"").toLowerCase().charAt(0)}function Xe(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Ze(t,e){e[po]=g(1e3*("0."+t))}function Ke(){return this._isUTC?"UTC":""}function Je(){return this._isUTC?"Coordinated Universal Time":""}function Qe(t){return St(1e3*t)}function $e(){return St.apply(null,arguments).parseZone()}function ti(t,e,i){var o=this._calendar[t];return"function"==typeof o?o.call(e,i):o}function ei(t){var e=this._longDateFormat[t],i=this._longDateFormat[t.toUpperCase()];return e||!i?e:(this._longDateFormat[t]=i.replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t])}function ii(){return this._invalidDate}function oi(t){return this._ordinal.replace("%d",t)}function ni(t){return t}function si(t,e,i,o){var n=this._relativeTime[i];return"function"==typeof n?n(t,e,i,o):n.replace(/%d/i,t)}function ri(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ai(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)}function hi(t,e,i,o){var n=D(),s=h().set(o,e);return n[i](s,t)}function di(t,e,i,o,n){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return hi(t,e,i,n);var s,r=[];for(s=0;o>s;s++)r[s]=hi(t,s,i,n);return r}function li(t,e){return di(t,e,"months",12,"month")}function ui(t,e){return di(t,e,"monthsShort",12,"month")}function ci(t,e){return di(t,e,"weekdays",7,"day")}function pi(t,e){return di(t,e,"weekdaysShort",7,"day")}function fi(t,e){return di(t,e,"weekdaysMin",7,"day")}function mi(){var t=this._data;return this._milliseconds=Ko(this._milliseconds),this._days=Ko(this._days),this._months=Ko(this._months),t.milliseconds=Ko(t.milliseconds),t.seconds=Ko(t.seconds),t.minutes=Ko(t.minutes),t.hours=Ko(t.hours),t.months=Ko(t.months),t.years=Ko(t.years),this}function vi(t,e,i,o){var n=Jt(e,i);return t._milliseconds+=o*n._milliseconds,t._days+=o*n._days,t._months+=o*n._months,t._bubble()}function gi(t,e){return vi(this,t,e,1)}function yi(t,e){return vi(this,t,e,-1)}function bi(t){return 0>t?Math.floor(t):Math.ceil(t)}function wi(){var t,e,i,o,n,s=this._milliseconds,r=this._days,a=this._months,h=this._data;return s>=0&&r>=0&&a>=0||0>=s&&0>=r&&0>=a||(s+=864e5*bi(xi(a)+r),r=0,a=0),h.milliseconds=s%1e3,t=v(s/1e3),h.seconds=t%60,e=v(t/60),h.minutes=e%60,i=v(e/60),h.hours=i%24,r+=v(i/24),n=v(_i(r)),a+=n,r-=bi(xi(n)),o=v(a/12),a%=12,h.days=r,h.months=a,h.years=o,this}function _i(t){return 4800*t/146097}function xi(t){return 146097*t/4800}function ki(t){var e,i,o=this._milliseconds;if(t=C(t),"month"===t||"year"===t)return e=this._days+o/864e5,i=this._months+_i(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xi(this._months)),t){case"week":return e/7+o/6048e5;case"day":return e+o/864e5;case"hour":return 24*e+o/36e5;case"minute":return 1440*e+o/6e4;case"second":return 86400*e+o/1e3;case"millisecond":return Math.floor(864e5*e)+o;default:throw new Error("Unknown unit "+t)}}function Oi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*g(this._months/12)}function Di(t){return function(){return this.as(t)}}function Mi(t){return t=C(t),this[t+"s"]()}function Ci(t){return function(){return this._data[t]}}function Ti(){return v(this.days()/7)}function Ei(t,e,i,o,n){return n.relativeTime(e||1,!!i,t,o)}function Si(t,e,i){var o=Jt(t).abs(),n=pn(o.as("s")),s=pn(o.as("m")),r=pn(o.as("h")),a=pn(o.as("d")),h=pn(o.as("M")),d=pn(o.as("y")),l=n0,l[4]=i,Ei.apply(null,l)}function Pi(t,e){return void 0===fn[t]?!1:void 0===e?fn[t]:(fn[t]=e,!0)}function Ii(t){var e=this.localeData(),i=Si(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function zi(){var t,e,i,o=mn(this._milliseconds)/1e3,n=mn(this._days),s=mn(this._months);t=v(o/60),e=v(t/60),o%=60,t%=60,i=v(s/12),s%=12;var r=i,a=s,h=n,d=e,l=t,u=o,c=this.asSeconds();return c?(0>c?"-":"")+"P"+(r?r+"Y":"")+(a?a+"M":"")+(h?h+"D":"")+(d||l||u?"T":"")+(d?d+"H":"")+(l?l+"M":"")+(u?u+"S":""):"P0D"}var Ni,Li,Ai=e.momentProperties=[],Bi=!1,Ri={},Fi={},ji=/(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,Hi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Wi={},Yi={},Gi=/\d/,Ui=/\d\d/,Vi=/\d{3}/,qi=/\d{4}/,Xi=/[+-]?\d{6}/,Zi=/\d\d?/,Ki=/\d{1,3}/,Ji=/\d{1,4}/,Qi=/[+-]?\d{1,6}/,$i=/\d+/,to=/[+-]?\d+/,eo=/Z|[+-]\d\d:?\d\d/gi,io=/[+-]?\d+(\.\d{1,3})?/,oo=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,no={},so={},ro=0,ao=1,ho=2,lo=3,uo=4,co=5,po=6;N("M",["MM",2],"Mo",function(){return this.month()+1}),N("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),N("MMMM",0,0,function(t){return this.localeData().months(this,t)}),M("month","M"),j("M",Zi),j("MM",Zi,Ui),j("MMM",oo),j("MMMM",oo),Y(["M","MM"],function(t,e){e[ao]=g(t)-1}),Y(["MMM","MMMM"],function(t,e,i,o){var n=i._locale.monthsParse(t,o,i._strict);null!=n?e[ao]=n:l(i).invalidMonth=t});var fo="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),mo="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),vo={};e.suppressDeprecationWarnings=!1;var go=/^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,yo=[["YYYYYY-MM-DD",/[+-]\d{6}-\d{2}-\d{2}/],["YYYY-MM-DD",/\d{4}-\d{2}-\d{2}/],["GGGG-[W]WW-E",/\d{4}-W\d{2}-\d/],["GGGG-[W]WW",/\d{4}-W\d{2}/],["YYYY-DDD",/\d{4}-\d{3}/]],bo=[["HH:mm:ss.SSSS",/(T| )\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss",/(T| )\d\d:\d\d:\d\d/],["HH:mm",/(T| )\d\d:\d\d/],["HH",/(T| )\d\d/]],wo=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=et("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),N(0,["YY",2],0,function(){return this.year()%100}),N(0,["YYYY",4],0,"year"),N(0,["YYYYY",5],0,"year"),N(0,["YYYYYY",6,!0],0,"year"),M("year","y"),j("Y",to),j("YY",Zi,Ui),j("YYYY",Ji,qi),j("YYYYY",Qi,Xi),j("YYYYYY",Qi,Xi),Y(["YYYYY","YYYYYY"],ro),Y("YYYY",function(t,i){i[ro]=2===t.length?e.parseTwoDigitYear(t):g(t)}),Y("YY",function(t,i){i[ro]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return g(t)+(g(t)>68?1900:2e3)};var _o=E("FullYear",!1);N("w",["ww",2],"wo","week"),N("W",["WW",2],"Wo","isoWeek"),M("week","w"),M("isoWeek","W"),j("w",Zi),j("ww",Zi,Ui),j("W",Zi),j("WW",Zi,Ui),G(["w","ww","W","WW"],function(t,e,i,o){e[o.substr(0,1)]=g(t)});var xo={dow:0,doy:6};N("DDD",["DDDD",3],"DDDo","dayOfYear"),M("dayOfYear","DDD"),j("DDD",Ki),j("DDDD",Vi),Y(["DDD","DDDD"],function(t,e,i){i._dayOfYear=g(t)}),e.ISO_8601=function(){};var ko=et("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=St.apply(null,arguments);return this>t?this:t}),Oo=et("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=St.apply(null,arguments);return t>this?this:t});At("Z",":"),At("ZZ",""),j("Z",eo),j("ZZ",eo),Y(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Bt(t)});var Do=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var Mo=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,Co=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/;Jt.fn=Nt.prototype;var To=ee(1,"add"),Eo=ee(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var So=et("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return void 0===t?this.localeData():this.locale(t)});N(0,["gg",2],0,function(){return this.weekYear()%100}),N(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Se("gggg","weekYear"),Se("ggggg","weekYear"),Se("GGGG","isoWeekYear"),Se("GGGGG","isoWeekYear"),M("weekYear","gg"),M("isoWeekYear","GG"),j("G",to),j("g",to),j("GG",Zi,Ui),j("gg",Zi,Ui),j("GGGG",Ji,qi),j("gggg",Ji,qi),j("GGGGG",Qi,Xi),j("ggggg",Qi,Xi),G(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,o){e[o.substr(0,2)]=g(t)}),G(["gg","GG"],function(t,i,o,n){i[n]=e.parseTwoDigitYear(t)}),N("Q",0,0,"quarter"),M("quarter","Q"),j("Q",Gi),Y("Q",function(t,e){e[ao]=3*(g(t)-1)}),N("D",["DD",2],"Do","date"),M("date","D"),j("D",Zi),j("DD",Zi,Ui),j("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),Y(["D","DD"],ho),Y("Do",function(t,e){e[ho]=g(t.match(Zi)[0],10)});var Po=E("Date",!0);N("d",0,"do","day"),N("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),N("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),N("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),N("e",0,0,"weekday"),N("E",0,0,"isoWeekday"),M("day","d"),M("weekday","e"),M("isoWeekday","E"),j("d",Zi),j("e",Zi),j("E",Zi),j("dd",oo),j("ddd",oo),j("dddd",oo),G(["dd","ddd","dddd"],function(t,e,i){var o=i._locale.weekdaysParse(t);null!=o?e.d=o:l(i).invalidWeekday=t}),G(["d","e","E"],function(t,e,i,o){e[o]=g(t)});var Io="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),zo="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),No="Su_Mo_Tu_We_Th_Fr_Sa".split("_");N("H",["HH",2],0,"hour"),N("h",["hh",2],0,function(){return this.hours()%12||12}),Ue("a",!0),Ue("A",!1),M("hour","h"),j("a",Ve),j("A",Ve),j("H",Zi),j("h",Zi),j("HH",Zi,Ui),j("hh",Zi,Ui),Y(["H","HH"],lo),Y(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),Y(["h","hh"],function(t,e,i){e[lo]=g(t),l(i).bigHour=!0});var Lo=/[ap]\.?m?\.?/i,Ao=E("Hours",!0);N("m",["mm",2],0,"minute"),M("minute","m"),j("m",Zi),j("mm",Zi,Ui),Y(["m","mm"],uo);var Bo=E("Minutes",!1);N("s",["ss",2],0,"second"),M("second","s"),j("s",Zi),j("ss",Zi,Ui),Y(["s","ss"],co);var Ro=E("Seconds",!1);N("S",0,0,function(){return~~(this.millisecond()/100)}),N(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),N(0,["SSS",3],0,"millisecond"),N(0,["SSSS",4],0,function(){return 10*this.millisecond()}),N(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),N(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),N(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),N(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),N(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),M("millisecond","ms"),j("S",Ki,Gi),j("SS",Ki,Ui),j("SSS",Ki,Vi);var Fo;for(Fo="SSSS";Fo.length<=9;Fo+="S")j(Fo,$i);for(Fo="S";Fo.length<=9;Fo+="S")Y(Fo,Ze);var jo=E("Milliseconds",!1);N("z",0,0,"zoneAbbr"),N("zz",0,0,"zoneName");var Ho=f.prototype;Ho.add=To,Ho.calendar=oe,Ho.clone=ne,Ho.diff=de,Ho.endOf=_e,Ho.format=pe,Ho.from=fe,Ho.fromNow=me,Ho.to=ve,Ho.toNow=ge,Ho.get=I,Ho.invalidAt=Ee,Ho.isAfter=se,Ho.isBefore=re,Ho.isBetween=ae,Ho.isSame=he,Ho.isValid=Ce,Ho.lang=So,Ho.locale=ye,Ho.localeData=be,Ho.max=Oo,Ho.min=ko,Ho.parsingFlags=Te,Ho.set=I,Ho.startOf=we,Ho.subtract=Eo,Ho.toArray=De,Ho.toObject=Me,Ho.toDate=Oe,Ho.toISOString=ce,Ho.toJSON=ce,Ho.toString=ue,Ho.unix=ke,Ho.valueOf=xe,Ho.year=_o,Ho.isLeapYear=dt,Ho.weekYear=Ie,Ho.isoWeekYear=ze,Ho.quarter=Ho.quarters=Ae,Ho.month=J,Ho.daysInMonth=Q,Ho.week=Ho.weeks=ft,Ho.isoWeek=Ho.isoWeeks=mt,Ho.weeksInYear=Le,Ho.isoWeeksInYear=Ne,Ho.date=Po,Ho.day=Ho.days=We,Ho.weekday=Ye,Ho.isoWeekday=Ge,Ho.dayOfYear=gt,Ho.hour=Ho.hours=Ao,Ho.minute=Ho.minutes=Bo,Ho.second=Ho.seconds=Ro,Ho.millisecond=Ho.milliseconds=jo,Ho.utcOffset=jt,Ho.utc=Wt,Ho.local=Yt,Ho.parseZone=Gt,Ho.hasAlignedHourOffset=Ut,Ho.isDST=Vt,Ho.isDSTShifted=qt,Ho.isLocal=Xt,Ho.isUtcOffset=Zt,Ho.isUtc=Kt,Ho.isUTC=Kt,Ho.zoneAbbr=Ke,Ho.zoneName=Je,Ho.dates=et("dates accessor is deprecated. Use date instead.",Po),Ho.months=et("months accessor is deprecated. Use month instead",J),Ho.years=et("years accessor is deprecated. Use year instead",_o),Ho.zone=et("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Ht);var Wo=Ho,Yo={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},Go={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},Uo="Invalid date",Vo="%d",qo=/\d{1,2}/,Xo={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"},Zo=b.prototype;Zo._calendar=Yo,Zo.calendar=ti,Zo._longDateFormat=Go,Zo.longDateFormat=ei,Zo._invalidDate=Uo,Zo.invalidDate=ii,Zo._ordinal=Vo,Zo.ordinal=oi,Zo._ordinalParse=qo,Zo.preparse=ni,Zo.postformat=ni,Zo._relativeTime=Xo,Zo.relativeTime=si,Zo.pastFuture=ri,Zo.set=ai,Zo.months=q,Zo._months=fo,Zo.monthsShort=X,Zo._monthsShort=mo,Zo.monthsParse=Z,Zo.week=ut,Zo._week=xo,Zo.firstDayOfYear=pt,Zo.firstDayOfWeek=ct,Zo.weekdays=Re,Zo._weekdays=Io,Zo.weekdaysMin=je,Zo._weekdaysMin=No,Zo.weekdaysShort=Fe,Zo._weekdaysShort=zo,Zo.weekdaysParse=He,Zo.isPM=qe,Zo._meridiemParse=Lo,Zo.meridiem=Xe,k("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===g(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=et("moment.lang is deprecated. Use moment.locale instead.",k),e.langData=et("moment.langData is deprecated. Use moment.localeData instead.",D);var Ko=Math.abs,Jo=Di("ms"),Qo=Di("s"),$o=Di("m"),tn=Di("h"),en=Di("d"),on=Di("w"),nn=Di("M"),sn=Di("y"),rn=Ci("milliseconds"),an=Ci("seconds"),hn=Ci("minutes"),dn=Ci("hours"),ln=Ci("days"),un=Ci("months"),cn=Ci("years"),pn=Math.round,fn={s:45,m:45,h:22,d:26,M:11},mn=Math.abs,vn=Nt.prototype;vn.abs=mi,vn.add=gi,vn.subtract=yi,vn.as=ki,vn.asMilliseconds=Jo,vn.asSeconds=Qo,vn.asMinutes=$o,vn.asHours=tn,vn.asDays=en,vn.asWeeks=on,vn.asMonths=nn,vn.asYears=sn,vn.valueOf=Oi,vn._bubble=wi,vn.get=Mi,vn.milliseconds=rn,vn.seconds=an,vn.minutes=hn,vn.hours=dn,vn.days=ln,vn.weeks=Ti,vn.months=un,vn.years=cn,vn.humanize=Ii,vn.toISOString=zi,vn.toString=zi,vn.toJSON=zi,vn.locale=ye,vn.localeData=be,vn.toIsoString=et("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",zi),vn.lang=So,N("X",0,0,"unix"),N("x",0,0,"valueOf"),j("x",to),j("X",io),Y("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),Y("x",function(t,e,i){i._d=new Date(g(t))}),e.version="2.10.6",i(St),e.fn=Wo,e.min=It,e.max=zt,e.utc=h,e.unix=Qe,e.months=li,e.isDate=n,e.locale=k,e.invalid=c,e.duration=Jt,e.isMoment=m,e.weekdays=ci,e.parseZone=$e,e.localeData=D,e.isDuration=Lt,e.monthsShort=ui,e.weekdaysMin=fi,e.defineLocale=O,e.weekdaysShort=pi,e.normalizeUnits=C,e.relativeTimeThreshold=Pi;var gn=e;return gn})}).call(e,i(4)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){function i(t){throw new Error("Cannot find module '"+t+"'.")}i.keys=function(){return[]},i.resolve=i,t.exports=i,i.id=5},function(t,e){(function(e){function i(t,e,i){var o=e&&i||0,n=0;for(e=e||[],t.toLowerCase().replace(/[0-9a-f]{2}/g,function(t){16>n&&(e[o+n++]=u[t])});16>n;)e[o+n++]=0;return e}function o(t,e){var i=e||0,o=l;return o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+"-"+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]+o[t[i++]]}function n(t,e,i){var n=e&&i||0,s=e||[];t=t||{};var r=void 0!==t.clockseq?t.clockseq:m,a=void 0!==t.msecs?t.msecs:(new Date).getTime(),h=void 0!==t.nsecs?t.nsecs:g+1,d=a-v+(h-g)/1e4;if(0>d&&void 0===t.clockseq&&(r=r+1&16383),(0>d||a>v)&&void 0===t.nsecs&&(h=0),h>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");v=a,g=h,m=r,a+=122192928e5;var l=(1e4*(268435455&a)+h)%4294967296;s[n++]=l>>>24&255,s[n++]=l>>>16&255,s[n++]=l>>>8&255,s[n++]=255&l;var u=a/4294967296*1e4&268435455;s[n++]=u>>>8&255,s[n++]=255&u,s[n++]=u>>>24&15|16,s[n++]=u>>>16&255,s[n++]=r>>>8|128,s[n++]=255&r;for(var c=t.node||f,p=0;6>p;p++)s[n+p]=c[p];return e?e:o(s)}function s(t,e,i){var n=e&&i||0;"string"==typeof t&&(e="binary"==t?new Array(16):null,t=null),t=t||{};var s=t.random||(t.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,e)for(var a=0;16>a;a++)e[n+a]=s[a];return e||o(s)}var r,a="undefined"!=typeof window?window:"undefined"!=typeof e?e:null;if(a&&a.crypto&&crypto.getRandomValues){var h=new Uint8Array(16);r=function(){return crypto.getRandomValues(h),h}}if(!r){var d=new Array(16);r=function(){for(var t,e=0;16>e;e++)0===(3&e)&&(t=4294967296*Math.random()),d[e]=t>>>((3&e)<<3)&255;return d}}for(var l=[],u={},c=0;256>c;c++)l[c]=(c+256).toString(16).substr(1),u[l[c]]=c;var p=r(),f=[1|p[0],p[1],p[2],p[3],p[4],p[5]],m=16383&(p[6]<<8|p[7]),v=0,g=0,y=s;y.v1=n,y.v4=s,y.parse=i,y.unparse=o,t.exports=y}).call(e,function(){return this}())},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(o)):(o=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(o)),e[t].used.push(o),o},e.getDOMElement=function(t,e,i,o){var n;return e.hasOwnProperty(t)?e[t].redundant.length>0?(n=e[t].redundant[0],e[t].redundant.shift()):(n=document.createElement(t),void 0!==o?i.insertBefore(n,o):i.appendChild(n)):(n=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==o?i.insertBefore(n,o):i.appendChild(n)),e[t].used.push(n),n},e.drawPoint=function(t,i,o,n,s,r){var a;if("circle"==o.style?(a=e.getSVGElement("circle",n,s),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*o.size)):(a=e.getSVGElement("rect",n,s),a.setAttributeNS(null,"x",t-.5*o.size),a.setAttributeNS(null,"y",i-.5*o.size),a.setAttributeNS(null,"width",o.size),a.setAttributeNS(null,"height",o.size)),void 0!==o.style&&a.setAttributeNS(null,"style",o.style),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var o=this._options.type[i];"Date"==o||"ISODate"==o||"ASPDate"==o?this._type[i]="Date":this._type[i]=o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n=i(1),s=i(9);o.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=s.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},o.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},o.prototype.subscribe=function(){throw new Error("DataSet.subscribe is deprecated. Use DataSet.on instead.")},o.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},o.prototype.unsubscribe=function(){throw new Error("DataSet.unsubscribe is deprecated. Use DataSet.off instead.")},o.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var o=[];t in this._subscribers&&(o=o.concat(this._subscribers[t])),"*"in this._subscribers&&(o=o.concat(this._subscribers["*"]));for(var n=0;ns;s++)i=n._addItem(t[s]),o.push(i);else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),o.push(i)}return o.length&&this._trigger("add",{items:o},e),o},o.prototype.update=function(t,e){var i=[],o=[],n=[],s=this,r=s._fieldId,a=function(t){var e=t[r];s._data[e]?(e=s._updateItem(t),o.push(e),n.push(t)):(e=s._addItem(t),i.push(e))};if(Array.isArray(t))for(var h=0,d=t.length;d>h;h++)a(t[h]);else{if(!(t instanceof Object))throw new Error("Unknown dataType");a(t)}return i.length&&this._trigger("add",{items:i},e),o.length&&this._trigger("update",{items:o,data:n},e),i.concat(o)},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r?(e=arguments[0],o=arguments[1]):"Array"==r?(i=arguments[0],o=arguments[1]):o=arguments[0];var a;if(o&&o.returnType){var h=["Array","Object"];a=-1==h.indexOf(o.returnType)?"Array":o.returnType}else a="Array";var d,l,u,c,p=o&&o.type||this._options.type,f=o&&o.filter,m=[];if(void 0!=e)d=s._getItem(e,p),f&&!f(d)&&(d=null);else if(void 0!=i)for(u=0,c=i.length;c>u;u++)d=s._getItem(i[u],p),(!f||f(d))&&m.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=s._getItem(l,p),(!f||f(d))&&m.push(d));if(o&&o.order&&void 0==e&&this._sort(m,o.order),o&&o.fields){var v=o.fields;if(void 0!=e)d=this._filterFields(d,v);else for(u=0,c=m.length;c>u;u++)m[u]=this._filterFields(m[u],v)}if("Object"==a){var g={};for(u=0;ue;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=this._getItem(o,d),a(n)&&l.push(n[this._fieldId]));else if(h){s=[];for(o in r)r.hasOwnProperty(o)&&s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)l[e]=s[e][this._fieldId]}else for(o in r)r.hasOwnProperty(o)&&(n=r[o],l.push(n[this._fieldId]));return l},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n=e&&e.filter,s=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],o=i[this._fieldId],t(i,o);else for(o in r)r.hasOwnProperty(o)&&(i=this._getItem(o,s),(!n||n(i))&&t(i,o))},o.prototype.map=function(t,e){var i,o=e&&e.filter,n=e&&e.type||this._options.type,s=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,n),(!o||o(i))&&s.push(t(i,a)));return e&&e.order&&this._sort(s,e.order),s},o.prototype._filterFields=function(t,e){if(!t)return t;var i={};if(Array.isArray(e))for(var o in t)t.hasOwnProperty(o)&&-1!=e.indexOf(o)&&(i[o]=t[o]);else for(var o in t)t.hasOwnProperty(o)&&e.hasOwnProperty(o)&&(i[e[o]]=t[o]);return i},o.prototype._sort=function(t,e){if(n.isString(e)){var i=e;t.sort(function(t,e){var o=t[i],n=e[i];return o>n?1:n>o?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},o.prototype.remove=function(t,e){var i,o,n,s=[];if(Array.isArray(t))for(i=0,o=t.length;o>i;i++)n=this._remove(t[i]),null!=n&&s.push(n);else n=this._remove(t),null!=n&&s.push(n);return s.length&&this._trigger("remove",{items:s},e),s},o.prototype._remove=function(t){if(n.isNumber(t)||n.isString(t)){if(this._data[t])return delete this._data[t],this.length--,t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],this.length--,e}return null},o.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},o.prototype.max=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||r>o)&&(i=s,o=r)}return i},o.prototype.min=function(t){var e=this._data,i=null,o=null;for(var n in e)if(e.hasOwnProperty(n)){var s=e[n],r=s[t];null!=r&&(!i||o>r)&&(i=s,o=r)}return i},o.prototype.distinct=function(t){var e,i=this._data,o=[],s=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(o[e]==d){l=!0;break}l||void 0===d||(o[r]=d,r++)}if(s)for(e=0;ethis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},i.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=i},function(t,e,i){function o(t,e){this._data=null,this._ids={},this.length=0,this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var n=i(1),s=i(8);o.prototype.setData=function(t){var e,i,o;if(this._data){this._data.off&&this._data.off("*",this.listener),e=[];for(var n in this._ids)this._ids.hasOwnProperty(n)&&e.push(n);this._ids={},this.length=0,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,o=e.length;o>i;i++)n=e[i],this._ids[n]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},o=[],n=[],s=0;so;o++)s=a[o],r=this.get(s),r&&(this._ids[s]=!0,l.push(s));break;case"update":for(o=0,n=a.length;n>o;o++)s=a[o],r=this.get(s),r?this._ids[s]?(u.push(s),d.push(e.data[o])):(this._ids[s]=!0,l.push(s)):this._ids[s]&&(delete this._ids[s], +c.push(s));break;case"remove":for(o=0,n=a.length;n>o;o++)s=a[o],this._ids[s]&&(delete this._ids[s],c.push(s))}this.length+=l.length-c.length,l.length&&this._trigger("add",{items:l},i),u.length&&this._trigger("update",{items:u,data:d},i),c.length&&this._trigger("remove",{items:c},i)}},o.prototype.on=s.prototype.on,o.prototype.off=s.prototype.off,o.prototype._trigger=s.prototype._trigger,o.prototype.subscribe=o.prototype.on,o.prototype.unsubscribe=o.prototype.off,t.exports=o},function(t,e,i){function o(t,e,i){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var n=function(t){return t};this.xValueLabel=n,this.yValueLabel=n,this.zValueLabel=n,this.filterLabel="time",this.legendLabel="value",this.style=o.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new c,this.camera.setArmRotation(1,.5),this.camera.setArmLength(1.7),this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.axisColor="#4D4D4D",this.gridColor="#D3D3D3",this.dataColor={fill:"#7DC1FF",stroke:"#3267D2",strokeWidth:1},this.create(),this.setOptions(i),e&&this.setData(e)}function n(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function s(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(12),a=i(8),h=i(10),d=i(1),l=i(13),u=i(14),c=i(15),p=i(16),f=i(17),m=i(18);r(o.prototype),o.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==o.STYLE.DOTCOLOR&&this.style!==o.STYLE.DOTSIZE&&this.style!==o.STYLE.BARCOLOR&&this.style!==o.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},o.prototype.getNumberOfRows=function(t){return t.length},o.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},o.prototype.getDistinctValues=function(t,e){for(var i=[],o=0;ot[o][e]&&(i.min=t[o][e]),i.maxt;t++){var f=(t-c)/(p-c),v=240*f,g=this._hsv2rgb(v,1,1);u.strokeStyle=g,u.beginPath(),u.moveTo(h,r+t),u.lineTo(a,r+t),u.stroke()}u.strokeStyle=this.axisColor,u.strokeRect(h,r,i,s)}if(this.style===o.STYLE.DOTSIZE&&(u.strokeStyle=this.axisColor,u.fillStyle=this.dataColor.fill,u.beginPath(),u.moveTo(h,r),u.lineTo(a,r),u.lineTo(a-i+e,d),u.lineTo(h,d),u.closePath(),u.fill(),u.stroke()),this.style===o.STYLE.DOTCOLOR||this.style===o.STYLE.DOTSIZE){var y=5,b=new m(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,n=this._convert3Dto2D(new l(_,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.xValueLabel(i.getCurrent())+" ",n.x,n.y),i.next()}for(v.lineWidth=1,o=void 0===this.defaultYStep,i=new m(this.yMin,this.yMax,this.yStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,n=this._convert3Dto2D(new l(s,i.getCurrent(),this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top",n.y+=b):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(" "+this.yValueLabel(i.getCurrent())+" ",n.x,n.y),i.next();for(v.lineWidth=1,o=void 0===this.defaultZStep,i=new m(this.zMin,this.zMax,this.zStep,o),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(s,r,i.getCurrent())),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(t.x-b,t.y),v.stroke(),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();v.lineWidth=1,t=this._convert3Dto2D(new l(s,r,this.zMin)),e=this._convert3Dto2D(new l(s,r,this.zMax)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),v.lineWidth=1,c=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),c=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),p=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(c.x,c.y),v.lineTo(p.x,p.y),v.stroke(),v.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),v.strokeStyle=this.axisColor,v.beginPath(),v.moveTo(t.x,t.y),v.lineTo(e.x,e.y),v.stroke();var x=this.xLabel;x.length>0&&(u=.1/this.scale.y,s=(this.xMin+this.xMax)/2,r=Math.cos(w)>0?this.yMin-u:this.yMax+u,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)>0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)<0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(x,n.x,n.y));var k=this.yLabel;k.length>0&&(d=.1/this.scale.x,s=Math.sin(w)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,n=this._convert3Dto2D(new l(s,r,this.zMin)),Math.cos(2*w)<0?(v.textAlign="center",v.textBaseline="top"):Math.sin(2*w)>0?(v.textAlign="right",v.textBaseline="middle"):(v.textAlign="left",v.textBaseline="middle"),v.fillStyle=this.axisColor,v.fillText(k,n.x,n.y));var O=this.zLabel;O.length>0&&(h=30,s=Math.cos(w)>0?this.xMin:this.xMax,r=Math.sin(w)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,n=this._convert3Dto2D(new l(s,r,a)),v.textAlign="right",v.textBaseline="middle",v.fillStyle=this.axisColor,v.fillText(O,n.x-h,n.y))},o.prototype._hsv2rgb=function(t,e,i){var o,n,s,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:o=r,n=h,s=0;break;case 1:o=h,n=r,s=0;break;case 2:o=0,n=r,s=h;break;case 3:o=0,n=h,s=r;break;case 4:o=h,n=0,s=r;break;case 5:o=r,n=0,s=h;break;default:o=0,n=0,s=0}return"RGB("+parseInt(255*o)+","+parseInt(255*n)+","+parseInt(255*s)+")"},o.prototype._redrawDataGrid=function(){var t,e,i,n,s,r,a,h,d,u,c,p,f=this.frame.canvas,m=f.getContext("2d");if(m.lineJoin="round",m.lineCap="round",!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(s=0;s0}else r=!0;r?(p=(t.point.z+e.point.z+i.point.z+n.point.z)/4,d=240*(1-(p-this.zMin)*this.scale.z/this.verticalRatio),u=1,this.showShadow?(c=Math.min(1+x.x/k/2,1),a=this._hsv2rgb(d,u,c),h=a):(c=1,a=this._hsv2rgb(d,u,c),h=this.axisColor)):(a="gray",h=this.axisColor),m.lineWidth=this._getStrokeWidth(t),m.fillStyle=a,m.strokeStyle=h,m.beginPath(),m.moveTo(t.screen.x,t.screen.y),m.lineTo(e.screen.x,e.screen.y),m.lineTo(n.screen.x,n.screen.y),m.lineTo(i.screen.x,i.screen.y),m.closePath(),m.fill(),m.stroke()}}else for(s=0;sc&&(c=0);var p,f,m;this.style===o.STYLE.DOTCOLOR?(p=240*(1-(d.point.value-this.valueMin)*this.scale.value),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)):this.style===o.STYLE.DOTSIZE?(f=this.dataColor.fill,m=this.dataColor.stroke):(p=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),f=this._hsv2rgb(p,1,1),m=this._hsv2rgb(p,1,.8)),i.lineWidth=this._getStrokeWidth(d),i.strokeStyle=m,i.fillStyle=f,i.beginPath(),i.arc(d.screen.x,d.screen.y,c,0,2*Math.PI,!0),i.fill(),i.stroke()}}},o.prototype._redrawDataBar=function(){var t,e,i,n,s=this.frame.canvas,r=s.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0){for(t=this.dataPoints[0],o.lineWidth=this._getStrokeWidth(t),o.lineJoin="round",o.lineCap="round",o.strokeStyle=this.dataColor.stroke,o.beginPath(),o.moveTo(t.screen.x,t.screen.y),e=1;e0?1:0>t?-1:0}var o=e[0],n=e[1],s=e[2],r=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),a=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x)),h=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},o.prototype._dataPointFromXY=function(t,e){var i,n=100,s=null,r=null,a=null,h=new u(t,e);if(this.style===o.STYLE.BAR||this.style===o.STYLE.BARCOLOR||this.style===o.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){s=this.dataPoints[i];var d=s.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var c=d[l],p=c.corners,f=[p[0].screen,p[1].screen,p[2].screen],m=[p[2].screen,p[3].screen,p[0].screen];if(this._insideTriangle(h,f)||this._insideTriangle(h,m))return s}}else for(i=0;ib)&&n>b&&(a=b,r=s)}}return r},o.prototype._showTooltip=function(t){var e,i,o;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,o=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",o=document.createElement("div"),o.style.position="absolute",o.style.height="0",o.style.width="0",o.style.border="5px solid #4d4d4d",o.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:o}}),this._hideTooltip(),this.tooltip.dataPoint=t,"function"==typeof this.showTooltip?e.innerHTML=this.showTooltip(t.point):e.innerHTML="
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(o);var n=e.offsetWidth,s=e.offsetHeight,r=i.offsetHeight,a=o.offsetWidth,h=o.offsetHeight,d=t.screen.x-n/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-n),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-s+"px",o.style.left=t.screen.x-a/2+"px",o.style.top=t.screen.y-h/2+"px"},o.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=o},function(t,e){function i(t){return t?o(t):void 0}function o(t){for(var e in i.prototype)t[e]=i.prototype[e];return t}t.exports=i,i.prototype.on=i.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},i.prototype.once=function(t,e){function i(){o.off(t,i),e.apply(this,arguments)}var o=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},i.prototype.off=i.prototype.removeListener=i.prototype.removeAllListeners=i.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var o,n=0;no;++o)i[o].apply(this,e)}return this},i.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},i.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){function i(t,e,i){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0,this.z=void 0!==i?i:0}i.subtract=function(t,e){var o=new i;return o.x=t.x-e.x,o.y=t.y-e.y,o.z=t.z-e.z,o},i.add=function(t,e){var o=new i;return o.x=t.x+e.x,o.y=t.y+e.y,o.z=t.z+e.z,o},i.avg=function(t,e){return new i((t.x+e.x)/2,(t.y+e.y)/2,(t.z+e.z)/2)},i.crossProduct=function(t,e){var o=new i;return o.x=t.y*e.z-t.z*e.y,o.y=t.z*e.x-t.x*e.z,o.z=t.x*e.y-t.y*e.x,o},i.prototype.length=function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},t.exports=i},function(t,e){function i(t,e){this.x=void 0!==t?t:0,this.y=void 0!==e?e:0}t.exports=i},function(t,e,i){function o(){this.armLocation=new n,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new n,this.cameraRotation=new n(.5*Math.PI,0,0),this.calculateCameraOrientation()}var n=i(13);o.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},o.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},o.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},o.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},o.prototype.getArmLength=function(){return this.armLength},o.prototype.getCameraLocation=function(){return this.cameraLocation},o.prototype.getCameraRotation=function(){return this.cameraRotation},o.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=o},function(t,e,i){function o(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var n=i(10);o.prototype.isLoaded=function(){return this.loaded},o.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},o.prototype.getLabel=function(){return this.graph.filterLabel},o.prototype.getColumn=function(){return this.column},o.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]},o.prototype.getValues=function(){return this.values},o.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},o.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var o=new n(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(o),this.dataPoints[t]=e}return e},o.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},o.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},o.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},o.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},o.prototype.setIndex=function(t){if(!(to&&(o=0),o>this.values.length-1&&(o=this.values.length-1),o},o.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,o=i+3;return o},o.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,o=this.leftToIndex(i);this.setIndex(o),n.preventDefault()},o.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",n.removeEventListener(document,"mousemove",this.onmousemove),n.removeEventListener(document,"mouseup",this.onmouseup),n.preventDefault()},t.exports=o},function(t,e){function i(t,e,i,o){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,o)}i.prototype.setRange=function(t,e,i,o){this._start=t?t:0,this._end=e?e:0,this.setStep(i,o)},i.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this.prettyStep===!0?this._step=i.calculatePrettyStep(t):this._step=t)},i.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),o=2*Math.pow(10,Math.round(e(t/2))),n=5*Math.pow(10,Math.round(e(t/5))),s=i;return Math.abs(o-t)<=Math.abs(s-t)&&(s=o),Math.abs(n-t)<=Math.abs(s-t)&&(s=n),0>=s&&(s=1),s},i.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},i.prototype.getStep=function(){return this._step},i.prototype.start=function(){this._current=this._start-this._start%this._step},i.prototype.next=function(){this._current+=this._step},i.prototype.end=function(){return this._current>this._end},t.exports=i},function(t,e,i){function o(t,e,i,d){if(!(this instanceof o))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof r||i instanceof a)&&i instanceof Object){var c=d;d=i,i=c}var f=this;this.defaultOptions={start:null,end:null,autoResize:!0,throttleRedraw:0,orientation:{axis:"bottom",item:"bottom"},moment:n,width:null,height:null,maxHeight:null,minHeight:null},this.options=s.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return f.timeAxis.step.scale},getStep:function(){return f.timeAxis.step.step},toScreen:f._toScreen.bind(f),toGlobalScreen:f._toGlobalScreen.bind(f),toTime:f._toTime.bind(f),toGlobalTime:f._toGlobalTime.bind(f)}},this.range=new h(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new l(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new u(this.body),this.components.push(this.currentTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){f.emit("click",f.getEventProperties(t))}),this.on("doubletap",function(t){f.emit("doubleClick",f.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){f.emit("contextmenu",f.getEventProperties(t))},d&&this.setOptions(d),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var n=(i(12),i(20),i(2)),s=i(1),r=i(8),a=i(10),h=i(24),d=i(28),l=i(39),u=i(44),c=i(42),p=i(29),f=i(45),m=i(47)["default"],v=i(47).printStyle,g=i(48).allOptions,y=i(48).configureOptions;o.prototype=new d,o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},o.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},o.prototype.setOptions=function(t){var e=m.validate(t,g);if(e===!0&&console.log("%cErrors have been found in the supplied options object.",v),d.prototype.setOptions.call(this,t),"type"in t&&t.type!==this.options.type){this.options.type=t.type;var i=this.itemsData;if(i){var o=this.getSelection();this.setItems(null),this.setItems(i),this.setSelection(o)}}},o.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof r||t instanceof a?t:new r(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var o=this.getItemRange();var n=void 0!=this.options.start?this.options.start:o.min,s=void 0!=this.options.end?this.options.end:o.max;this.setWindow(n,s,{animation:!1})}else this.fit({animation:!1})},o.prototype.setGroups=function(t){var e;e=t?t instanceof r||t instanceof a?t:new r(t):null,this.groupsData=e,this.itemSet.setGroups(e)},o.prototype.setData=function(t){t&&t.groups&&this.setGroups(t.groups),t&&t.items&&this.setItems(t.items)},o.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},o.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},o.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],o=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),n=null,s=null;if(o.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===n||n>e)&&(n=e),(null===s||i>s)&&(s=i)}),null!==n&&null!==s){var r=(n+s)/2,a=Math.max(this.range.end-this.range.start,1.1*(s-n)),h=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(r-a/2,r+a/2,h)}}},o.prototype.fit=function(t){var e=t&&void 0!==t.animation?t.animation:!0,i=this.getItemRange();this.range.setRange(i.min,i.max,e)},o.prototype.getItemRange=function(){var t=this,e=this.getDataRange(),i=e.min,o=e.max,n=null,r=null;if(null!=i&&null!=o){var a,h,d,l,u;!function(){var e=function(t){return s.convert(t.data.start,"Date").valueOf()},c=function(t){var e=void 0!=t.data.end?t.data.end:t.data.start;return s.convert(e,"Date").valueOf()};a=o-i,0>=a&&(a=10),h=a/t.props.center.width,s.forEach(t.itemSet.items,function(t){t.show();var s=e(t),a=c(t),d=new Date(s-(t.getWidthLeft()+10)*h),l=new Date(a+(t.getWidthRight()+10)*h);i>d&&(i=d,n=t),l>o&&(o=l,r=t)}.bind(t)),n&&r&&(d=n.getWidthLeft()+10,l=r.getWidthRight()+10,u=t.props.center.width-d-l,u>0&&(i=e(n)-d*a/u,o=c(r)+l*a/u))}()}return{min:null!=i?new Date(i):null,max:null!=o?new Date(o):null}},o.prototype.getDataRange=function(){var t=null,e=null,i=this.itemsData&&this.itemsData.getDataSet();return i&&i.forEach(function(i){var o=s.convert(i.start,"Date").valueOf(),n=s.convert(void 0!=i.end?i.end:i.start,"Date").valueOf();(null===t||t>o)&&(t=o),(null===e||n>e)&&(e=o)}),{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this.itemSet.itemFromTarget(t),a=this.itemSet.groupFromTarget(t),h=c.customTimeFromTarget(t),d=this.itemSet.options.snap||null,l=this.body.util.getScale(),u=this.body.util.getStep(),p=this._toTime(o),f=d?d(p,l,u):p,m=s.getTarget(t),v=null;return null!=r?v="item":null!=h?v="custom-time":s.hasParent(m,this.timeAxis.dom.foreground)?v="axis":this.timeAxis2&&s.hasParent(m,this.timeAxis2.dom.foreground)?v="axis":s.hasParent(m,this.itemSet.dom.labelSet)?v="group-label":s.hasParent(m,this.currentTime.bar)?v="current-time":s.hasParent(m,this.dom.center)&&(v="background"),{event:t,item:r?r.id:null,group:a?a.groupId:null,what:v,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:p,snappedTime:f}},t.exports=o},function(t,e,i){if("undefined"!=typeof window){var o=i(21),n=window.Hammer||i(22);t.exports=o(n,{preventDefault:"mouse"})}else t.exports=function(){throw Error("hammer.js is only available in a browser, not in node.js.")}},function(t,e,i){var o,n,s;!function(i){n=[],o=i,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(function(){var t=null;return function e(i,o){function n(t){return t.match(/[^ ]+/g)}function s(e){if("hammer.input"!==e.type){if(e.srcEvent._handled||(e.srcEvent._handled={}),e.srcEvent._handled[e.type])return;e.srcEvent._handled[e.type]=!0}var i=!1;e.stopPropagation=function(){i=!0},e.firstTarget=t;for(var o=t;o&&!i;){var n=o.hammer&&o.hammer._handlers[e.type];if(n)for(var s=0;s0?d._handlers[t]=o:(i.off(t,s),delete d._handlers[t]))}),d},d.emit=function(e,o){t=o.target,i.emit(e,o)},d.destroy=function(){delete i.element.hammer,d._handlers={},i.destroy()},d}})},function(t,e,i){var o;!function(n,s,r,a){function h(t,e,i){return setTimeout(f(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var o;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(o=0;o-1}function _(t){return t.trim().split(/\s+/g)}function x(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var o=0;oi[e]}):o.sort()),o}function D(t,e){for(var i,o,n=e[0].toUpperCase()+e.slice(1),s=0;s1&&!i.firstMultiple?i.firstMultiple=N(e):1===n&&(i.firstMultiple=!1);var s=i.firstInput,r=i.firstMultiple,a=r?r.center:s.center,h=e.center=L(o);e.timeStamp=gt(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=F(a,h),e.distance=R(a,h),I(i,e),e.offsetDirection=B(e.deltaX,e.deltaY),e.scale=r?H(r.pointers,o):1,e.rotation=r?j(r.pointers,o):0,z(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function I(t,e){var i=e.center,o=t.offsetDelta||{},n=t.prevDelta||{},s=t.prevInput||{};(e.eventType===Tt||s.eventType===St)&&(n=t.prevDelta={x:s.deltaX||0,y:s.deltaY||0},o=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=n.x+(i.x-o.x),e.deltaY=n.y+(i.y-o.y)}function z(t,e){var i,o,n,s,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=Pt&&(h>Ct||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,u=A(h,d,l);o=u.x,n=u.y,i=vt(u.x)>vt(u.y)?u.x:u.y,s=B(d,l),t.lastInterval=e}else i=r.velocity,o=r.velocityX,n=r.velocityY,s=r.direction;e.velocity=i,e.velocityX=o,e.velocityY=n,e.direction=s}function N(t){for(var e=[],i=0;in;)i+=t[n].clientX,o+=t[n].clientY,n++;return{x:mt(i/e),y:mt(o/e)}}function A(t,e,i){return{x:e/t||0,y:i/t||0}}function B(t,e){return t===e?It:vt(t)>=vt(e)?t>0?zt:Nt:e>0?Lt:At}function R(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return Math.sqrt(o*o+n*n)}function F(t,e,i){i||(i=jt);var o=e[i[0]]-t[i[0]],n=e[i[1]]-t[i[1]];return 180*Math.atan2(n,o)/Math.PI}function j(t,e){return F(e[1],e[0],Ht)-F(t[1],t[0],Ht)}function H(t,e){return R(e[0],e[1],Ht)/R(t[0],t[1],Ht)}function W(){this.evEl=Yt,this.evWin=Gt,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function Y(){this.evEl=qt,this.evWin=Xt,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function G(){this.evTarget=Kt,this.evWin=Jt,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=k(t.touches),o=k(t.changedTouches);return e&(St|Pt)&&(i=O(i.concat(o),"identifier",!0)),[i,o]}function V(){this.evTarget=$t,this.targetIds={},T.apply(this,arguments)}function q(t,e){var i=k(t.touches),o=this.targetIds;if(e&(Tt|Et)&&1===i.length)return o[i[0].identifier]=!0,[i,i];var n,s,r=k(t.changedTouches),a=[],h=this.target;if(s=i.filter(function(t){return b(t.target,h)}),e===Tt)for(n=0;na&&(e.push(t),a=e.length-1):n&(St|Pt)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,n,{pointers:e,changedPointers:[t],pointerType:s,srcEvent:t}),i&&e.splice(a,1))}});var Zt={touchstart:Tt,touchmove:Et,touchend:St,touchcancel:Pt},Kt="touchstart",Jt="touchstart touchmove touchend touchcancel";p(G,T,{handler:function(t){var e=Zt[t.type];if(e===Tt&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(St|Pt)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}});var Qt={touchstart:Tt,touchmove:Et,touchend:St,touchcancel:Pt},$t="touchstart touchmove touchend touchcancel"; +p(V,T,{handler:function(t){var e=Qt[t.type],i=q.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:kt,srcEvent:t})}}),p(X,T,{handler:function(t,e,i){var o=i.pointerType==kt,n=i.pointerType==Dt;if(o)this.mouse.allow=!1;else if(n&&!this.mouse.allow)return;e&(St|Pt)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var te=D(pt.style,"touchAction"),ee=te!==a,ie="compute",oe="auto",ne="manipulation",se="none",re="pan-x",ae="pan-y";Z.prototype={set:function(t){t==ie&&(t=this.compute()),ee&&(this.manager.element.style[te]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){m(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),K(t.join(" "))},preventDefaults:function(t){if(!ee){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var o=this.actions,n=w(o,se),s=w(o,ae),r=w(o,re);return n||s&&i&Bt||r&&i&Rt?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var he=1,de=2,le=4,ue=8,ce=ue,pe=16,fe=32;J.prototype={defaults:{},set:function(t){return u(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=tt(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=tt(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=tt(t,this),-1===x(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=tt(t,this);var e=x(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?Q(o):""),t)}var i=this,o=this.state;ue>o&&e(!0),e(),o>=ue&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=fe)},canEmit:function(){for(var t=0;ts?zt:Nt,i=s!=this.pX,o=Math.abs(t.deltaX)):(n=0===r?It:0>r?Lt:At,i=r!=this.pY,o=Math.abs(t.deltaY))),t.direction=n,i&&o>e.threshold&&n&e.direction},attrTest:function(t){return et.prototype.attrTest.call(this,t)&&(this.state&de||!(this.state&de)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),p(ot,et,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&de)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),p(nt,J,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[oe]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distancee.time;if(this._input=t,!o||!i||t.eventType&(St|Pt)&&!n)this.reset();else if(t.eventType&Tt)this.reset(),this._timer=h(function(){this.state=ce,this.tryEmit()},e.time,this);else if(t.eventType&St)return ce;return fe},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===ce&&(t&&t.eventType&St?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=gt(),this.manager.emit(this.options.event,this._input)))}}),p(st,et,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[se]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&de)}}),p(rt,et,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Bt|Rt,pointers:1},getTouchAction:function(){return it.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Bt|Rt)?e=t.velocity:i&Bt?e=t.velocityX:i&Rt&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&vt(e)>this.options.velocity&&t.eventType&St},emit:function(t){var e=$(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),p(at,J,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[ne]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,o=t.distanceu,c=r||null===n?n:h+(n-h)*i,v=r||null===s?s:l+(s-l)*i;g=a._applyRange(c,v),d.updateHiddenDates(a.options.moment,a.body,a.options.hiddenDates),m=m||g,g&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:o}),r?m&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:o}):a.animationTimer=setTimeout(b,20)}};return v()}var g=this._applyRange(n,s);if(d.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),g){var y={start:new Date(this.start),end:new Date(this.end),byUser:o};this.body.emitter.emit("rangechange",y),this.body.emitter.emit("rangechanged",y)}},o.prototype._cancelAnimation=function(){this.animationTimer&&(clearTimeout(this.animationTimer),this.animationTimer=null)},o.prototype._applyRange=function(t,e){var i,o=null!=t?r.convert(t,"Date").valueOf():this.start,n=null!=e?r.convert(e,"Date").valueOf():this.end,s=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(o)||null===o)throw new Error('Invalid start "'+t+'"');if(isNaN(n)||null===n)throw new Error('Invalid end "'+e+'"');if(o>n&&(n=o),null!==a&&a>o&&(i=a-o,o+=i,n+=i,null!=s&&n>s&&(n=s)),null!==s&&n>s&&(i=n-s,o-=i,n-=i,null!=a&&a>o&&(o=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>n-o&&(this.end-this.start===h&&o>this.start&&nd&&(d=0),n-o>d&&(this.end-this.start===d&&othis.end?(o=this.start,n=this.end):(i=n-o-d,o+=i/2,n-=i/2))}var l=this.start!=o||this.end!=n;return o>=this.start&&o<=this.end||n>=this.start&&n<=this.end||this.start>=o&&this.start<=n||this.end>=o&&this.end<=n||this.body.emitter.emit("checkRangedItems"),this.start=o,this.end=n,l},o.prototype.getRange=function(){return{start:this.start,end:this.end}},o.prototype.conversion=function(t,e){return o.conversion(this.start,this.end,t,e)},o.conversion=function(t,e,i,o){return void 0===o&&(o=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-o)}:{offset:0,scale:1}},o.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this._isInsideRange(t)&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},o.prototype._onDrag=function(t){if(this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;n(e);var i="horizontal"==e?t.deltaX:t.deltaY;i-=this.deltaDifference;var o=this.props.touch.end-this.props.touch.start,s=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);o-=s;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*o,h=this.props.touch.start+a,l=this.props.touch.end+a,u=d.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),c=d.snapAwayFromHidden(this.body.hiddenDates,l,this.previousDelta-i,!0);if(u!=h||c!=l)return this.deltaDifference+=i,this.props.touch.start=u,this.props.touch.end=c,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,l),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},o.prototype._onDragEnd=function(t){this.props.touch.dragging&&this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},o.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable&&this._isInsideRange(t)&&(!this.options.zoomKey||t[this.options.zoomKey])){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var o=s({x:t.clientX,y:t.clientY},this.body.dom.center),n=this._pointerToDate(o);this.zoom(i,n,e)}t.preventDefault()}},o.prototype._onTouch=function(t){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},o.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable){this.props.touch.allowDragging=!1,this.props.touch.center||(this.props.touch.center=s(t.center,this.body.dom.center));var e=1/(t.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),o=d.getHiddenDurationBetween(this.options.moment,this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,i),r=o-n,a=i-n+(this.props.touch.start-(i-n))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=0>=1-e,this.endToFront=0>=e-1;var l=d.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),u=d.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(l!=a||u!=h)&&(this.props.touch.start=l,this.props.touch.end=u,this.scaleOffset=1-t.scale,a=l,h=u),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},o.prototype._isInsideRange=function(t){var e=t.center?t.center.x:t.clientX,i=e-r.getAbsoluteLeft(this.body.dom.centerContainer),o=this.body.util.toTime(i);return o>=this.start&&o<=this.end},o.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(n(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var o=this.body.domProps.center.height;return e=this.conversion(o),t.y/e.scale+e.offset},o.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var o=d.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),n=d.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this,e),s=o-n,r=e-n+(this.start-(e-n))*t,a=e+s+(this.end-(e+s))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=d.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),l=d.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||l!=a)&&(r=h,a=l),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},o.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,o=this.end+e*t;this.start=i,this.end=o},o.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,o=this.start-i,n=this.end-i;this.setRange(o,n)},t.exports=o},function(t,e,i){i(20);e.onTouch=function(t,e){e.inputHandler=function(t){t.isFirst&&!o&&(e(t),o=!0,setTimeout(function(){o=!1},0))},t.on("hammer.input",e.inputHandler)};var o=!1;e.onRelease=function(t,e){return e.inputHandler=function(t){t.isFinal&&!n&&(e(t),n=!0,setTimeout(function(){n=!1},0))},t.on("hammer.input",e.inputHandler)};var n=!1;e.offTouch=function(t,e){t.off("hammer.input",e.inputHandler)},e.offRelease=e.offTouch},function(t,e){function i(t,e){this.options=null,this.props=null}i.prototype.setOptions=function(t){t&&util.extend(this.options,t)},i.prototype.redraw=function(){return!1},i.prototype.destroy=function(){},i.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=i},function(t,e){e.convertHiddenOptions=function(t,e,i){if(e.hiddenDates=[],i&&1==Array.isArray(i)){for(var o=0;o=4*a){var c=0,p=s.clone();switch(o[h].repeat){case"daily":d.day()!=l.day()&&(c=1),d.dayOfYear(n.dayOfYear()),d.year(n.year()),d.subtract(7,"days"),l.dayOfYear(n.dayOfYear()),l.year(n.year()),l.subtract(7-c,"days"),p.add(1,"weeks");break;case"weekly":var f=l.diff(d,"days"),m=d.day();d.date(n.date()),d.month(n.month()),d.year(n.year()),l=d.clone(),d.day(m),l.day(m),l.add(f,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),p.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(c=1),d.month(n.month()),d.year(n.year()),d.subtract(1,"months"),l.month(n.month()),l.year(n.year()),l.subtract(1,"months"),l.add(c,"months"),p.add(1,"months");break;case"yearly":d.year()!=l.year()&&(c=1),d.year(n.year()),d.subtract(1,"years"),l.year(n.year()),l.subtract(1,"years"),l.add(c,"years"),p.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}for(;p>d;)switch(i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),o[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",o[h].repeat)}i.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(i);var v=e.isHidden(i.range.start,i.hiddenDates),g=e.isHidden(i.range.end,i.hiddenDates),y=i.range.start,b=i.range.end;1==v.hidden&&(y=1==i.range.startToFront?v.startDate-1:v.endDate+1),1==g.hidden&&(b=1==i.range.endToFront?g.startDate-1:g.endDate+1),(1==v.hidden||1==g.hidden)&&i.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],o=0;o=e[o].start&&e[n].end<=e[o].end?e[n].remove=!0:e[n].start>=e[o].start&&e[n].start<=e[o].end?(e[o].end=e[n].end,e[n].remove=!0):e[n].end>=e[o].start&&e[n].end<=e[o].end&&(e[o].start=e[n].start,e[n].remove=!0));for(var o=0;o=r&&a>n){o=!0;break}}if(1==o&&n=e&&i>r&&(o+=r-s)}return o},e.correctTimeForHidden=function(t,i,o,n){return n=t(n).toDate().valueOf(),n-=e.getHiddenDurationBefore(t,i,o,n)},e.getHiddenDurationBefore=function(t,e,i,o){var n=0;o=t(o).toDate().valueOf();for(var s=0;s=i.start&&a=a&&(n+=a-r)}return n},e.getAccumulatedHiddenDuration=function(t,e,i){for(var o=0,n=0,s=e.start,r=0;r=e.start&&h=i)break;o+=h-a}}return o},e.snapAwayFromHidden=function(t,i,o,n){var s=e.isHidden(i,t);return 1==s.hidden?0>o?1==n?s.startDate-(s.endDate-i)-1:s.startDate-1:1==n?s.endDate+(i-s.startDate)+1:s.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=o&&n>t)return{hidden:!0,startDate:o,endDate:n}}return{hidden:!1,startDate:o,endDate:n}}},function(t,e,i){function o(){}var n=i(12),s=i(20),r=i(25),a=i(1),h=(i(8),i(10),i(24),i(29),i(39)),d=i(40),l=i(27),u=i(42);n(o.prototype),o.prototype._create=function(t){function e(t){i.isActive()&&i.emit("mousewheel",t)}this.dom={},this.dom.container=t,this.dom.root=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.backgroundVertical=document.createElement("div"),this.dom.backgroundHorizontal=document.createElement("div"),this.dom.centerContainer=document.createElement("div"),this.dom.leftContainer=document.createElement("div"),this.dom.rightContainer=document.createElement("div"),this.dom.center=document.createElement("div"),this.dom.left=document.createElement("div"),this.dom.right=document.createElement("div"),this.dom.top=document.createElement("div"),this.dom.bottom=document.createElement("div"),this.dom.shadowTop=document.createElement("div"),this.dom.shadowBottom=document.createElement("div"),this.dom.shadowTopLeft=document.createElement("div"),this.dom.shadowBottomLeft=document.createElement("div"),this.dom.shadowTopRight=document.createElement("div"),this.dom.shadowBottomRight=document.createElement("div"),this.dom.root.className="vis-timeline",this.dom.background.className="vis-panel vis-background",this.dom.backgroundVertical.className="vis-panel vis-background vis-vertical",this.dom.backgroundHorizontal.className="vis-panel vis-background vis-horizontal",this.dom.centerContainer.className="vis-panel vis-center",this.dom.leftContainer.className="vis-panel vis-left",this.dom.rightContainer.className="vis-panel vis-right",this.dom.top.className="vis-panel vis-top",this.dom.bottom.className="vis-panel vis-bottom",this.dom.left.className="vis-content",this.dom.center.className="vis-content",this.dom.right.className="vis-content",this.dom.shadowTop.className="vis-shadow vis-top",this.dom.shadowBottom.className="vis-shadow vis-bottom",this.dom.shadowTopLeft.className="vis-shadow vis-top",this.dom.shadowBottomLeft.className="vis-shadow vis-bottom",this.dom.shadowTopRight.className="vis-shadow vis-top",this.dom.shadowBottomRight.className="vis-shadow vis-bottom",this.dom.root.appendChild(this.dom.background),this.dom.root.appendChild(this.dom.backgroundVertical),this.dom.root.appendChild(this.dom.backgroundHorizontal),this.dom.root.appendChild(this.dom.centerContainer),this.dom.root.appendChild(this.dom.leftContainer),this.dom.root.appendChild(this.dom.rightContainer),this.dom.root.appendChild(this.dom.top),this.dom.root.appendChild(this.dom.bottom),this.dom.centerContainer.appendChild(this.dom.center),this.dom.leftContainer.appendChild(this.dom.left),this.dom.rightContainer.appendChild(this.dom.right),this.dom.centerContainer.appendChild(this.dom.shadowTop),this.dom.centerContainer.appendChild(this.dom.shadowBottom),this.dom.leftContainer.appendChild(this.dom.shadowTopLeft),this.dom.leftContainer.appendChild(this.dom.shadowBottomLeft),this.dom.rightContainer.appendChild(this.dom.shadowTopRight),this.dom.rightContainer.appendChild(this.dom.shadowBottomRight),this.on("rangechange",function(){this._redraw()}.bind(this)),this.on("touch",this._onTouch.bind(this)),this.on("pan",this._onDrag.bind(this));var i=this;this.on("change",function(t){t&&1==t.queue?i._redrawTimer||(i._redrawTimer=setTimeout(function(){i._redrawTimer=null,i._redraw()},0)):i._redraw()}),this.hammer=new s(this.dom.root),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),this.listeners={};var o=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];if(o.forEach(function(t){var e=function(e){i.isActive()&&i.emit(t,e)};i.hammer.on(t,e),i.listeners[t]=e}),r.onTouch(this.hammer,function(t){i.emit("touch",t)}.bind(this)),r.onRelease(this.hammer,function(t){i.emit("release",t)}.bind(this)),this.dom.root.addEventListener("mousewheel",e),this.dom.root.addEventListener("DOMMouseScroll",e),this.props={root:{},background:{},centerContainer:{},leftContainer:{},rightContainer:{},center:{},left:{},right:{},top:{},bottom:{},border:{},scrollTop:0,scrollTopMin:0},this.customTimes=[],this.touch={},this.redrawCount=0,!t)throw new Error("No container provided");t.appendChild(this.dom.root)},o.prototype.setOptions=function(t){if(t){var e=["width","height","minHeight","maxHeight","autoResize","start","end","clickToUse","dataAttributes","hiddenDates","locale","locales","moment","throttleRedraw"];if(a.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation={item:t.orientation,axis:t.orientation}:"object"==typeof t.orientation&&("item"in t.orientation&&(this.options.orientation.item=t.orientation.item),"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis))),"both"===this.options.orientation.axis){if(!this.timeAxis2){var i=this.timeAxis2=new h(this.body);i.setOptions=function(t){var e=t?a.extend({},t):{};e.orientation="top",h.prototype.setOptions.call(i,e)},this.components.push(i)}}else if(this.timeAxis2){var o=this.components.indexOf(this.timeAxis2);-1!==o&&this.components.splice(o,1),this.timeAxis2.destroy(),this.timeAxis2=null}if("function"==typeof t.drawPoints&&(t.drawPoints={onRender:t.drawPoints}),"hiddenDates"in this.options&&l.convertHiddenOptions(this.options.moment,this.body,this.options.hiddenDates),"clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new d(this.dom.root)):this.activator&&(this.activator.destroy(),delete this.activator)),"showCustomTime"in t)throw new Error("Option `showCustomTime` is deprecated. Create a custom time bar via timeline.addCustomTime(time [, id])");this._initAutoResize()}if(this.components.forEach(function(e){return e.setOptions(t)}),"configure"in t){this.configurator||(this.configurator=this._createConfigurator()),this.configurator.setOptions(t.configure);var n=a.deepExtend({},this.options);this.components.forEach(function(t){a.deepExtend(n,t.options)}),this.configurator.setModuleOptions({global:n})}this._origRedraw||(this._origRedraw=this._redraw.bind(this)),this._redraw=a.throttle(this._origRedraw,this.options.throttleRedraw),this._redraw()},o.prototype.isActive=function(){return!this.activator||this.activator.active},o.prototype.destroy=function(){this.setItems(null),this.setGroups(null),this.off(),this._stopAutoResize(),this.dom.root.parentNode&&this.dom.root.parentNode.removeChild(this.dom.root),this.dom=null,this.activator&&(this.activator.destroy(),delete this.activator);for(var t in this.listeners)this.listeners.hasOwnProperty(t)&&delete this.listeners[t];this.listeners=null,this.hammer=null,this.components.forEach(function(t){return t.destroy()}),this.body=null},o.prototype.setCustomTime=function(t,e){var i=this.customTimes.filter(function(t){return e===t.options.id});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));i.length>0&&i[0].setCustomTime(t)},o.prototype.getCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));return e[0].getCustomTime()},o.prototype.getEventProperties=function(t){return{event:t}},o.prototype.addCustomTime=function(t,e){var i=void 0!==t?a.convert(t,"Date").valueOf():new Date,o=this.customTimes.some(function(t){return t.options.id===e});if(o)throw new Error("A custom time with id "+JSON.stringify(e)+" already exists");var n=new u(this.body,a.extend({},this.options,{time:i,id:e}));return this.customTimes.push(n),this.components.push(n),this._redraw(),e},o.prototype.removeCustomTime=function(t){var e=this.customTimes.filter(function(e){return e.options.id===t});if(0===e.length)throw new Error("No custom time bar found with id "+JSON.stringify(t));e.forEach(function(t){this.customTimes.splice(this.customTimes.indexOf(t),1),this.components.splice(this.components.indexOf(t),1),t.destroy()}.bind(this))},o.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},o.prototype.fit=function(t){var e=this.getDataRange();if(null!==e.min||null!==e.max){var i=e.max-e.min,o=new Date(e.min.valueOf()-.01*i),n=new Date(e.max.valueOf()+.01*i),s=t&&void 0!==t.animation?t.animation:!0; +this.range.setRange(o,n,s)}},o.prototype.getDataRange=function(){throw new Error("Cannot invoke abstract method getDataRange")},o.prototype.setWindow=function(t,e,i){var o;if(1==arguments.length){var n=arguments[0];o=void 0!==n.animation?n.animation:!0,this.range.setRange(n.start,n.end,o)}else o=i&&void 0!==i.animation?i.animation:!0,this.range.setRange(t,e,o)},o.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,o=a.convert(t,"Date").valueOf(),n=o-i/2,s=o+i/2,r=e&&void 0!==e.animation?e.animation:!0;this.range.setRange(n,s,r)},o.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},o.prototype.redraw=function(){this._redraw()},o.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,o=this.dom;if(o){l.updateHiddenDates(this.options.moment,this.body,this.options.hiddenDates),"top"==e.orientation?(a.addClassName(o.root,"vis-top"),a.removeClassName(o.root,"vis-bottom")):(a.removeClassName(o.root,"vis-top"),a.addClassName(o.root,"vis-bottom")),o.root.style.maxHeight=a.option.asSize(e.maxHeight,""),o.root.style.minHeight=a.option.asSize(e.minHeight,""),o.root.style.width=a.option.asSize(e.width,""),i.border.left=(o.centerContainer.offsetWidth-o.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(o.centerContainer.offsetHeight-o.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var n=o.root.offsetHeight-o.root.clientHeight,s=o.root.offsetWidth-o.root.clientWidth;0===o.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===o.root.clientHeight&&(s=n),i.center.height=o.center.offsetHeight,i.left.height=o.left.offsetHeight,i.right.height=o.right.offsetHeight,i.top.height=o.top.clientHeight||-i.border.top,i.bottom.height=o.bottom.clientHeight||-i.border.bottom;var r=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+r+i.bottom.height+n+i.border.top+i.border.bottom;o.root.style.height=a.option.asSize(e.height,h+"px"),i.root.height=o.root.offsetHeight,i.background.height=i.root.height-n;var d=i.root.height-i.top.height-i.bottom.height-n;i.centerContainer.height=d,i.leftContainer.height=d,i.rightContainer.height=i.leftContainer.height,i.root.width=o.root.offsetWidth,i.background.width=i.root.width-s,i.left.width=o.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=o.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var u=i.root.width-i.left.width-i.right.width-s;i.center.width=u,i.centerContainer.width=u,i.top.width=u,i.bottom.width=u,o.background.style.height=i.background.height+"px",o.backgroundVertical.style.height=i.background.height+"px",o.backgroundHorizontal.style.height=i.centerContainer.height+"px",o.centerContainer.style.height=i.centerContainer.height+"px",o.leftContainer.style.height=i.leftContainer.height+"px",o.rightContainer.style.height=i.rightContainer.height+"px",o.background.style.width=i.background.width+"px",o.backgroundVertical.style.width=i.centerContainer.width+"px",o.backgroundHorizontal.style.width=i.background.width+"px",o.centerContainer.style.width=i.center.width+"px",o.top.style.width=i.top.width+"px",o.bottom.style.width=i.bottom.width+"px",o.background.style.left="0",o.background.style.top="0",o.backgroundVertical.style.left=i.left.width+i.border.left+"px",o.backgroundVertical.style.top="0",o.backgroundHorizontal.style.left="0",o.backgroundHorizontal.style.top=i.top.height+"px",o.centerContainer.style.left=i.left.width+"px",o.centerContainer.style.top=i.top.height+"px",o.leftContainer.style.left="0",o.leftContainer.style.top=i.top.height+"px",o.rightContainer.style.left=i.left.width+i.center.width+"px",o.rightContainer.style.top=i.top.height+"px",o.top.style.left=i.left.width+"px",o.top.style.top="0",o.bottom.style.left=i.left.width+"px",o.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var c=this.props.scrollTop;"top"!=e.orientation.item&&(c+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),o.center.style.left="0",o.center.style.top=c+"px",o.left.style.left="0",o.left.style.top=c+"px",o.right.style.left="0",o.right.style.top=c+"px";var p=0==this.props.scrollTop?"hidden":"",f=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(o.shadowTop.style.visibility=p,o.shadowBottom.style.visibility=f,o.shadowTopLeft.style.visibility=p,o.shadowBottomLeft.style.visibility=f,o.shadowTopRight.style.visibility=p,o.shadowBottomRight.style.visibility=f,this.components.forEach(function(e){t=e.redraw()||t}),t){var m=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTope;e++)o=this.selection[e],n=this.items[o],n&&n.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)o=t[e],n=this.items[o],n&&(this.selection.push(o),n.select())},o.prototype.getSelection=function(){return this.selection.concat([])},o.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),o=[];for(var n in this.groups)if(this.groups.hasOwnProperty(n))for(var s=this.groups[n],r=s.visibleItems,a=0;ae&&o.push(h.id)}return o},o.prototype._deselect=function(t){for(var e=this.selection,i=0,o=e.length;o>i;i++)if(e[i]==t){e.splice(i,1);break}},o.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=s.option.asSize,o=this.options,n=o.orientation.item,r=!1,a=this.dom.frame;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="vis-itemset",r=this._orderGroups()||r;var h=e.end-e.start,d=h!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;d&&(this.stackDirty=!0),this.lastVisibleInterval=h,this.props.lastWidth=this.props.width;var l=this.stackDirty,u=this._firstGroup(),c={item:t.item,axis:t.axis},p={item:t.item,axis:t.item.vertical/2},f=0,m=t.axis+t.item.vertical;return this.groups[g].redraw(e,p,l),s.forEach(this.groups,function(t){var i=t==u?c:p,o=t.redraw(e,i,l);r=o||r,f+=t.height}),f=Math.max(f,m),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==n?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},o.prototype._firstGroup=function(){var t="top"==this.options.orientation.item?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[v];return i||null},o.prototype._updateUngrouped=function(){var t,e,i=this.groups[v];this.groups[g];if(this.groupsData){if(i){i.hide(),delete this.groups[v];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)||t.hide()}}}else if(!i){var s=null,r=null;i=new l(s,r,this),this.groups[v]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},o.prototype.getLabelSet=function(){return this.dom.labelSet},o.prototype.setItems=function(t){var e,i=this,o=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(o&&(s.forEach(this.itemListeners,function(t,e){o.off(e,t)}),e=o.getIds(),this._onRemove(e)),this.itemsData){var n=this.id;s.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,n)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},o.prototype.getItems=function(){return this.itemsData},o.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(s.forEach(this.groupListeners,function(t,e){i.groupsData.off(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var o=this.id;s.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,o)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},o.prototype.getGroups=function(){return this.groupsData},o.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},o.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},o.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:v},o.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i,n=e.itemsData.get(t,e.itemOptions),s=e.items[t],r=e._getType(n),a=o.types[r];if(s&&(a&&s instanceof a?e._updateItem(s,n):(i=s.selected,e._removeItem(s),s=null)),!s){if(!a)throw"rangeoverflow"==r?new TypeError('Item type "rangeoverflow" is deprecated. Use css styling instead: .vis-item.vis-range .vis-item-content {overflow: visible;}'):new TypeError('Unknown item type "'+r+'"');s=new a(n,e.conversion,e.options),s.id=t,e._addItem(s),i&&(this.selection.push(t),s.select())}}.bind(this)),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},o.prototype._onAdd=o.prototype._onUpdate,o.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var o=i.items[t];o&&(e++,i._removeItem(o))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},o.prototype._order=function(){s.forEach(this.groups,function(t){t.order()})},o.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},o.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),o=e.groups[t];if(o)o.setData(i);else{if(t==v||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var n=Object.create(e.options);s.extend(n,{height:null}),o=new l(t,i,e),e.groups[t]=o;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&o.add(a)}o.order(),o.show()}}),this.body.emitter.emit("change",{queue:!0})},o.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},o.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!s.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},o.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},o.prototype._updateItem=function(t,e){var i=t.data.group,o=t.data.subgroup;if(t.setData(e),i!=t.data.group||o!=t.data.subgroup){var n=this.groups[i];n&&n.remove(t);var s=this._getGroupId(t.data),r=this.groups[s];r&&r.add(t)}},o.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},o.prototype._constructByEndArray=function(t){for(var e=[],i=0;in+r)return}else{var a=e.height;if(n+a-r>o)return}}if(e&&e!=this.groupTouchParams.group){var h=this.groupsData,d=h.get(e.groupId),l=h.get(this.groupTouchParams.group.groupId);l&&d&&(this.options.groupOrderSwap(l,d,this.groupsData),this.groupsData.update(l),this.groupsData.update(d));var u=this.groupsData.getIds({order:this.options.groupOrder});if(!s.equalArray(u,this.groupTouchParams.originalOrder))for(var h=this.groupsData,c=this.groupTouchParams.originalOrder,p=this.groupTouchParams.group.groupId,f=Math.min(c.length,u.length),m=0,v=0,g=0;f>m;){for(;f>m+v&&f>m+g&&u[m+v]==c[m+g];)m++;if(m+v>=f)break;if(u[m+v]!=p)if(c[m+g]!=p){var y=u.indexOf(c[m+g]),b=h.get(u[m+v]),w=h.get(c[m+g]);this.options.groupOrderSwap(b,w,h),h.update(b),h.update(w);var _=u[m+v];u[m+v]=c[m+g],u[y]=_,m++}else g=1;else v=1}}}},o.prototype._onGroupDragEnd=function(t){if(this.options.groupEditable.order&&this.groupTouchParams.group){t.stopPropagation();var e=this,i=e.groupTouchParams.group.groupId,o=e.groupsData.getDataSet(),n=s.extend({},o.get(i));e.options.onMoveGroup(n,function(t){if(t)t[o._fieldId]=i,o.update(t);else{var n=o.getIds({order:e.options.groupOrder});if(!s.equalArray(n,e.groupTouchParams.originalOrder))for(var r=e.groupTouchParams.originalOrder,a=Math.min(r.length,n.length),h=0;a>h;){for(;a>h&&n[h]==r[h];)h++;if(h>=a)break;var d=n.indexOf(r[h]),l=o.get(n[h]),u=o.get(r[h]);e.options.groupOrderSwap(l,u,o),groupsData.update(l),groupsData.update(u);var c=n[h];n[h]=r[h],n[d]=c,h++}}}),e.body.emitter.emit("groupDragged",{groupId:i})}},o.prototype._onSelectItem=function(t){if(this.options.selectable){var e=t.srcEvent&&(t.srcEvent.ctrlKey||t.srcEvent.metaKey),i=t.srcEvent&&t.srcEvent.shiftKey;if(e||i)return void this._onMultiSelectItem(t);var o=this.getSelection(),n=this.itemFromTarget(t),s=n?[n.id]:[];this.setSelection(s);var r=this.getSelection();(r.length>0||o.length>0)&&this.body.emitter.emit("select",{items:r,event:t})}},o.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,o=this.itemFromTarget(t);if(t.stopPropagation(),o){var n=e.itemsData.get(o.id);this.options.onUpdate(n,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=s.getAbsoluteLeft(this.dom.frame),a=t.center.x-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),u={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(a+this.props.width/5);u.end=i?i(c,d,l):c}u[this.itemsData._fieldId]=s.randomUUID();var p=this.groupFromTarget(t);p&&(u.group=p.groupId),u=this._cloneItemData(u),this.options.onAdd(u,function(t){t&&e.itemsData.getDataSet().add(t)})}}},o.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e=this.itemFromTarget(t);if(e){var i=this.options.multiselect?this.getSelection():[],n=t.srcEvent&&t.srcEvent.shiftKey||!1;if(n&&this.options.multiselect){i.push(e.id);var s=o._getItemRange(this.itemsData.get(i,this.itemOptions));i=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=s.min&&d<=s.max&&!(a instanceof m)&&i.push(a.id)}}else{var l=i.indexOf(e.id);-1==l?i.push(e.id):i.splice(l,1)}this.setSelection(i),this.body.emitter.emit("select",{items:this.getSelection(),event:t})}}},o._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},o.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},o.prototype.groupFromTarget=function(t){for(var e=t.center?t.center.y:t.clientY,i=0;ia&&ea)return n}else if(0===i&&e0?t.step:1,this.autoScale=!1)},o.prototype.setAutoScale=function(t){this.autoScale=t},o.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,s=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*o>t&&(this.scale="day",this.step=5),2*o>t&&(this.scale="day",this.step=2),o>t&&(this.scale="day",this.step=1),o/2>t&&(this.scale="weekday",this.step=1),4*n>t&&(this.scale="hour",this.step=4),n>t&&(this.scale="hour",this.step=1),15*s>t&&(this.scale="minute",this.step=15),10*s>t&&(this.scale="minute",this.step=10),5*s>t&&(this.scale="minute",this.step=5),s>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},o.snap=function(t,e,i){var o=n(t);if("year"==e){var s=o.year()+Math.round(o.month()/12);o.year(Math.round(s/i)*i),o.month(0),o.date(0),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("month"==e)o.date()>15?(o.date(1),o.add(1,"month")):o.date(1),o.hours(0),o.minutes(0),o.seconds(0),o.milliseconds(0);else if("day"==e){switch(i){case 5:case 2:o.hours(24*Math.round(o.hours()/24));break;default:o.hours(12*Math.round(o.hours()/12))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:o.hours(12*Math.round(o.hours()/12));break;default:o.hours(6*Math.round(o.hours()/6))}o.minutes(0),o.seconds(0),o.milliseconds(0)}else if("hour"==e){switch(i){case 4:o.minutes(60*Math.round(o.minutes()/60));break;default:o.minutes(30*Math.round(o.minutes()/30))}o.seconds(0),o.milliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:o.minutes(5*Math.round(o.minutes()/5)),o.seconds(0);break;case 5:o.seconds(60*Math.round(o.seconds()/60));break;default:o.seconds(30*Math.round(o.seconds()/30))}o.milliseconds(0)}else if("second"==e)switch(i){case 15:case 10:o.seconds(5*Math.round(o.seconds()/5)),o.milliseconds(0);break;case 5:o.milliseconds(1e3*Math.round(o.milliseconds()/1e3));break;default:o.milliseconds(500*Math.round(o.milliseconds()/500))}else if("millisecond"==e){var r=i>5?i/2:1;o.milliseconds(Math.round(o.milliseconds()/r)*r)}return o},o.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}var t=this.moment(this.current);switch(this.scale){case"millisecond":return 0==t.milliseconds();case"second":return 0==t.seconds();case"minute":return 0==t.hours()&&0==t.minutes();case"hour":return 0==t.hours();case"weekday":case"day":return 1==t.date();case"month":return 0==t.month();case"year":return!1;default:return!1}},o.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?this.moment(t).format(e):""},o.prototype.getClassName=function(){function t(t){return t/h%2==0?" vis-even":" vis-odd"}function e(t){return t.isSame(new Date,"day")?" vis-today":t.isSame(s().add(1,"day"),"day")?" vis-tomorrow":t.isSame(s().add(-1,"day"),"day")?" vis-yesterday":""}function i(t){return t.isSame(new Date,"week")?" vis-current-week":""}function o(t){return t.isSame(new Date,"month")?" vis-current-month":""}function n(t){return t.isSame(new Date,"year")?" vis-current-year":""}var s=this.moment,r=this.moment(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-h"+(d+4)),"vis-h"+d+e(a)+t(a.hours());case"weekday":return"vis-"+a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),u=a.format("MMMM").toLowerCase();return"vis-day"+l+" vis-"+u+o(a)+t(l-1);case"month":return"vis-"+a.format("MMMM").toLowerCase()+o(a)+t(a.month());case"year":var c=a.year();return"vis-year"+c+n(a)+t(c);default:return""}},t.exports=o},function(t,e,i){function o(t,e,i){this.groupId=t,this.subgroups={},this.subgroupIndex=0,this.subgroupOrderer=e&&e.subgroupOrder,this.itemSet=i,this.dom={},this.props={label:{width:0,height:0}},this.className=null,this.items={},this.visibleItems=[],this.orderedItems={byStart:[],byEnd:[]},this.checkRangedItems=!1;var o=this;this.itemSet.body.emitter.on("checkRangedItems",function(){o.checkRangedItems=!0}),this._create(),this.setData(e)}var n=i(1),s=i(32);i(33);o.prototype._create=function(){var t=document.createElement("div");this.itemSet.options.groupEditable.order?t.className="vis-label draggable":t.className="vis-label",this.dom.label=t;var e=document.createElement("div");e.className="vis-inner",t.appendChild(e),this.dom.inner=e;var i=document.createElement("div");i.className="vis-group",i["timeline-group"]=this,this.dom.foreground=i,this.dom.background=document.createElement("div"),this.dom.background.className="vis-group",this.dom.axis=document.createElement("div"),this.dom.axis.className="vis-group",this.dom.marker=document.createElement("div"),this.dom.marker.style.visibility="hidden",this.dom.marker.innerHTML="?",this.dom.background.appendChild(this.dom.marker)},o.prototype.setData=function(t){var e;if(e=this.itemSet.options&&this.itemSet.options.groupTemplate?this.itemSet.options.groupTemplate(t):t&&t.content,e instanceof Element){for(this.dom.inner.appendChild(e);this.dom.inner.firstChild;)this.dom.inner.removeChild(this.dom.inner.firstChild);this.dom.inner.appendChild(e)}else void 0!==e&&null!==e?this.dom.inner.innerHTML=e:this.dom.inner.innerHTML=this.groupId||"";this.dom.label.title=t&&t.title||"",this.dom.inner.firstChild?n.removeClassName(this.dom.inner,"vis-hidden"):n.addClassName(this.dom.inner,"vis-hidden");var i=t&&t.className||null;i!=this.className&&(this.className&&(n.removeClassName(this.dom.label,this.className),n.removeClassName(this.dom.foreground,this.className),n.removeClassName(this.dom.background,this.className),n.removeClassName(this.dom.axis,this.className)),n.addClassName(this.dom.label,i),n.addClassName(this.dom.foreground,i),n.addClassName(this.dom.background,i),n.addClassName(this.dom.axis,i),this.className=i),this.style&&(n.removeCssText(this.dom.label,this.style),this.style=null),t&&t.style&&(n.addCssText(this.dom.label,t.style),this.style=t.style)},o.prototype.getLabelWidth=function(){return this.props.label.width},o.prototype.redraw=function(t,e,i){var o=!1,r=this.dom.marker.clientHeight;if(r!=this.lastMarkerHeight&&(this.lastMarkerHeight=r,n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()}),i=!0),"function"==typeof this.itemSet.options.order){if(i){var a=this,h=!1;n.forEach(this.items,function(t){t.displayed||(t.redraw(),a.visibleItems.push(t)),t.repositionX(h)});var d=this.orderedItems.byStart.slice().sort(function(t,e){return a.itemSet.options.order(t.data,e.data)});s.stack(d,e,!0)}this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t)}else this.visibleItems=this._updateVisibleItems(this.orderedItems,this.visibleItems,t),this.itemSet.options.stack?s.stack(this.visibleItems,e,i):s.nostack(this.visibleItems,e,this.subgroups);var l=this._calculateHeight(e),u=this.dom.foreground;this.top=u.offsetTop,this.left=u.offsetLeft,this.width=u.offsetWidth,o=n.updateProperty(this,"height",l)||o,o=n.updateProperty(this.props.label,"width",this.dom.inner.clientWidth)||o,o=n.updateProperty(this.props.label,"height",this.dom.inner.clientHeight)||o,this.dom.background.style.height=l+"px",this.dom.foreground.style.height=l+"px",this.dom.label.style.height=l+"px";for(var c=0,p=this.visibleItems.length;p>c;c++){var f=this.visibleItems[c];f.repositionY(e)}return o},o.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var o=this;if(i.length>0){var s=i[0].top,r=i[0].top+i[0].height;if(n.forEach(i,function(t){s=Math.min(s,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(o.subgroups[t.data.subgroup].height=Math.max(o.subgroups[t.data.subgroup].height,t.height),o.subgroups[t.data.subgroup].visible=!0)}),s>t.axis){var a=s-t.axis;r-=a,n.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},o.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},o.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var o=this.dom.axis;o.parentNode&&o.parentNode.removeChild(o)},o.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},o.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(s=0;sl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,s=0;sl})}for(s=0;s=0&&(s=e[r],!n(s));r--)void 0===o[s.id]&&(o[s.id]=!0,i.push(s));for(r=t+1;rn;n++)t[n].top=null;for(n=0,s=t.length;s>n;n++){var r=t[n];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var o,n,s;for(o=0,n=t.length;n>o;o++)if(void 0!==t[o].data.subgroup){s=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-o.vertical+ie.top}},function(t,e,i){function o(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 n=(i(20),i(34));o.prototype=new n(null,null,null),o.prototype.baseClassName="vis-item vis-range",o.prototype.isVisible=function(t){return this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.options.editable.updateTime||this.options.editable.updateGroup||this.editable===!0)&&this.editable!==!1,o=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"")+(i?" vis-editable":" vis-readonly");t.box.className=this.baseClassName+o,this.overflow="hidden"!==window.getComputedStyle(t.frame).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},o.prototype.show=function(){this.displayed||this.redraw()},o.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},o.prototype.repositionX=function(t){var e,i,o=this.parent.width,n=this.conversion.toScreen(this.data.start),s=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-o>n&&(n=-o),s>2*o&&(s=2*o));var r=Math.max(s-n,1);switch(this.overflow?(this.left=n,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=n,this.width=r,i=Math.min(s-n,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=r+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(r-i,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i)/2,0)+"px";break;default:e=this.overflow?s>0?Math.max(-n,0):-i:0>n?-n:0,this.dom.content.style.left=e+"px"}},o.prototype.repositionY=function(){var t=this.options.orientation.item,e=this.dom.box;"top"==t?e.style.top=this.top+"px":e.style.top=this.parent.height-this.top-this.height+"px"},o.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="vis-drag-left",t.dragLeftItem=this,this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},o.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="vis-drag-right",t.dragRightItem=this,this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=o},function(t,e,i){function o(t,e,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,this.editable=null,this.data&&this.data.hasOwnProperty("editable")&&"boolean"==typeof this.data.editable&&(this.editable=t.editable)}var n=i(20),s=i(1);o.prototype.stack=!0,o.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),t.hasOwnProperty("editable")&&"boolean"==typeof t.editable&&(this.editable=t.editable),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},o.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},o.prototype.isVisible=function(t){return!1},o.prototype.show=function(){return!1},o.prototype.hide=function(){return!1},o.prototype.redraw=function(){},o.prototype.repositionX=function(){},o.prototype.repositionY=function(){},o.prototype._repaintDeleteButton=function(t){var e=(this.options.editable.remove||this.data.editable===!0)&&this.data.editable!==!1;if(this.selected&&e&&!this.dom.deleteButton){var i=this,o=document.createElement("div");o.className="vis-delete",o.title="Delete this item",new n(o).on("tap",function(t){t.stopPropagation(),i.parent.removeFromDataSet(i)}),t.appendChild(o),this.dom.deleteButton=o}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},o.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;var o=this._contentToString(this.content)!==this._contentToString(e);if(o){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},o.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("vis-title")},o.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;in;n++){var r=this.visibleItems[n];r.repositionY(e)}return o},o.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=o},function(t,e,i){function o(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);n.call(this,t,e,i)}var n=i(34);i(1);o.prototype=new n(null,null,null),o.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},o.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.frame=document.createElement("div"),t.frame.className="vis-item-overflow",t.box.appendChild(t.frame),t.content=document.createElement("div"),t.content.className="vis-item-content",t.frame.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" vis-selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},o.prototype.show=r.prototype.show,o.prototype.hide=r.prototype.hide,o.prototype.repositionX=r.prototype.repositionX,o.prototype.repositionY=function(t){var e="top"===this.options.orientation.item;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var o=this.data.subgroup,n=this.parent.subgroups,r=n[o].index;if(1==e){i=this.parent.subgroups[o].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in n)n.hasOwnProperty(h)&&1==n[h].visible&&n[h].indexr&&(a+=l)}i=this.parent.subgroups[o].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof s?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=o},function(t,e,i){function o(t,e){this.dom={foreground:null,lines:[],majorTexts:[],minorTexts:[],redundant:{lines:[],majorTexts:[],minorTexts:[]}},this.props={range:{start:0,end:0,minimumStep:0},lineTop:0},this.defaultOptions={orientation:{axis:"bottom"},showMinorLabels:!0,showMajorLabels:!0,format:r.FORMAT,moment:h,timeAxis:null},this.options=n.extend({},this.defaultOptions),this.body=t,this._create(),this.setOptions(e)}var n=i(1),s=i(26),r=i(30),a=i(27),h=i(2); +o.prototype=new s,o.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showMinorLabels","showMajorLabels","hiddenDates","timeAxis","moment"],this.options,t),n.selectiveDeepExtend(["format"],this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation.axis=t.orientation:"object"==typeof t.orientation&&"axis"in t.orientation&&(this.options.orientation.axis=t.orientation.axis)),"locale"in t&&("function"==typeof h.locale?h.locale(t.locale):h.lang(t.locale)))},o.prototype._create=function(){this.dom.foreground=document.createElement("div"),this.dom.background=document.createElement("div"),this.dom.foreground.className="vis-time-axis vis-foreground",this.dom.background.className="vis-time-axis vis-background"},o.prototype.destroy=function(){this.dom.foreground.parentNode&&this.dom.foreground.parentNode.removeChild(this.dom.foreground),this.dom.background.parentNode&&this.dom.background.parentNode.removeChild(this.dom.background),this.body=null},o.prototype.redraw=function(){var t=this.props,e=this.dom.foreground,i=this.dom.background,o="top"==this.options.orientation.axis?this.body.dom.top:this.body.dom.bottom,n=e.parentNode!==o;this._calculateCharSize();var s=this.options.showMinorLabels&&"none"!==this.options.orientation.axis,r=this.options.showMajorLabels&&"none"!==this.options.orientation.axis;t.minorLabelHeight=s?t.minorCharHeight:0,t.majorLabelHeight=r?t.majorCharHeight:0,t.height=t.minorLabelHeight+t.majorLabelHeight,t.width=e.offsetWidth,t.minorLineHeight=this.body.domProps.root.height-t.majorLabelHeight-("top"==this.options.orientation.axis?this.body.domProps.bottom.height:this.body.domProps.top.height),t.minorLineWidth=1,t.majorLineHeight=t.minorLineHeight+t.majorLabelHeight,t.majorLineWidth=1;var a=e.nextSibling,h=i.nextSibling;return e.parentNode&&e.parentNode.removeChild(e),i.parentNode&&i.parentNode.removeChild(i),e.style.height=this.props.height+"px",this._repaintLabels(),a?o.insertBefore(e,a):o.appendChild(e),h?this.body.dom.backgroundVertical.insertBefore(i,h):this.body.dom.backgroundVertical.appendChild(i),this._isResized()||n},o.prototype._repaintLabels=function(){var t=this.options.orientation.axis,e=n.convert(this.body.range.start,"Number"),i=n.convert(this.body.range.end,"Number"),o=this.body.util.toTime(7*(this.props.minorCharWidth||10)).valueOf(),s=o-a.getHiddenDurationBefore(this.options.moment,this.body.hiddenDates,this.body.range,o);s-=this.body.util.toTime(0).valueOf();var h=new r(new Date(e),new Date(i),s,this.body.hiddenDates);h.setMoment(this.options.moment),this.options.format&&h.setFormat(this.options.format),this.options.timeAxis&&h.setScale(this.options.timeAxis),this.step=h;var d=this.dom;d.redundant.lines=d.lines,d.redundant.majorTexts=d.majorTexts,d.redundant.minorTexts=d.minorTexts,d.lines=[],d.majorTexts=[],d.minorTexts=[];var l,u,c,p,f,m,v,g,y,b=void 0,w=0;for(h.start(),u=h.getCurrent(),p=this.body.util.toScreen(u);h.hasNext()&&1e3>w;){w++,f=h.isMajor(),y=h.getClassName(),g=h.getLabelMinor(),l=u,c=p,h.next(),u=h.getCurrent(),p=this.body.util.toScreen(u),m=p-c;var _=(g.length+1)*this.props.minorCharWidth0&&(void 0==b&&(b=c),this._repaintMajorText(c,h.getLabelMajor(),t,y)),v=this._repaintMajorLine(c,m,t,y)):_?v=this._repaintMinorLine(c,m,t,y):v&&(v.style.width=parseInt(v.style.width)+m+"px")}if(this.options.showMajorLabels){var x=this.body.util.toTime(0),k=h.getLabelMajor(x),O=k.length*(this.props.majorCharWidth||10)+10;(void 0==b||b>O)&&this._repaintMajorText(0,k,t,y)}n.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},o.prototype._repaintMinorText=function(t,e,i,o){var n=this.dom.redundant.minorTexts.shift();if(!n){var s=document.createTextNode("");n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.minorTexts.push(n),n.childNodes[0].nodeValue=e,n.style.top="top"==i?this.props.majorLabelHeight+"px":"0",n.style.left=t+"px",n.className="vis-text vis-minor "+o,n},o.prototype._repaintMajorText=function(t,e,i,o){var n=this.dom.redundant.majorTexts.shift();if(!n){var s=document.createTextNode(e);n=document.createElement("div"),n.appendChild(s),this.dom.foreground.appendChild(n)}return this.dom.majorTexts.push(n),n.childNodes[0].nodeValue=e,n.className="vis-text vis-major "+o,n.style.top="top"==i?"0":this.props.minorLabelHeight+"px",n.style.left=t+"px",n},o.prototype._repaintMinorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top=s.majorLabelHeight+"px":n.style.top=this.body.domProps.top.height+"px",n.style.height=s.minorLineHeight+"px",n.style.left=t-s.minorLineWidth/2+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-minor "+o,n},o.prototype._repaintMajorLine=function(t,e,i,o){var n=this.dom.redundant.lines.shift();n||(n=document.createElement("div"),this.dom.background.appendChild(n)),this.dom.lines.push(n);var s=this.props;return"top"==i?n.style.top="0":n.style.top=this.body.domProps.top.height+"px",n.style.left=t-s.majorLineWidth/2+"px",n.style.height=s.majorLineHeight+"px",n.style.width=e+"px",n.className="vis-grid vis-vertical vis-major "+o,n},o.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="vis-text vis-minor vis-measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="vis-text vis-major vis-measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=o},function(t,e,i){function o(t){this.active=!1,this.dom={container:t},this.dom.overlay=document.createElement("div"),this.dom.overlay.className="vis-overlay",this.dom.container.appendChild(this.dom.overlay),this.hammer=a(this.dom.overlay),this.hammer.on("tap",this._onTapOverlay.bind(this));var e=this,i=["tap","doubletap","press","pinch","pan","panstart","panmove","panend"];i.forEach(function(t){e.hammer.on(t,function(t){t.stopPropagation()})}),document&&document.body&&(this.onClick=function(i){n(i.target,t)||e.deactivate()},document.body.addEventListener("click",this.onClick)),void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=s(),this.escListener=this.deactivate.bind(this)}function n(t,e){for(;t;){if(t===e)return!0;t=t.parentNode}return!1}var s=i(41),r=i(12),a=i(20),h=i(1);r(o.prototype),o.current=null,o.prototype.destroy=function(){this.deactivate(),this.dom.overlay.parentNode.removeChild(this.dom.overlay),this.onClick&&document.body.removeEventListener("click",this.onClick),this.hammer.destroy(),this.hammer=null},o.prototype.activate=function(){o.current&&o.current.deactivate(),o.current=this,this.active=!0,this.dom.overlay.style.display="none",h.addClassName(this.dom.container,"vis-active"),this.emit("change"),this.emit("activate"),this.keycharm.bind("esc",this.escListener)},o.prototype.deactivate=function(){this.active=!1,this.dom.overlay.style.display="",h.removeClassName(this.dom.container,"vis-active"),this.keycharm.unbind("esc",this.escListener),this.emit("change"),this.emit("deactivate")},o.prototype._onTapOverlay=function(t){this.activate(),t.stopPropagation()},t.exports=o},function(t,e,i){var o,n,s;!function(i,r){n=[],o=r,s="function"==typeof o?o.apply(e,n):o,!(void 0!==s&&(t.exports=s))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,o=t&&t.container||window,n={},s={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==s[e][t.keyCode]){for(var o=s[e][t.keyCode],n=0;no&&(o=30),o>1e3&&(o=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,o)}var e=this;t()},o.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},o.prototype.setCurrentTime=function(t){var e=n.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},o.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=o},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i0&&this._makeItem([]),this._makeHeader(n),this._handleObject(this.configureOptions[n],[n])),i++);this.options.showButton===!0&&!function(){var e=document.createElement("div");e.className="vis-configuration vis-config-button",e.innerHTML="generate options",e.onclick=function(){t._printOptions()},e.onmouseover=function(){e.className="vis-configuration vis-config-button hover"},e.onmouseout=function(){e.className="vis-configuration vis-config-button"},t.optionsContainer=document.createElement("div"),t.optionsContainer.className="vis-configuration vis-config-option-container",t.domElements.push(t.optionsContainer),t.domElements.push(e)}(),this._push(),this.colorPicker.insertTo(this.container)}},{key:"_push",value:function(){this.wrapper=document.createElement("div"),this.wrapper.className="vis-configuration-wrapper",this.container.appendChild(this.wrapper);for(var t=0;t1?o-1:0),s=1;o>s;s++)n[s-1]=e[s];return n.forEach(function(t){r.appendChild(t)}),i.domElements.push(r),{v:i.domElements.length}}();if("object"==typeof r)return r.v}return 0}},{key:"_makeHeader",value:function(t){var e=document.createElement("div");e.className="vis-configuration vis-config-header",e.innerHTML=t,this._makeItem([],e)}},{key:"_makeLabel",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=document.createElement("div");return o.className="vis-configuration vis-config-label vis-config-s"+e.length,i===!0?o.innerHTML=""+t+":":o.innerHTML=t+":",o}},{key:"_makeDropdown",value:function(t,e,i){var o=document.createElement("select");o.className="vis-configuration vis-config-select";var n=0;void 0!==e&&-1!==t.indexOf(e)&&(n=t.indexOf(e));for(var s=0;se&&n>e*u?(a.min=Math.ceil(e*u),l=a.min,d="range increased"):n>e/u&&(a.min=Math.ceil(e/u),l=a.min,d="range increased"),e*u>s&&1!==s&&(a.max=Math.ceil(e*u),l=a.max,d="range increased"),a.value=e}else a.value=o;var c=document.createElement("input");c.className="vis-configuration vis-config-rangeinput",c.value=a.value;var p=this;a.onchange=function(){c.value=this.value,p._update(Number(this.value),i)},a.oninput=function(){c.value=this.value};var f=this._makeLabel(i[i.length-1],i),m=this._makeItem(i,f,a,c);""!==d&&this.popupHistory[m]!==l&&(this.popupHistory[m]=l,this._setupPopup(d,m))}},{key:"_setupPopup",value:function(t,e){var i=this;if(this.initialized===!0&&this.allowCreation===!0&&this.popupCountervar options = "+JSON.stringify(t,null,2)+""}},{key:"getOptions",value:function(){for(var t={},e=0;es;s++)for(r=0;rp?p+1:p;var f=l/this.r,m=a.RGBToHSV(this.color.r,this.color.g,this.color.b);m.h=p,m.s=f;var v=a.HSVToRGB(m.h,m.s,m.v);v.a=this.color.a,this.color=v,this.initialColorDiv.style.backgroundColor="rgba("+this.initialColor.r+","+this.initialColor.g+","+this.initialColor.b+","+this.initialColor.a+")",this.newColorDiv.style.backgroundColor="rgba("+this.color.r+","+this.color.g+","+this.color.b+","+this.color.a+")"}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;is.distance?console.log('%cUnknown option detected: "'+e+'" in '+t.printLocation(n.path,e,"")+"Perhaps it was misplaced? Matching option found at: "+t.printLocation(s.path,s.closestMatch,""),h):n.distance<=d?console.log('%cUnknown option detected: "'+e+'". Did you mean "'+n.closestMatch+'"?'+t.printLocation(n.path,e),h):console.log('%cUnknown option detected: "'+e+'". Did you mean one of these: '+t.print(Object.keys(i))+t.printLocation(o,e),h),r=!0}},{key:"findInOptions",value:function(e,i,o){var n=arguments.length<=3||void 0===arguments[3]?!1:arguments[3],r=1e9,a="",h=[],d=e.toLowerCase(),l=void 0;for(var u in i){var c=void 0;if(void 0!==i[u].__type__&&n===!0){var p=t.findInOptions(e,i[u],s.copyAndExtendArray(o,u));r>p.distance&&(a=p.closestMatch,h=p.path,r=p.distance,l=p.indexMatch)}else-1!==u.toLowerCase().indexOf(d)&&(l=u),c=t.levenshteinDistance(e,u),r>c&&(a=u,h=s.copyArray(o),r=c)}return{closestMatch:a,path:h,distance:r,indexMatch:l}}},{key:"printLocation",value:function(t,e){for(var i=arguments.length<=2||void 0===arguments[2]?"Problem value found at: \n":arguments[2],o="\n\n"+i+"options = {\n",n=0;ns;s++)o+=" ";o+=t[n]+": {\n"}for(var s=0;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}},o.prototype.getEventProperties=function(t){var e=t.center?t.center.x:t.clientX,i=t.center?t.center.y:t.clientY,o=e-s.getAbsoluteLeft(this.dom.centerContainer),n=i-s.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(o),a=c.customTimeFromTarget(t),h=s.getTarget(t),d=null;s.hasParent(h,this.timeAxis.dom.foreground)?d="axis":this.timeAxis2&&s.hasParent(h,this.timeAxis2.dom.foreground)?d="axis":s.hasParent(h,this.linegraph.yAxisLeft.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.yAxisRight.dom.frame)?d="data-axis":s.hasParent(h,this.linegraph.legendLeft.dom.frame)?d="legend":s.hasParent(h,this.linegraph.legendRight.dom.frame)?d="legend":null!=a?d="custom-time":s.hasParent(h,this.currentTime.bar)?d="current-time":s.hasParent(h,this.dom.center)&&(d="background");var l=[],u=this.linegraph.yAxisLeft,p=this.linegraph.yAxisRight;return u.hidden||l.push(u.screenToValue(n)),p.hidden||l.push(p.screenToValue(n)),{event:t,what:d,pageX:t.srcEvent?t.srcEvent.pageX:t.pageX,pageY:t.srcEvent?t.srcEvent.pageY:t.pageY,x:o,y:n,time:r,value:l}},o.prototype._createConfigurator=function(){return new f(this,this.dom.container,y)},t.exports=o},function(t,e,i){function o(t,e){this.id=n.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,stack:!1,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,sideBySide:!1,align:"center"},interpolation:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,left:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}},right:{range:{min:void 0,max:void 0},format:function(t){return t},title:{text:void 0,style:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=n.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,o){i._onAdd(e.items)},update:function(t,e,o){i._onUpdate(e.items)},remove:function(t,e,o){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,o){i._onAddGroups(e.items)},update:function(t,e,o){i._onUpdateGroups(e.items)},remove:function(t,e,o){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=n.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var n=i(1),s=i(7),r=i(8),a=i(10),h=i(26),d=i(51),l=i(53),u=i(57),c=i(56),p=(i(54),"__ungrouped__");o.prototype=new h,o.prototype._create=function(){var t=document.createElement("div");t.className="vis-line-graph",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 u(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new u(this.body,this.options.legend,"right",this.options.groups),this.show()},o.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","stack","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),u={};for(this._getRelevantData(a,u,d,l),this._applySampling(a,u),e=0;ep&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;ro){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var o=0;o0){var s=1,r=n.length,a=this.body.util.toGlobalScreen(n[n.length-1].x)-this.body.util.toGlobalScreen(n[0].x),h=r/a;s=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=s)d.push(n[l]);e[t[o]]=d}}},o.prototype._getYRanges=function(t,e,i){var o,n,s,r,a=[],h=[];if(t.length>0){for(s=0;s0&&(n=this.groups[t[s]],r.stack===!0&&"bar"===r.style?"left"===r.yAxisOrientation?a=a.concat(n.getData(o)):h=h.concat(n.getData(o)):i[t[s]]=n.getYRange(o,t[s]));c.getStackedYRange(a,i,t,"__barStackLeft","left"),c.getStackedYRange(h,i,t,"__barStackRight","right")}},o.prototype._updateYAxis=function(t,e){var i,o,n=!1,s=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var u=0;ui?i:a,d=o>d?o:d):(r=!0,h=h>i?i:h,l=o>l?o:l));1==s&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}n=this._toggleAxisVisiblity(s,this.yAxisLeft)||n,n=this._toggleAxisVisiblity(r,this.yAxisRight)||n,1==r&&1==s?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!s,0==this.yAxisRight.master?(1==r?this.yAxisLeft.lineOffset=this.yAxisRight.width:this.yAxisLeft.lineOffset=0,n=this.yAxisLeft.redraw()||n,this.yAxisRight.stepPixels=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,this.yAxisRight.amountOfSteps=this.yAxisLeft.amountOfSteps,n=this.yAxisRight.redraw()||n):n=this.yAxisRight.redraw()||n;for(var p=["__barStackLeft","__barStackRight","__lineStackLeft","__lineStackRight"],u=0;ut?-1:1});for(var a=0;a0&&(t=0),this.range.start=t,this.range.end=e},o.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(this.groups[i].visible!==!0||void 0!==this.linegraphOptions.visibility[i]&&this.linegraphOptions.visibility[i]!==!0||e++);if(0===this.amountOfGroups||0===e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=this.options.visible===!0?Number((""+this.options.width).replace("px","")):0;var o=this.props,n=this.dom.frame;n.className="vis-data-axis",this._calculateCharSize();var s=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;o.minorLabelHeight=r?o.minorCharHeight:0,o.majorLabelHeight=a?o.majorCharHeight:0,o.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,o.minorLineHeight=1,o.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,o.majorLineHeight=1,"left"===s?(n.style.top="0",n.style.left="0",n.style.bottom="",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(n.style.top="",n.style.bottom="0",n.style.left="0",n.style.width=this.width+"px",n.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,this.options.icons===!0?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(s)}return t},o.prototype._redrawLabels=function(){var t=!1;s.prepareElements(this.DOMelements.lines),s.prepareElements(this.DOMelements.labels);var e,i=this.options.orientation;if(this.master===!1){var o,n,r,h;-1!==this.zeroCrossing&&this.options.alignZeros===!0?this.range.end>0?(o=this.range.end/this.zeroCrossing,n=this.range.end-this.amountOfSteps*o,r=this.range.end):(o=-1*this.range.start/(this.amountOfSteps-this.zeroCrossing),n=this.range.start,r=this.range.start+o*this.amountOfSteps):(n=this.range.start,r=this.range.end),h=this.stepPixels}else h=this.props.majorCharHeight,n=this.range.start,r=this.range.end;if(this.step=e=new a(n,r,h,this.dom.frame.offsetHeight,this.options[this.options.orientation].range,this.options[this.options.orientation].format,this.master===!1&&this.options.alignZeros),this.master===!0)this.stepPixels=this.dom.frame.offsetHeight/e.marginRange*e.step,this.amountOfSteps=Math.ceil(this.dom.frame.offsetHeight/this.stepPixels);else if(this.options.alignZeros===!0&&-1!==this.zeroCrossing){var d=(e.current-this.zeroCrossing*e.step)/e.step;this.step.shift(d)}this.valueAtBottom=e.marginEnd,this.maxLabelSize=0;for(var l=0,u=0,c=!1;u0&&u!==this.amountOfSteps&&((this.options.showMinorLabels&&c===!1||this.master===!1&&this.options.showMinorLabels===!0)&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-minor",this.props.minorCharHeight),c&&this.options.showMajorLabels&&this.master===!0||this.options.showMinorLabels===!1&&this.master===!1&&c===!0?(l>=0&&this._redrawLabel(l-2,e.getCurrent(),i,"vis-y-axis vis-major",this.props.majorCharHeight),this._redrawLine(l,i,"vis-grid vis-horizontal vis-major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(l,i,"vis-grid vis-horizontal vis-minor",this.options.minorLinesOffset,this.props.minorLineWidth)),this.master===!0&&0===e.current&&(this.zeroCrossing=u),e.next(),u+=1;this.master===!0&&0===e.current&&(this.zeroCrossing=u),this.conversionFactor=this.stepPixels/e.step;var p=0;void 0!==this.options[i].title&&void 0!==this.options[i].title.text&&(p=this.props.titleCharHeight);var f=this.options.icons===!0?Math.max(this.options.iconWidth,p)+this.options.labelOffsetX+15:p+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-f&&this.options.visible===!0?(this.width=this.maxLabelSize+f,this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+f),this.options.width=this.width+"px",s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(s.cleanupElements(this.DOMelements.lines),s.cleanupElements(this.DOMelements.labels),t=!1),t},o.prototype.convertValue=function(t){var e=this.valueAtBottom-t,i=e*this.conversionFactor;return i},o.prototype.screenToValue=function(t){return this.valueAtBottom-t/this.conversionFactor},o.prototype._redrawLabel=function(t,e,i,o,n){var r=s.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=o,r.innerHTML=e,"left"===i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*n+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizes&&(h=s);for(var d=!1,l=h;Math.abs(l)<=Math.abs(s);l++){a=Math.pow(10,l);for(var u=0;u=n){d=!0,r=u;break}}if(d===!0)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},i.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,this.alignZeros===!0&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},i.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},i.prototype.hasNext=function(){return this.current>=this.marginStart},i.prototype.next=function(){var t=this.current;this.current-=this.step,this.current===t&&(this.current=this._end)},i.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},i.prototype.getCurrent=function(){var t=Math.abs(this.current)t)for(var e=0;-t>e;e++)this.previous();else if(t>0)for(var e=0;t>e;e++)this.next()},t.exports=i},function(t,e,i){function o(t,e,i,o){this.id=e;var s=["sampling","style","sort","yAxisOrientation","barChart","drawPoints","shaded","interpolation"];this.options=n.selectiveBridgeObject(s,i),this.usingDefaultStyle=void 0===t.className,this.groupsUsingDefaultStyles=o,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 n=i(1),s=i(7),r=i(54),a=i(56),h=i(55);o.prototype.setItems=function(t){if(null!=t){this.itemsData=t,1==this.options.sort&&this.itemsData.sort(function(t,e){return t.x-e.x});for(var e=0;et[o].y?t[o].y:e,i=i0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=n0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0===i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o.prototype.draw=function(t,e,i){if(null!=t&&t.length>0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=n.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.interpolation.enabled?o._catmullRom(t,e):o._linear(t),1==e.options.shaded.enabled){var d,l=n.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" vis-fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&s.draw(t,e,i)}},o._catmullRomUniform=function(t){for(var e,i,o,n,s,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],o=t[l+1],n=d>l+2?t[l+2]:o,s={x:(-e.x+6*i.x+o.x)*h,y:(-e.y+6*i.y+o.y)*h},r={x:(i.x+6*o.x-n.x)*h,y:(i.y+6*o.y-n.y)*h},a+="C"+s.x+","+s.y+" "+r.x+","+r.y+" "+o.x+","+o.y+" ";return a},o._catmullRom=function(t,e){var i=e.options.interpolation.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var o,n,s,r,a,h,d,l,u,c,p,f,m,v,g,y,b,w,_,x=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",k=t.length,O=0;k-1>O;O++)o=0==O?t[0]:t[O-1],n=t[O],s=t[O+1],r=k>O+2?t[O+2]:s,d=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),l=Math.sqrt(Math.pow(n.x-s.x,2)+Math.pow(n.y-s.y,2)),u=Math.sqrt(Math.pow(s.x-r.x,2)+Math.pow(s.y-r.y,2)),v=Math.pow(u,i),y=Math.pow(u,2*i),g=Math.pow(l,i),b=Math.pow(l,2*i),_=Math.pow(d,i),w=Math.pow(d,2*i),c=2*w+3*_*g+b,p=2*y+3*v*g+b,f=3*_*(_+g),f>0&&(f=1/f),m=3*v*(v+g),m>0&&(m=1/m),a={x:(-b*o.x+c*n.x+w*s.x)*f,y:(-b*o.y+c*n.y+w*s.y)*f},h={x:(y*n.x+p*s.x-b*r.x)*m,y:(y*n.y+p*s.y-b*r.y)*m},0==a.x&&0==a.y&&(a=n),0==h.x&&0==h.y&&(h=s),x+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+s.x+","+s.y+" ";return x},o._linear=function(t){for(var e="",i=0;it[o].y?t[o].y:e,i=it[o].y?t[o].y:e,i=i0&&(r=Math.min(r,Math.abs(c[l-1].x-a))),h=o._getSafeDrawData(r,d,m);else{var g=l+(p[a].amount-p[a].resolved),y=l-(p[a].resolved+1);g0&&(r=Math.min(r,Math.abs(c[y].x-a))),h=o._getSafeDrawData(r,d,m),p[a].resolved+=1,d.options.stack===!0?c[l].y0&&(i=Math.min(i,Math.abs(e[o-1].x-e[o].x))),0===i&&(void 0===t[e[o].x]&&(t[e[o].x]={amount:0,resolved:0,accumulatedPositive:0,accumulatedNegative:0}),t[e[o].x].amount+=1)},o._getSafeDrawData=function(t,e,i){var o,n;return t0?(o=i>t?i:t,n=0,"left"===e.options.barChart.align?n-=.5*t:"right"===e.options.barChart.align&&(n+=.5*t)):(o=e.options.barChart.width,n=0,"left"===e.options.barChart.align?n-=.5*e.options.barChart.width:"right"===e.options.barChart.align&&(n+=.5*e.options.barChart.width)),{width:o,offset:n}},o.getStackedYRange=function(t,e,i,n,s){if(t.length>0){t.sort(function(t,e){return t.x===e.x?t.groupIde[s].y?e[s].y:o,n=nt[r].accumulatedNegative?t[r].accumulatedNegative:o,o=o>t[r].accumulatedPositive?t[r].accumulatedPositive:o,n=nt?-1:1});for(var i=0;i")}this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},o.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){var t=Object.keys(this.groups); +t.sort(function(t,e){return e>t?-1:1}),s.prepareElements(this.svgElements);var e=window.getComputedStyle(this.dom.frame).paddingTop,i=Number(e.replace("px","")),o=i,n=this.options.iconSize,r=.75*this.options.iconSize,a=i+.5*r+3;this.svg.style.width=n+5+i+"px";for(var h=0;h0){var i=this.groupIndex%this.groupsArray.length;this.groupIndex++,e={},e.color=this.groups[this.groupsArray[i]],this.groups[t]=e}else{var i=this.defaultIndex%this.defaultGroups.length;this.defaultIndex++,e={},e.color=this.defaultGroups[i],this.groups[t]=e}return e}},{key:"add",value:function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e}}]),t}();e["default"]=r,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;it.left&&this.shape.topt.top}},{key:"isBoundingBoxOverlappingWith",value:function(t){return this.shape.boundingBox.leftt.left&&this.shape.boundingBox.topt.top}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["color","font","fixed","shadow"];if(B.selectiveNotDeepExtend(n,t,e,i),B.mergeOptions(t,e,"shadow",i,o),void 0!==e.color&&null!==e.color){var s=B.parseColor(e.color);B.fillIfDefined(t.color,s)}else i===!0&&null===e.color&&(t.color=Object.create(o.color));void 0!==e.fixed&&null!==e.fixed&&("boolean"==typeof e.fixed?(t.fixed.x=e.fixed,t.fixed.y=e.fixed):(void 0!==e.fixed.x&&"boolean"==typeof e.fixed.x&&(t.fixed.x=e.fixed.x),void 0!==e.fixed.y&&"boolean"==typeof e.fixed.y&&(t.fixed.y=e.fixed.y))),void 0!==e.font&&null!==e.font?a["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=Object.create(o.font)),void 0!==e.scaling&&B.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)}}]),t}();e["default"]=R,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;i=this.nodeOptions.scaling.label.maxVisible&&(r=Number(this.nodeOptions.scaling.label.maxVisible)/this.body.view.scale);var h=this.size.yLine,d=this._getColor(a),l=n(d,2),u=l[0],c=l[1],p=this._setAlignment(t,i,h,s),f=n(p,2);i=f[0],h=f[1],t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+r+"px "+this.fontOptions.face,t.fillStyle=u,t.textAlign="center",this.fontOptions.strokeWidth>0&&(t.lineWidth=this.fontOptions.strokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var m=0;m0&&t.strokeText(this.lines[m],i,h),t.fillText(this.lines[m],i,h),h+=r}},{key:"_setAlignment",value:function(t,e,i,o){if("horizontal"!==this.fontOptions.align&&this.pointToSelf===!1){e=0,i=0;var n=2;"top"===this.fontOptions.align?(t.textBaseline="alphabetic",i-=2*n):"bottom"===this.fontOptions.align?(t.textBaseline="hanging",i+=2*n):t.textBaseline="middle"}else t.textBaseline=o;return[e,i]}},{key:"_getColor",value:function(t){var e=this.fontOptions.color||"#000000",i=this.fontOptions.strokeColor||"#ffffff";if(t<=this.nodeOptions.scaling.label.drawThreshold){var o=Math.max(0,Math.min(1,1-(this.nodeOptions.scaling.label.drawThreshold-t)));e=r.overrideOpacity(e,o),i=r.overrideOpacity(i,o)}return[e,i]}},{key:"getTextSize",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i={width:this._processLabel(t,e),height:this.fontOptions.size*this.lineCount,lineCount:this.lineCount};return i}},{key:"calculateLabelSize",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?0:arguments[2],o=arguments.length<=3||void 0===arguments[3]?0:arguments[3],n=arguments.length<=4||void 0===arguments[4]?"middle":arguments[4];this.labelDirty===!0&&(this.size.width=this._processLabel(t,e)),this.size.height=this.fontOptions.size*this.lineCount,this.size.left=i-.5*this.size.width,this.size.top=o-.5*this.size.height,this.size.yLine=o+.5*(1-this.lineCount)*this.fontOptions.size,"hanging"===n&&(this.size.top+=.5*this.fontOptions.size,this.size.top+=4,this.size.yLine+=4),this.labelDirty=!1}},{key:"_processLabel",value:function(t,e){var i=0,o=[""],n=0;if(void 0!==this.nodeOptions.label){o=String(this.nodeOptions.label).split("\n"),n=o.length,t.font=(e&&this.nodeOptions.labelHighlightBold?"bold ":"")+this.fontOptions.size+"px "+this.fontOptions.face,i=t.measureText(o[0]).width;for(var s=1;n>s;s++){var r=t.measureText(o[s]).width;i=r>i?r:i}}return this.lines=o,this.lineCount=n,i}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2];if("string"==typeof e.font){var o=e.font.split(" ");t.size=o[0].replace("px",""),t.face=o[1],t.color=o[2]}else"object"==typeof e.font&&r.fillIfDefined(t,e.font,i);t.size=Number(t.size)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;ithis.imageObj.height?(o=this.imageObj.width/this.imageObj.height,e=2*this.options.size*o||this.imageObj.width,i=2*this.options.size||this.imageObj.height):(o=this.imageObj.width&&this.imageObj.height?this.imageObj.height/this.imageObj.width:1,e=2*this.options.size,i=2*this.options.size*o):(e=this.imageObj.width,i=this.imageObj.height),this.width=e,this.height=i,this.radius=.5*this.width}}},{key:"_drawRawCircle",value:function(t,e,i,o,n,s){var r=this.options.borderWidth,a=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=o?this.options.color.highlight.border:n?this.options.color.hover.border:this.options.color.border,t.lineWidth=o?a:r,t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=o?this.options.color.highlight.background:n?this.options.color.hover.background:this.options.color.background,t.circle(e,i,s),this.enableShadow(t),t.fill(),this.disableShadow(t),t.save(),this.enableBorderDashes(t),t.stroke(),this.disableBorderDashes(t),t.restore()}},{key:"_drawImageAtPosition",value:function(t){0!=this.imageObj.width&&(t.globalAlpha=1,this.enableShadow(t),t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),this.disableShadow(t))}},{key:"_drawImageLabel",value:function(t,e,i,o){var n,s=0;if(void 0!==this.height){s=.5*this.height;var r=this.labelModule.getTextSize(t);r.lineCount>=1&&(s+=r.height/2)}n=i+s,this.options.label&&(this.labelOffset=s),this.labelModule.draw(t,e,n,o,"hanging")}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+3))}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0){var i=5;this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelModule.size.height+i)}}},{key:"_icon",value:function(t,e,i,o){var n=Number(this.options.icon.size);void 0!==this.options.icon.code?(t.font=(o?"bold ":"")+n+"px "+this.options.icon.face,t.fillStyle=this.options.icon.color||"black",t.textAlign="center",t.textBaseline="middle",this.enableShadow(t),t.fillText(this.options.icon.code,e,i),this.disableShadow(t)):console.error("When using the icon shape, you need to define the code in the icon options object. This can be done per node or globally.")}},{key:"distanceToBorder",value:function(t,e){return this._distanceToBorder(t,e)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i0&&(this.boundingBox.left=Math.min(this.boundingBox.left,this.labelModule.size.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelModule.size.left+this.labelModule.size.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelOffset))}},{key:"distanceToBorder",value:function(t,e){this.resize(t);var i=this.width/2,o=this.height/2,n=Math.sin(e)*i,s=Math.cos(e)*o;return i*o/Math.sqrt(n*n+s*s)}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;ii.shape.height?(r=i.x+.5*i.shape.width,a=i.y-h):(r=i.x+h,a=i.y-.5*i.shape.height),s=this._pointOnCircle(r,a,h,.125),this.labelModule.draw(t,s.x,s.y,n)}}}},{key:"isOverlappingWith",value:function(t){if(this.connected){var e=10,i=this.from.x,o=this.from.y,n=this.to.x,s=this.to.y,r=t.left,a=t.top,h=this.edgeType.getDistanceToEdge(i,o,n,s,r,a);return e>h}return!1}},{key:"_rotateForLabelAlignment",value:function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,o=Math.atan2(e,i);(-1>o&&0>i||o>0&&0>i)&&(o+=Math.PI),t.rotate(o)}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"select",value:function(){this.selected=!0}},{key:"unselect",value:function(){this.selected=!1}},{key:"cleanup",value:function(){return this.edgeType.cleanup()}}],[{key:"parseOptions",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=arguments.length<=3||void 0===arguments[3]?{}:arguments[3],n=["id","from","hidden","hoverWidth","label","labelHighlightBold","length","line","opacity","physics","scaling","selectionWidth","selfReferenceSize","to","title","value","width"];if(v.selectiveDeepExtend(n,t,e,i),v.mergeOptions(t,e,"smooth",i,o),v.mergeOptions(t,e,"shadow",i,o),void 0!==e.dashes&&null!==e.dashes?t.dashes=e.dashes:i===!0&&null===e.dashes&&(t.dashes=Object.create(o.dashes)),void 0!==e.scaling&&null!==e.scaling?(void 0!==e.scaling.min&&(t.scaling.min=e.scaling.min),void 0!==e.scaling.max&&(t.scaling.max=e.scaling.max),v.mergeOptions(t.scaling,e.scaling,"label",i,o.scaling)):i===!0&&null===e.scaling&&(t.scaling=Object.create(o.scaling)),void 0!==e.arrows&&null!==e.arrows)if("string"==typeof e.arrows){var s=e.arrows.toLowerCase();-1!=s.indexOf("to")&&(t.arrows.to.enabled=!0),-1!=s.indexOf("middle")&&(t.arrows.middle.enabled=!0),-1!=s.indexOf("from")&&(t.arrows.from.enabled=!0)}else{if("object"!=typeof e.arrows)throw new Error("The arrow newOptions can only be an object or a string. Refer to the documentation. You used:"+JSON.stringify(e.arrows));v.mergeOptions(t.arrows,e.arrows,"to",i,o.arrows),v.mergeOptions(t.arrows,e.arrows,"middle",i,o.arrows),v.mergeOptions(t.arrows,e.arrows,"from",i,o.arrows)}else i===!0&&null===e.arrows&&(t.arrows=Object.create(o.arrows));if(void 0!==e.color&&null!==e.color)if(v.isString(e.color))t.color.color=e.color,t.color.highlight=e.color,t.color.hover=e.color,t.color.inherit=!1;else{var r=!1;void 0!==e.color.color&&(t.color.color=e.color.color,r=!0),void 0!==e.color.highlight&&(t.color.highlight=e.color.highlight,r=!0),void 0!==e.color.hover&&(t.color.hover=e.color.hover,r=!0),void 0!==e.color.inherit&&(t.color.inherit=e.color.inherit),void 0!==e.color.opacity&&(t.color.opacity=Math.min(1,Math.max(0,e.color.opacity))),void 0===e.color.inherit&&r===!0&&(t.color.inherit=!1)}else i===!0&&null===e.color&&(t.color=Object.create(o.color));void 0!==e.font&&null!==e.font?a["default"].parseOptions(t.font,e):i===!0&&null===e.font&&(t.font=Object.create(o.font))}}]),t}();e["default"]=g,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),a=function(){function t(t,e){for(var i=0;iMath.abs(e)||this.options.smooth.forceDirection===!0||"horizontal"===this.options.smooth.forceDirection)&&"vertical"!==this.options.smooth.forceDirection?(o=this.from.y,s=this.to.y,i=this.from.x-r*t,n=this.to.x+r*t):(o=this.from.y-r*e,s=this.to.y+r*e,i=this.from.x,n=this.to.x),[{x:i,y:o},{x:n,y:s}]}},{key:"_findBorderPosition",value:function(t,e){return this._findBorderPositionBezier(t,e)}},{key:"_getDistanceToEdge",value:function(t,e,i,o,n,s){var a=arguments.length<=6||void 0===arguments[6]?this._getViaCoordinates():arguments[6],h=r(a,2),d=h[0],l=h[1];return this._getDistanceToBezierEdge(t,e,i,o,n,s,d,l)}},{key:"getPoint",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?this._getViaCoordinates():arguments[1],i=r(e,2),o=i[0],n=i[1],s=t,a=[];a[0]=Math.pow(1-s,3),a[1]=3*s*Math.pow(1-s,2),a[2]=3*Math.pow(s,2)*(1-s),a[3]=Math.pow(s,3);var h=a[0]*this.from.x+a[1]*o.x+a[2]*n.x+a[3]*this.to.x,d=a[0]*this.from.y+a[1]*o.y+a[2]*n.y+a[3]*this.to.y;return{x:h,y:d}}}]),e}(l["default"]);e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;il;l++)u=.1*l,v[0]=Math.pow(1-u,3),v[1]=3*u*Math.pow(1-u,2),v[2]=3*Math.pow(u,2)*(1-u),v[3]=Math.pow(u,3),c=v[0]*t+v[1]*r.x+v[2]*a.x+v[3]*i,p=v[0]*e+v[1]*r.y+v[2]*a.y+v[3]*o,l>0&&(d=this._getDistanceToLine(f,m,c,p,n,s),h=h>d?d:h),f=c,m=p;return h}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i=l&&h>d;){var m=.5*(l+u);if(i=this.getPoint(m,a),o=Math.atan2(p.y-i.y,p.x-i.x),n=p.distanceToBorder(e,o),s=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=n-s,Math.abs(r)r?f===!1?l=m:u=m:f===!1?u=m:l=m,d++}return i.t=m,i}},{key:"_getDistanceToBezierEdge",value:function(t,e,i,o,n,s,r){var a=1e9,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0,p=t,f=e;for(d=1;10>d;d++)l=.1*d,u=Math.pow(1-l,2)*t+2*l*(1-l)*r.x+Math.pow(l,2)*i,c=Math.pow(1-l,2)*e+2*l*(1-l)*r.y+Math.pow(l,2)*o,d>0&&(h=this._getDistanceToLine(p,f,u,c,n,s),a=a>h?h:a),p=u,f=c;return a}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),s=function(){function t(t,e){for(var i=0;io.shape.height?(e=o.x+.5*o.shape.width,i=o.y-n):(e=o.x+n,i=o.y-.5*o.shape.height),[e,i,n]}},{key:"_pointOnCircle",value:function(t,e,i,o){var n=2*o*Math.PI;return{x:t+i*Math.cos(n),y:e-i*Math.sin(n)}}},{key:"_findBorderPositionCircle",value:function(t,e,i){for(var o=i.x,n=i.y,s=i.low,r=i.high,a=i.direction,h=10,d=0,l=this.options.selfReferenceSize,u=void 0,c=void 0,p=void 0,f=void 0,m=void 0,v=.05,g=.5*(s+r);r>=s&&h>d&&(g=.5*(s+r),u=this._pointOnCircle(o,n,l,g),c=Math.atan2(t.y-u.y,t.x-u.x),p=t.distanceToBorder(e,c),f=Math.sqrt(Math.pow(u.x-t.x,2)+Math.pow(u.y-t.y,2)),m=p-f,!(Math.abs(m)0?a>0?s=g:r=g:a>0?r=g:s=g,d++;return u.t=g,u}},{key:"getLineWidth",value:function(t,e){return t===!0?Math.max(this.selectionWidth,.3/this.body.view.scale):e===!0?Math.max(this.hoverWidth,.3/this.body.view.scale):Math.max(this.options.width,.3/this.body.view.scale)}},{key:"getColor",value:function(t,e,i){var o=this.options.color;if(o.inherit!==!1){if("both"===o.inherit&&this.from.id!==this.to.id){var n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y),s=void 0,a=void 0;return s=this.from.options.color.highlight.border,a=this.to.options.color.highlight.border,this.from.selected===!1&&this.to.selected===!1?(s=r.overrideOpacity(this.from.options.color.border,this.options.color.opacity),a=r.overrideOpacity(this.to.options.color.border,this.options.color.opacity)):this.from.selected===!0&&this.to.selected===!1?a=this.to.options.color.border:this.from.selected===!1&&this.to.selected===!0&&(s=this.from.options.color.border),n.addColorStop(0,s),n.addColorStop(1,a),n}this.colorDirty===!0&&("to"===o.inherit?(this.color.highlight=this.to.options.color.highlight.border,this.color.hover=this.to.options.color.hover.border,this.color.color=r.overrideOpacity(this.to.options.color.border,o.opacity)):(this.color.highlight=this.from.options.color.highlight.border,this.color.hover=this.from.options.color.hover.border,this.color.color=r.overrideOpacity(this.from.options.color.border,o.opacity)))}else this.colorDirty===!0&&(this.color.highlight=o.highlight,this.color.hover=o.hover,this.color.color=r.overrideOpacity(o.color,o.opacity));return this.colorDirty=!1,e===!0?this.color.highlight:i===!0?this.color.hover:this.color.color}},{key:"_circle",value:function(t,e,i,o){this.enableShadow(t),t.beginPath(),t.arc(e,i,o,0,2*Math.PI,!1),t.stroke(),this.disableShadow(t)}},{key:"getDistanceToEdge",value:function(t,e,i,o,s,r,a){var h=0;if(this.from!=this.to)h=this._getDistanceToEdge(t,e,i,o,s,r,a);else{var d=this._getCircleData(),l=n(d,3),u=l[0],c=l[1],p=l[2],f=u-s,m=c-r;h=Math.abs(Math.sqrt(f*f+m*m)-p)}return this.labelModule.size.lefts&&this.labelModule.size.topr?0:h}},{key:"_getDistanceToLine",value:function(t,e,i,o,n,s){var r=i-t,a=o-e,h=r*r+a*a,d=((n-t)*r+(s-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,u=e+d*a,c=l-n,p=u-s;return Math.sqrt(c*c+p*p)}},{key:"drawArrowHead",value:function(t,e,i,o,s){t.strokeStyle=this.getColor(t,o,s),t.fillStyle=t.strokeStyle,t.lineWidth=this.getLineWidth(o,s);var r=void 0,a=void 0,h=void 0,d=void 0,l=void 0,u=void 0,c=void 0;if("from"===e?(d=this.from,l=this.to,u=.1,c=this.options.arrows.from.scaleFactor):"to"===e?(d=this.to,l=this.from,u=-.1,c=this.options.arrows.to.scaleFactor):(d=this.to,l=this.from,c=this.options.arrows.middle.scaleFactor),d!=l){if("middle"!==e)if(this.options.smooth.enabled===!0){h=this.findBorderPosition(d,t,{via:i});var p=this.getPoint(Math.max(0,Math.min(1,h.t+u)),i);r=Math.atan2(h.y-p.y,h.x-p.x)}else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.findBorderPosition(d,t);else r=Math.atan2(d.y-l.y,d.x-l.x),h=this.getPoint(.6,i);a=(10+5*this.options.width)*c,t.arrow(h.x,h.y,r,a),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}else{var f=void 0,m=void 0,v=this._getCircleData(t),g=n(v,3),y=g[0],b=g[1],w=g[2];"from"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.25,high:.6,direction:-1}),f=-2*m.t*Math.PI+1.5*Math.PI+.1*Math.PI):"to"===e?(m=this.findBorderPosition(this.from,t,{x:y,y:b,low:.6,high:1,direction:1}),f=-2*m.t*Math.PI+1.5*Math.PI-1.1*Math.PI):(m=this._pointOnCircle(y,b,w,.175),f=3.9269908169872414);var _=(10+5*this.options.width)*c;t.arrow(m.x,m.y,f,_),this.enableShadow(t),t.fill(),this.disableShadow(t),t.stroke()}}},{key:"enableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0.5)",t.shadowBlur=this.options.shadow.size,t.shadowOffsetX=this.options.shadow.x,t.shadowOffsetY=this.options.shadow.y)}},{key:"disableShadow",value:function(t){this.options.shadow.enabled===!0&&(t.shadowColor="rgba(0,0,0,0)",t.shadowBlur=0,t.shadowOffsetX=0,t.shadowOffsetY=0)}}]),t}();e["default"]=a,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var i=0;i=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s):this.from.x>this.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s)),"discrete"===o&&(t=i*s>n?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"===o&&(e=i*n>s?this.from.y:e));else if("straightCross"===o)Math.abs(this.from.x-this.to.x)<=Math.abs(this.from.y-this.to.y)?(t=this.from.x,e=this.from.yMath.abs(this.from.y-this.to.y)&&(t=this.from.x=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*s,e=this.from.y-i*s,t=this.to.xthis.to.x&&(t=this.from.x-i*s,e=this.from.y-i*s,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*s,e=this.from.y+i*s,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>=this.to.y?this.from.x<=this.to.x?(t=this.from.x+i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,e=this.to.y1||this.startedStabilization===!0)&&setTimeout(function(){t.body.emitter.emit("stabilized",{iterations:e}),t.startedStabilization=!1,t.stabilizationIterations=0},0)}},{key:"physicsTick",value:function(){if(this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0),this.stabilized===!1){if(this.adaptiveTimestep===!0&&this.adaptiveTimestepEnabled===!0){var t=1.2;this.adaptiveCounter%this.adaptiveInterval===0?(this.timestep=2*this.timestep,this.calculateForces(),this.moveNodes(),this.revert(),this.timestep=.5*this.timestep,this.calculateForces(),this.moveNodes(),this.calculateForces(),this.moveNodes(),this._evaluateStepQuality()===!0?this.timestep=t*this.timestep:this.timestep/ts))return!1;return!0}},{key:"moveNodes",value:function(){for(var t=this.physicsBody.physicsNodeIndices,e=this.options.maxVelocity?this.options.maxVelocity:1e9,i=0,o=0,n=5,s=0;se?s[t].x>0?e:-e:s[t].x,i.x+=s[t].x*o}else n[t].x=0,s[t].x=0;if(i.options.fixed.y===!1){var h=this.modelOptions.damping*s[t].y,d=(n[t].y-h)/i.options.mass;s[t].y+=d*o,s[t].y=Math.abs(s[t].y)>e?s[t].y>0?e:-e:s[t].y,i.y+=s[t].y*o}else n[t].y=0,s[t].y=0;var l=Math.sqrt(Math.pow(s[t].x,2)+Math.pow(s[t].y,2));return l}},{key:"calculateForces",value:function(){this.gravitySolver.solve(),this.nodesSolver.solve(),this.edgesSolver.solve()}},{key:"_freezeNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].x&&t[e].y&&(this.freezeCache[e]={x:t[e].options.fixed.x,y:t[e].options.fixed.y},t[e].options.fixed.x=!0,t[e].options.fixed.y=!0)}},{key:"_restoreFrozenNodes",value:function(){var t=this.body.nodes;for(var e in t)t.hasOwnProperty(e)&&void 0!==this.freezeCache[e]&&(t[e].options.fixed.x=this.freezeCache[e].x,t[e].options.fixed.y=this.freezeCache[e].y);this.freezeCache={}}},{key:"stabilize",value:function(){var t=this,e=arguments.length<=0||void 0===arguments[0]?this.options.stabilization.iterations:arguments[0];return"number"!=typeof e&&(console.log("The stabilize method needs a numeric amount of iterations. Switching to default: ",this.options.stabilization.iterations),e=this.options.stabilization.iterations),0===this.physicsBody.physicsNodeIndices.length?void(this.ready=!0):(this.adaptiveTimestep=this.options.adaptiveTimestep,this.body.emitter.emit("_resizeNodes"),this.stopSimulation(),this.stabilized=!1,this.body.emitter.emit("_blockRedraw"),this.targetIterations=e,this.options.stabilization.onlyDynamicEdges===!0&&this._freezeNodes(),this.stabilizationIterations=0,void setTimeout(function(){return t._stabilizationBatch()},0))}},{key:"_stabilizationBatch",value:function(){this.startedStabilization===!1&&(this.body.emitter.emit("startStabilizing"),this.startedStabilization=!0);for(var t=0;this.stabilized===!1&&t0){var t=void 0,e=this.body.nodes,i=this.physicsBody.physicsNodeIndices,o=i.length,n=this._formBarnesHutTree(e,i);this.barnesHutTree=n;for(var s=0;o>s;s++)t=e[i[s]],t.options.mass>0&&(this._getForceContribution(n.root.children.NW,t),this._getForceContribution(n.root.children.NE,t),this._getForceContribution(n.root.children.SW,t),this._getForceContribution(n.root.children.SE,t))}}},{key:"_getForceContribution",value:function(t,e){if(t.childrenCount>0){var i=void 0,o=void 0,n=void 0;i=t.centerOfMass.x-e.x,o=t.centerOfMass.y-e.y,n=Math.sqrt(i*i+o*o),n*t.calcSize>this.thetaInversed?this._calculateForces(n,i,o,e,t):4===t.childrenCount?(this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e)):t.children.data.id!=e.id&&this._calculateForces(n,i,o,e,t)}}},{key:"_calculateForces",value:function(t,e,i,o,n){0===t&&(t=.1,e=t),this.overlapAvoidanceFactor<1&&(t=Math.max(.1+this.overlapAvoidanceFactor*o.shape.radius,t-o.shape.radius));var s=this.options.gravitationalConstant*n.mass*o.options.mass/Math.pow(t,3),r=e*s,a=i*s;this.physicsBody.forces[o.id].x+=r,this.physicsBody.forces[o.id].y+=a}},{key:"_formBarnesHutTree",value:function(t,e){for(var i=void 0,o=e.length,n=t[e[0]].x,s=t[e[0]].y,r=t[e[0]].x,a=t[e[0]].y,h=1;o>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(n>d&&(n=d),d>r&&(r=d),s>l&&(s=l),l>a&&(a=l))}var u=Math.abs(r-n)-Math.abs(a-s);u>0?(s-=.5*u,a+=.5*u):(n+=.5*u,r-=.5*u);var c=1e-5,p=Math.max(c,Math.abs(r-n)),f=.5*p,m=.5*(n+r),v=.5*(s+a),g={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:m-f,maxX:m+f,minY:v-f,maxY:v+f},size:p,calcSize:1/p,children:{data:null},maxWidth:0,level:0,childrenCount:4}};this._splitBranch(g.root);for(var h=0;o>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(g.root,i);return g}},{key:"_updateBranchMass",value:function(t,e){var i=t.mass+e.options.mass,o=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=o,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=o,t.mass=i;var n=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")}},{key:"_placeInRegion",value:function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x===e.x&&t.children[i].children.data.y===e.y?(e.x+=this.seededRandom(),e.y+=this.seededRandom()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}}},{key:"_splitBranch",value:function(t){var e=null;1===t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)}},{key:"_insertRegion",value:function(t,e){var i=void 0,o=void 0,n=void 0,s=void 0,r=.5*t.size;switch(e){case"NW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY,s=t.range.minY+r;break;case"NE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY,s=t.range.minY+r;break;case"SW":i=t.range.minX,o=t.range.minX+r,n=t.range.minY+r,s=t.range.maxY;break;case"SE":i=t.range.minX+r,o=t.range.maxX,n=t.range.minY+r,s=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:o,minY:n,maxY:s},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}}},{key:"_debug",value:function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))}},{key:"_drawBranch",value:function(t,e,i){void 0===i&&(i="#FF0000"),4===t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii&&(s=.5*u>i?1:c*i+p,s/=i,o=t*s,n=e*s,l[r.id].x-=o,l[r.id].y-=n,l[a.id].x+=o,l[a.id].y+=n)}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;ii?-Math.pow(f*i,2)+Math.pow(f*p,2):0,0===i?i=.01:s/=i,o=t*s,n=e*s,c[r.id].x-=o,c[r.id].y-=n,c[a.id].x+=o,c[a.id].y+=n}}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0){var s=n.edges.length+1,r=this.options.centralGravity*s*n.options.mass;o[n.id].x=e*r,o[n.id].y=i*r}}}]),e}(d["default"]);e["default"]=l,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i=t&&i.push(n.id)}for(var o=0;o0&&Object.keys(c).length>0&&f===!0&&o.push({nodes:u,edges:c})}}}for(var l=0;lo?r.x:o,n=r.ys?r.y:s;return{x:.5*(i+o),y:.5*(n+s)}}},{key:"openCluster",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!0:arguments[2];if(void 0===t)throw new Error("No clusterNodeId supplied to openCluster.");if(void 0===this.body.nodes[t])throw new Error("The clusterNodeId supplied to openCluster does not exist.");if(void 0===this.body.nodes[t].containedNodes)return void console.log("The node:"+t+" is not a cluster.");var o=this.body.nodes[t],n=o.containedNodes,s=o.containedEdges;if(void 0!==e&&void 0!==e.releaseFunction&&"function"==typeof e.releaseFunction){var r={},a={x:o.x,y:o.y};for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];r[d]={x:l.x,y:l.y}}var u=e.releaseFunction(a,r);for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];void 0!==u[d]&&(l.x=void 0===u[d].x?o.x:u[d].x,l.y=void 0===u[d].y?o.y:u[d].y)}}else for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];l=n[d],l.x=o.x,l.y=o.y}for(var d in n)if(n.hasOwnProperty(d)){var l=this.body.nodes[d];l.vx=o.vx,l.vy=o.vy,l.setOptions({hidden:!1,physics:!0}),delete this.clusteredNodes[d]}for(var c=[],p=0;po;)e.push(this.clusteredNodes[t].node),t=this.clusteredNodes[t].clusterId,o++;return e.push(this.body.nodes[t]),e}},{key:"_getConnectedId",value:function(t,e){return t.toId!=e?t.toId:t.fromId!=e?t.fromId:t.fromId}},{key:"_getHubSize",value:function(){for(var t=0,e=0,i=0,o=0,n=0;no&&(o=s.edges.length),t+=s.edges.length,e+=Math.pow(s.edges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r),h=Math.floor(t+2*a);return h>o&&(h=o),h}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var r=function(t,e,i){for(var o=!0;o;){var n=t,s=e,r=i;a=d=h=void 0,o=!1,null===n&&(n=Function.prototype);var a=Object.getOwnPropertyDescriptor(n,s);if(void 0!==a){if("value"in a)return a.value;var h=a.get;return void 0===h?void 0:h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return void 0;t=d,e=s,i=r,o=!0}},a=i(62),h=o(a),d=function(t){function e(t,i,o,s,a){n(this,e),r(Object.getPrototypeOf(e.prototype),"constructor",this).call(this,t,i,o,s,a),this.isCluster=!0,this.containedNodes={},this.containedEdges={}}return s(e,t),e}(h["default"]);e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0,t.renderTimer=void 0}),this.body.emitter.on("destroy",function(){t.renderRequests=0,t.allowRedraw=!1,t.renderingActive=!1,t.requiresTimeout===!0?clearTimeout(t.renderTimer):cancelAnimationFrame(t.renderTimer),t.body.emitter.off()})}},{key:"setOptions",value:function(t){if(void 0!==t){var e=["hideEdgesOnDrag","hideNodesOnDrag"];s.selectiveDeepExtend(e,this.options,t)}}},{key:"_startRendering",value:function(){this.renderingActive===!0&&void 0===this.renderTimer&&(this.requiresTimeout===!0?this.renderTimer=window.setTimeout(this._renderStep.bind(this),this.simulationInterval):this.renderTimer=window.requestAnimationFrame(this._renderStep.bind(this)))}},{key:"_renderStep",value:function(){this.renderingActive===!0&&(this.renderTimer=void 0,this.requiresTimeout===!0&&this._startRendering(),this._redraw(),this.requiresTimeout===!1&&this._startRendering())}},{key:"redraw",value:function(){this.body.emitter.emit("setSize"),this._redraw()}},{key:"_requestRedraw",value:function(){var t=this;this.redrawRequested!==!0&&this.renderingActive===!1&&this.allowRedraw===!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(function(){t._redraw(!1)},0):window.requestAnimationFrame(function(){t._redraw(!1)}))}},{key:"_redraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];if(this.allowRedraw===!0){this.body.emitter.emit("initRedraw"),this.redrawRequested=!1;var e=this.canvas.frame.canvas.getContext("2d");(0===this.canvas.frame.canvas.width||0===this.canvas.frame.canvas.height)&&this.canvas.setSize(),this.pixelRatio=(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1),e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.canvas.frame.canvas.clientWidth,o=this.canvas.frame.canvas.clientHeight;if(e.clearRect(0,0,i,o),0===this.canvas.frame.clientWidth)return;e.save(),e.translate(this.body.view.translation.x,this.body.view.translation.y),e.scale(this.body.view.scale,this.body.view.scale),e.beginPath(),this.body.emitter.emit("beforeDrawing",e),e.closePath(),t===!1&&(this.dragging===!1||this.dragging===!0&&this.options.hideEdgesOnDrag===!1)&&this._drawEdges(e),(this.dragging===!1||this.dragging===!0&&this.options.hideNodesOnDrag===!1)&&this._drawNodes(e,t),this.controlNodesActive===!0&&this._drawControlNodes(e),e.beginPath(),this.body.emitter.emit("afterDrawing",e),e.closePath(),e.restore(),t===!0&&e.clearRect(0,0,i,o)}}},{key:"_resizeNodes",value:function(){var t=this.canvas.frame.canvas.getContext("2d");void 0===this.pixelRatio&&(this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1)),t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0),t.save(),t.translate(this.body.view.translation.x,this.body.view.translation.y),t.scale(this.body.view.scale,this.body.view.scale);var e=this.body.nodes,i=void 0;for(var o in e)e.hasOwnProperty(o)&&(i=e[o],i.resize(t),i.updateBoundingBox(t,i.selected));t.restore()}},{key:"_drawNodes",value:function(t){for(var e=arguments.length<=1||void 0===arguments[1]?!1:arguments[1],i=this.body.nodes,o=this.body.nodeIndices,n=void 0,s=[],r=20,a=this.canvas.DOMtoCanvas({x:-r,y:-r}),h=this.canvas.DOMtoCanvas({x:this.canvas.frame.canvas.clientWidth+r,y:this.canvas.frame.canvas.clientHeight+r}),d={top:a.y,left:a.x,bottom:h.y,right:h.x},l=0;l0){this.body.view.scale=this.cameraState.scale*(this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth);var t=this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight}),e={x:t.x-this.cameraState.position.x,y:t.y-this.cameraState.position.y};this.body.view.translation.x+=e.x*this.body.view.scale,this.body.view.translation.y+=e.y*this.body.view.scale}}},{key:"_prepareValue",value:function(t){if("number"==typeof t)return t+"px";if("string"==typeof t){if(-1!==t.indexOf("%")||-1!==t.indexOf("px"))return t;if(-1===t.indexOf("%"))return t+"px"}throw new Error("Could not use the value supplied for width or height:"+t)}},{key:"_create",value:function(){for(;this.body.container.hasChildNodes();)this.body.container.removeChild(this.body.container.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis-network",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.tabIndex=900,this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}this.body.container.appendChild(this.frame),this.body.view.scale=1,this.body.view.translation={x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight},this._bindHammer()}},{key:"_bindHammer",value:function(){var t=this;void 0!==this.hammer&&this.hammer.destroy(),this.drag={},this.pinch={},this.hammer=new s(this.frame.canvas),this.hammer.get("pinch").set({enable:!0}),this.hammer.get("pan").set({threshold:5,direction:30}),r.onTouch(this.hammer,function(e){t.body.eventListeners.onTouch(e)}),this.hammer.on("tap",function(e){t.body.eventListeners.onTap(e)}),this.hammer.on("doubletap",function(e){t.body.eventListeners.onDoubleTap(e)}),this.hammer.on("press",function(e){t.body.eventListeners.onHold(e)}),this.hammer.on("panstart",function(e){t.body.eventListeners.onDragStart(e)}),this.hammer.on("panmove",function(e){t.body.eventListeners.onDrag(e)}),this.hammer.on("panend",function(e){t.body.eventListeners.onDragEnd(e)}),this.hammer.on("pinch",function(e){t.body.eventListeners.onPinch(e)}),this.frame.canvas.addEventListener("mousewheel",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("DOMMouseScroll",function(e){t.body.eventListeners.onMouseWheel(e)}),this.frame.canvas.addEventListener("mousemove",function(e){t.body.eventListeners.onMouseMove(e)}),this.frame.canvas.addEventListener("contextmenu",function(e){t.body.eventListeners.onContext(e)}),this.hammerFrame=new s(this.frame),r.onRelease(this.hammerFrame,function(e){t.body.eventListeners.onRelease(e)})}},{key:"setSize",value:function(){var t=arguments.length<=0||void 0===arguments[0]?this.options.width:arguments[0],e=arguments.length<=1||void 0===arguments[1]?this.options.height:arguments[1];t=this._prepareValue(t),e=this._prepareValue(e);var i=!1,o=this.frame.canvas.width,n=this.frame.canvas.height,s=this.frame.canvas.getContext("2d"),r=this.pixelRatio;return this.pixelRatio=(window.devicePixelRatio||1)/(s.webkitBackingStorePixelRatio||s.mozBackingStorePixelRatio||s.msBackingStorePixelRatio||s.oBackingStorePixelRatio||s.backingStorePixelRatio||1),t!=this.options.width||e!=this.options.height||this.frame.style.width!=t||this.frame.style.height!=e?(this._getCameraState(r),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=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),this.options.width=t,this.options.height=e,i=!0):((this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)||this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio))&&this._getCameraState(r),this.frame.canvas.width!=Math.round(this.frame.canvas.clientWidth*this.pixelRatio)&&(this.frame.canvas.width=Math.round(this.frame.canvas.clientWidth*this.pixelRatio),i=!0),this.frame.canvas.height!=Math.round(this.frame.canvas.clientHeight*this.pixelRatio)&&(this.frame.canvas.height=Math.round(this.frame.canvas.clientHeight*this.pixelRatio),i=!0)),i===!0&&(this.body.emitter.emit("resize",{width:Math.round(this.frame.canvas.width/this.pixelRatio),height:Math.round(this.frame.canvas.height/this.pixelRatio),oldWidth:Math.round(o/this.pixelRatio),oldHeight:Math.round(n/this.pixelRatio)}),this._setCameraState()),i}},{key:"_XconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.x)/this.body.view.scale}},{key:"_XconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.x}},{key:"_YconvertDOMtoCanvas",value:function(t){return(t-this.body.view.translation.y)/this.body.view.scale}},{key:"_YconvertCanvasToDOM",value:function(t){return t*this.body.view.scale+this.body.view.translation.y}},{key:"canvasToDOM",value:function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}}},{key:"DOMtoCanvas",value:function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){for(var i=0;i.5*this.body.nodeIndices.length)return void this.fit(t,!1);i=a["default"]._getRange(this.body.nodes,t.nodes);var h=this.body.nodeIndices.length;o=12.662/(h+7.4147)+.0964822;var d=Math.min(this.canvas.frame.canvas.clientWidth/600,this.canvas.frame.canvas.clientHeight/600);o*=d}else{this.body.emitter.emit("_resizeNodes"),i=a["default"]._getRange(this.body.nodes,t.nodes);var l=1.1*Math.abs(i.maxX-i.minX),u=1.1*Math.abs(i.maxY-i.minY),c=this.canvas.frame.canvas.clientWidth/l,p=this.canvas.frame.canvas.clientHeight/u;o=p>=c?c:p}o>1?o=1:0===o&&(o=1);var f=a["default"]._findCenter(i),m={position:f,scale:o,animation:t.animation};this.moveTo(m)}},{key:"focus",value:function(t){var e=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if(void 0!==this.body.nodes[t]){var i={x:this.body.nodes[t].x,y:this.body.nodes[t].y};e.position=i,e.lockedOnNode=t,this.moveTo(e)}else console.log("Node: "+t+" cannot be found.")}},{key:"moveTo",value:function(t){return void 0===t?void(t={}):(void 0===t.offset&&(t.offset={x:0,y:0}),void 0===t.offset.x&&(t.offset.x=0),void 0===t.offset.y&&(t.offset.y=0),void 0===t.scale&&(t.scale=this.body.view.scale),void 0===t.position&&(t.position=this.getViewPosition()),void 0===t.animation&&(t.animation={duration:0}),t.animation===!1&&(t.animation={duration:0}),t.animation===!0&&(t.animation={}),void 0===t.animation.duration&&(t.animation.duration=1e3),void 0===t.animation.easingFunction&&(t.animation.easingFunction="easeInOutQuad"),void this.animateView(t))}},{key:"animateView",value:function(t){if(void 0!==t){this.animationEasingFunction=t.animation.easingFunction,this.releaseNode(),t.locked===!0&&(this.lockedOnNodeId=t.lockedOnNode,this.lockedOnNodeOffset=t.offset),0!=this.easingTime&&this._transitionRedraw(!0),this.sourceScale=this.body.view.scale,this.sourceTranslation=this.body.view.translation,this.targetScale=t.scale,this.body.view.scale=this.targetScale;var e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.position.x,y:e.y-t.position.y};this.targetTranslation={x:this.sourceTranslation.x+i.x*this.targetScale+t.offset.x,y:this.sourceTranslation.y+i.y*this.targetScale+t.offset.y},0===t.animation.duration?void 0!=this.lockedOnNodeId?(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)):(this.body.view.scale=this.targetScale,this.body.view.translation=this.targetTranslation,this.body.emitter.emit("_requestRedraw")):(this.animationSpeed=1/(60*t.animation.duration*.001)||1/60,this.animationEasingFunction=t.animation.easingFunction,this.viewFunction=this._transitionRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction),this.body.emitter.emit("_startRendering"))}}},{key:"_lockedRedraw",value:function(){var t={x:this.body.nodes[this.lockedOnNodeId].x,y:this.body.nodes[this.lockedOnNodeId].y},e=this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight}),i={x:e.x-t.x,y:e.y-t.y},o=this.body.view.translation,n={x:o.x+i.x*this.body.view.scale+this.lockedOnNodeOffset.x,y:o.y+i.y*this.body.view.scale+this.lockedOnNodeOffset.y};this.body.view.translation=n}},{key:"releaseNode",value:function(){void 0!==this.lockedOnNodeId&&void 0!==this.viewFunction&&(this.body.emitter.off("initRedraw",this.viewFunction),this.lockedOnNodeId=void 0,this.lockedOnNodeOffset=void 0)}},{key:"_transitionRedraw",value:function(){var t=arguments.length<=0||void 0===arguments[0]?!1:arguments[0];this.easingTime+=this.animationSpeed,this.easingTime=t===!0?1:this.easingTime;var e=h.easingFunctions[this.animationEasingFunction](this.easingTime);this.body.view.scale=this.sourceScale+(this.targetScale-this.sourceScale)*e,this.body.view.translation={x:this.sourceTranslation.x+(this.targetTranslation.x-this.sourceTranslation.x)*e,y:this.sourceTranslation.y+(this.targetTranslation.y-this.sourceTranslation.y)*e},this.easingTime>=1&&(this.body.emitter.off("initRedraw",this.viewFunction),this.easingTime=0,void 0!=this.lockedOnNodeId&&(this.viewFunction=this._lockedRedraw.bind(this),this.body.emitter.on("initRedraw",this.viewFunction)),this.body.emitter.emit("animationFinished"))}},{key:"getScale",value:function(){return this.body.view.scale}},{key:"getViewPosition",value:function(){return this.canvas.DOMtoCanvas({x:.5*this.canvas.frame.canvas.clientWidth,y:.5*this.canvas.frame.canvas.clientHeight})}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;i0)for(var a=0;ae.shape.boundingBox.left&&(s=e.shape.boundingBox.left),re.shape.boundingBox.top&&(o=e.shape.boundingBox.top),n0)for(var a=0;ae.x&&(s=e.x),re.y&&(o=e.y),n50&&(this.drag.pointer=this.getPointer(t.center),this.drag.pinched=!1,this.pinch.scale=this.body.view.scale,this.touchTime=(new Date).valueOf())}},{key:"onTap",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect&&(t.changedPointers[0].ctrlKey||t.changedPointers[0].metaKey);this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e)}},{key:"onDoubleTap",value:function(t){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("doubleClick",t,e)}},{key:"onHold",value:function(t){var e=this.getPointer(t.center),i=this.selectionHandler.options.multiselect;this.checkSelectionChanges(e,t,i),this.selectionHandler._generateClickEvent("click",t,e),this.selectionHandler._generateClickEvent("hold",t,e)}},{key:"onRelease",value:function(t){if((new Date).valueOf()-this.touchTime>10){var e=this.getPointer(t.center);this.selectionHandler._generateClickEvent("release",t,e),this.touchTime=(new Date).valueOf()}}},{key:"onContext",value:function(t){var e=this.getPointer({x:t.clientX,y:t.clientY});this.selectionHandler._generateClickEvent("oncontext",t,e)}},{key:"checkSelectionChanges",value:function(t,e){var i=arguments.length<=2||void 0===arguments[2]?!1:arguments[2],o=this.selectionHandler._getSelectedEdgeCount(),n=this.selectionHandler._getSelectedNodeCount(),s=this.selectionHandler.getSelection(),r=void 0;r=i===!0?this.selectionHandler.selectAdditionalOnPoint(t):this.selectionHandler.selectOnPoint(t);var a=this.selectionHandler._getSelectedEdgeCount(),h=this.selectionHandler._getSelectedNodeCount(),d=this.selectionHandler.getSelection(),l=this._determineIfDifferent(s,d),u=l.nodesChanges,c=l.edgesChanges,p=!1;h-n>0?(this.selectionHandler._generateClickEvent("selectNode",e,t),r=!0,p=!0):0>h-n?(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),r=!0):h===n&&u===!0&&(this.selectionHandler._generateClickEvent("deselectNode",e,t,s),this.selectionHandler._generateClickEvent("selectNode",e,t),p=!0,r=!0),a-o>0&&p===!1?(this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0):0>a-o?(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),r=!0):a===o&&c===!0&&(this.selectionHandler._generateClickEvent("deselectEdge",e,t,s),this.selectionHandler._generateClickEvent("selectEdge",e,t),r=!0),r===!0&&this.selectionHandler._generateClickEvent("select",e,t)}},{key:"_determineIfDifferent",value:function(t,e){for(var i=!1,o=!1,n=0;nt&&(t=1e-5),t>10&&(t=10);var o=void 0;void 0!==this.drag&&this.drag.dragging===!0&&(o=this.canvas.DOMtoCanvas(this.drag.pointer));var n=this.body.view.translation,s=t/i,r=(1-s)*e.x+n.x*s,a=(1-s)*e.y+n.y*s;if(this.body.view.scale=t,this.body.view.translation={x:r,y:a},void 0!=o){var h=this.canvas.canvasToDOM(o);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}this.body.emitter.emit("_requestRedraw"),t>i?this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale}):this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}}},{key:"onMouseWheel",value:function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),0!==e){var i=this.body.view.scale,o=e/10;0>e&&(o/=1-o),i*=1+o;var n=this.getPointer({x:t.clientX,y:t.clientY});this.zoom(i,n)}t.preventDefault()}},{key:"onMouseMove",value:function(t){var e=this,i=this.getPointer({x:t.clientX,y:t.clientY}),o=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(o=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),this.options.keyboard.bindToWindow===!1&&this.options.keyboard.enabled===!0&&this.canvas.frame.focus(),o===!1&&(void 0!==this.popupTimer&&(clearInterval(this.popupTimer),this.popupTimer=void 0),this.drag.dragging||(this.popupTimer=setTimeout(function(){return e._checkShowPopup(i)},this.options.tooltipDelay))),this.options.hover===!0){var n=this.selectionHandler.getNodeAt(i);void 0===n&&(n=this.selectionHandler.getEdgeAt(i)),this.selectionHandler.hoverObject(n)}}},{key:"_checkShowPopup",value:function(t){var e=this.canvas._XconvertDOMtoCanvas(t.x),i=this.canvas._YconvertDOMtoCanvas(t.y),o={left:e,top:i,right:e,bottom:i},n=void 0===this.popupObj?void 0:this.popupObj.id,s=!1,r="node";if(void 0===this.popupObj){for(var a=this.body.nodeIndices,h=this.body.nodes,l=void 0,u=[],c=0;c0&&(this.popupObj=h[u[u.length-1]],s=!0)}if(void 0===this.popupObj&&s===!1){for(var p=this.body.edgeIndices,f=this.body.edges,m=void 0,v=[],c=0;c0&&(this.popupObj=f[v[v.length-1]],r="edge")}void 0!==this.popupObj?this.popupObj.id!==n&&(void 0===this.popup&&(this.popup=new d["default"](this.canvas.frame)),this.popup.popupTargetType=r,this.popup.popupTargetId=this.popupObj.id,this.popup.setPosition(t.x+3,t.y-5),this.popup.setText(this.popupObj.getTitle()),this.popup.show(),this.body.emitter.emit("showPopup",this.popupObj.id)):void 0!==this.popup&&(this.popup.hide(),this.body.emitter.emit("hidePopup"))}},{key:"_checkHidePopup",value:function(t){var e=this.selectionHandler._pointerToPositionObject(t),i=!1;if("node"===this.popup.popupTargetType){if(void 0!==this.body.nodes[this.popup.popupTargetId]&&(i=this.body.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0)){var o=this.selectionHandler.getNodeAt(t);i=o.id===this.popup.popupTargetId}}else void 0===this.selectionHandler.getNodeAt(t)&&void 0!==this.body.edges[this.popup.popupTargetId]&&(i=this.body.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide(),this.body.emitter.emit("hidePopup"))}}]),t}();e["default"]=u,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i700&&(this.body.emitter.emit("fit",{duration:700}),this.touchTime=(new Date).valueOf())}},{key:"_stopMovement",value:function(){for(var t in this.boundFunctions)this.boundFunctions.hasOwnProperty(t)&&(this.body.emitter.off("initRedraw",this.boundFunctions[t]),this.body.emitter.emit("_stopRendering"));this.boundFunctions={}}},{key:"_moveUp",value:function(){this.body.view.translation.y+=this.options.keyboard.speed.y}},{key:"_moveDown",value:function(){this.body.view.translation.y-=this.options.keyboard.speed.y}},{key:"_moveLeft",value:function(){this.body.view.translation.x+=this.options.keyboard.speed.x}},{key:"_moveRight",value:function(){this.body.view.translation.x-=this.options.keyboard.speed.x}},{key:"_zoomIn",value:function(){this.body.view.scale*=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"+",scale:this.body.view.scale})}},{key:"_zoomOut",value:function(){this.body.view.scale/=1+this.options.keyboard.speed.zoom,this.body.emitter.emit("zoom",{direction:"-",scale:this.body.view.scale})}},{key:"configureKeyboardBindings",value:function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.options.keyboard.enabled===!0&&(this.options.keyboard.bindToWindow===!0?this.keycharm=a({container:window,preventDefault:!0}):this.keycharm=a({container:this.canvas.frame,preventDefault:!0}),this.keycharm.reset(),this.activated===!0&&(this.keycharm.bind("up",function(){t.bindToRedraw("_moveUp")},"keydown"),this.keycharm.bind("down",function(){t.bindToRedraw("_moveDown")},"keydown"),this.keycharm.bind("left",function(){t.bindToRedraw("_moveLeft")},"keydown"),this.keycharm.bind("right",function(){t.bindToRedraw("_moveRight")},"keydown"),this.keycharm.bind("=",function(){ +t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num+",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("num-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("-",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("[",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("]",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pageup",function(){t.bindToRedraw("_zoomIn")},"keydown"),this.keycharm.bind("pagedown",function(){t.bindToRedraw("_zoomOut")},"keydown"),this.keycharm.bind("up",function(){t.unbindFromRedraw("_moveUp")},"keyup"),this.keycharm.bind("down",function(){t.unbindFromRedraw("_moveDown")},"keyup"),this.keycharm.bind("left",function(){t.unbindFromRedraw("_moveLeft")},"keyup"),this.keycharm.bind("right",function(){t.unbindFromRedraw("_moveRight")},"keyup"),this.keycharm.bind("=",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num+",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("num-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("-",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("[",function(){t.unbindFromRedraw("_zoomOut")},"keyup"),this.keycharm.bind("]",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pageup",function(){t.unbindFromRedraw("_zoomIn")},"keyup"),this.keycharm.bind("pagedown",function(){t.unbindFromRedraw("_zoomOut")},"keyup")))}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){function i(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var o=function(){function t(t,e){for(var i=0;io&&(s=o-e-this.padding),sn&&(r=n-i-this.padding),r0?e===!0?this.body.nodes[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_getEdgesOverlappingWith",value:function(t,e){for(var i=this.body.edges,o=0;o0?e===!0?this.body.edges[o[o.length-1]]:o[o.length-1]:void 0}},{key:"_addToSelection",value:function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t}},{key:"_addToHover",value:function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t}},{key:"_removeFromSelection",value:function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]}},{key:"unselectAll",value:function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].unselect();for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&this.selectionObj.edges[e].unselect();this.selectionObj={nodes:{},edges:{}}}},{key:"_getSelectedNodeCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedNode",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return void 0}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return void 0}},{key:"_getSelectedEdgeCount",value:function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t}},{key:"_getSelectedObjectCount",value:function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t}},{key:"_selectionIsEmpty",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0}},{key:"_clusterInSelection",value:function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1}},{key:"_selectConnectedEdges",value:function(t){for(var e=0;e0&&(this.options.hierarchical.levelSeparation*=-1):this.options.hierarchical.levelSeparation<0&&(this.options.hierarchical.levelSeparation*=-1),this.body.emitter.emit("_resetHierarchicalLayout"),this.adaptAllOptions(e);if(i===!0)return this.body.emitter.emit("refresh"),h.deepExtend(e,this.optionsBackup)}return e}},{key:"adaptAllOptions",value:function(t){if(this.options.hierarchical.enabled===!0){void 0===t.physics||t.physics===!0?(t.physics={solver:"hierarchicalRepulsion"},this.optionsBackup.physics={solver:"barnesHut"}):"object"==typeof t.physics?(this.optionsBackup.physics={solver:"barnesHut"},void 0!==t.physics.solver&&(this.optionsBackup.physics={solver:t.physics.solver}),t.physics.solver="hierarchicalRepulsion"):t.physics!==!1&&(this.optionsBackup.physics={solver:"barnesHut"},t.physics.solver="hierarchicalRepulsion");var e="horizontal";("RL"===this.options.hierarchical.direction||"LR"===this.options.hierarchical.direction)&&(e="vertical"),void 0===t.edges?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges={smooth:!1}):void 0===t.edges.smooth?(this.optionsBackup.edges={smooth:{enabled:!0,type:"dynamic"}},t.edges.smooth=!1):"boolean"==typeof t.edges.smooth?(this.optionsBackup.edges={smooth:t.edges.smooth},t.edges.smooth={enabled:t.edges.smooth,type:e}):(void 0!==t.edges.smooth.type&&"dynamic"!==t.edges.smooth.type&&(e=t.edges.smooth.type),this.optionsBackup.edges={smooth:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:void 0===t.edges.smooth.type?"dynamic":t.edges.smooth.type,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection},t.edges.smooth={enabled:void 0===t.edges.smooth.enabled?!0:t.edges.smooth.enabled,type:e,roundness:void 0===t.edges.smooth.roundness?.5:t.edges.smooth.roundness,forceDirection:void 0===t.edges.smooth.forceDirection?!1:t.edges.smooth.forceDirection}),this.body.emitter.emit("_forceDisableDynamicCurves",e)}return t}},{key:"seededRandom",value:function(){var t=1e4*Math.sin(this.randomSeed++);return t-Math.floor(t)}},{key:"positionInitially",value:function(t){if(this.options.hierarchical.enabled!==!0){this.randomSeed=this.initialRandomSeed;for(var e=0;es){for(var r=this.body.nodeIndices.length;this.body.nodeIndices.length>s;){n+=1;var a=this.body.nodeIndices.length;n%3===0?this.body.modules.clustering.clusterBridges():this.body.modules.clustering.clusterOutliers();var h=this.body.nodeIndices.length;if(a==h&&n%3!==0||n>o)return this._declusterAll(),this.body.emitter.emit("_layoutFailed"),void console.info("This network could not be positioned by this version of the improved layout algorithm. Please disable improvedLayout for better performance.")}this.body.modules.kamadaKawai.setOptions({springLength:Math.max(150,2*r)})}this.body.modules.kamadaKawai.solve(this.body.nodeIndices,this.body.edgeIndices,!0),this._shiftToCenter();for(var d=70,e=0;e0){var t=void 0,e=void 0,i=!1,o=!1;this.hierarchicalLevels={},this.nodeSpacing=100;for(e in this.body.nodes)this.body.nodes.hasOwnProperty(e)&&(t=this.body.nodes[e],void 0!==t.options.level?(i=!0,this.hierarchicalLevels[e]=t.options.level):o=!0);if(o===!0&&i===!0)throw new Error("To use the hierarchical layout, nodes require either no predefined levels or levels have to be defined for all nodes.");o===!0&&("hubsize"===this.options.hierarchical.sortMethod?this._determineLevelsByHubsize():("directed"===this.options.hierarchical.sortMethod,this._determineLevelsDirected()));var n=this._getDistribution();this._placeNodesByHierarchy(n)}}},{key:"_placeNodesByHierarchy",value:function(t){var e=void 0,i=void 0;this.positionedNodes={};for(var o in t)if(t.hasOwnProperty(o))for(e in t[o].nodes)t[o].nodes.hasOwnProperty(e)&&(i=t[o].nodes[e],"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===i.x&&(i.x=t[o].distance),t[o].distance=i.x+this.nodeSpacing):(void 0===i.y&&(i.y=t[o].distance),t[o].distance=i.y+this.nodeSpacing),this.positionedNodes[e]=!0,this._placeBranchNodes(i.edges,i.id,t,o))}},{key:"_getDistribution",value:function(){var t={},e=void 0,i=void 0;for(e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){i=this.body.nodes[e];var o=void 0===this.hierarchicalLevels[e]?0:this.hierarchicalLevels[e];"UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(i.y=this.options.hierarchical.levelSeparation*o,i.options.fixed.y=!0):(i.x=this.options.hierarchical.levelSeparation*o,i.options.fixed.x=!0),void 0===t[o]&&(t[o]={amount:0,nodes:{},distance:0}),t[o].amount+=1,t[o].nodes[e]=i}return t}},{key:"_getHubSize",value:function(){var t=0;for(var e in this.body.nodes)if(this.body.nodes.hasOwnProperty(e)){var i=this.body.nodes[e];void 0===this.hierarchicalLevels[e]&&(t=i.edges.length0&&(i=this._getHubSize(),0!==i);)for(t in this.body.nodes)this.body.nodes.hasOwnProperty(t)&&(e=this.body.nodes[t],e.edges.length===i&&this._setLevelByHubsize(0,e))}},{key:"_setLevelByHubsize",value:function(t,e){if(void 0===this.hierarchicalLevels[e.id]){var i=void 0;this.hierarchicalLevels[e.id]=t;for(var o=0;oo&&("UD"===this.options.hierarchical.direction||"DU"===this.options.hierarchical.direction?(void 0===s.x&&(s.x=Math.max(i[a].distance,r.x)),i[a].distance=s.x+this.nodeSpacing,this.positionedNodes[s.id]=!0):(void 0===s.y&&(s.y=Math.max(i[a].distance,r.y)),i[a].distance=s.y+this.nodeSpacing),this.positionedNodes[s.id]=!0,s.edges.length>1&&this._placeBranchNodes(s.edges,s.id,i,a))}}}]),t}();e["default"]=d,t.exports=e["default"]},function(t,e,i){function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){for(var i=0;i0&&this.options.deleteNode!==!1?(n===!0&&this._createSeperator(4),this._createDeleteButton(o)):0===t&&this.options.deleteEdge!==!1&&(n===!0&&this._createSeperator(4),this._createDeleteButton(o))),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this)),this._temporaryBindEvent("select",this.showManipulatorToolbar.bind(this))}this.body.emitter.emit("_redraw")}},{key:"addNodeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addNode",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.addDescription||this.options.locales.en.addDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindEvent("click",this._performAddNode.bind(this))}},{key:"editNode",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean();var e=this.selectionHandler._getSelectedNode();if(void 0!==e){if(this.inMode="editNode","function"!=typeof this.options.editNode)throw new Error("No function has been configured to handle the editing of nodes.");if(e.isCluster!==!0){var i=s.deepExtend({},e.options,!0);if(i.x=e.x,i.y=e.y,2!==this.options.editNode.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editNode(i,function(e){null!==e&&void 0!==e&&"editNode"===t.inMode&&t.body.data.nodes.getDataSet().update(e),t.showManipulatorToolbar()})}else alert(this.options.locales[this.options.locale].editClusterError||this.options.locales.en.editClusterError)}else this.showManipulatorToolbar()}},{key:"addEdgeMode",value:function(){if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="addEdge",this.guiEnabled===!0){var t=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(t),this._createSeperator(),this._createDescription(t.edgeDescription||this.options.locales.en.edgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this._temporaryBindUI("onTouch",this._handleConnect.bind(this)),this._temporaryBindUI("onDragEnd",this._finishConnect.bind(this)),this._temporaryBindUI("onDrag",this._dragControlNode.bind(this)),this._temporaryBindUI("onRelease",this._finishConnect.bind(this)),this._temporaryBindUI("onDragStart",function(){}),this._temporaryBindUI("onHold",function(){})}},{key:"editEdgeMode",value:function(){var t=this;if(this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="editEdge",this.guiEnabled===!0){var e=this.options.locales[this.options.locale];this.manipulationDOM={},this._createBackButton(e),this._createSeperator(),this._createDescription(e.editEdgeDescription||this.options.locales.en.editEdgeDescription),this._bindHammerToDiv(this.closeDiv,this.toggleEditMode.bind(this))}this.edgeBeingEditedId=this.selectionHandler.getSelectedEdges()[0],void 0!==this.edgeBeingEditedId?!function(){var e=t.body.edges[t.edgeBeingEditedId],i=t._getNewTargetNode(e.from.x,e.from.y),o=t._getNewTargetNode(e.to.x,e.to.y);t.temporaryIds.nodes.push(i.id),t.temporaryIds.nodes.push(o.id),t.body.nodes[i.id]=i,t.body.nodeIndices.push(i.id),t.body.nodes[o.id]=o,t.body.nodeIndices.push(o.id),t._temporaryBindUI("onTouch",t._controlNodeTouch.bind(t)),t._temporaryBindUI("onTap",function(){}),t._temporaryBindUI("onHold",function(){}),t._temporaryBindUI("onDragStart",t._controlNodeDragStart.bind(t)),t._temporaryBindUI("onDrag",t._controlNodeDrag.bind(t)),t._temporaryBindUI("onDragEnd",t._controlNodeDragEnd.bind(t)),t._temporaryBindUI("onMouseMove",function(){}),t._temporaryBindEvent("beforeDrawing",function(t){var n=e.edgeType.findBorderPositions(t);i.selected===!1&&(i.x=n.from.x,i.y=n.from.y),o.selected===!1&&(o.x=n.to.x,o.y=n.to.y)}),t.body.emitter.emit("_redraw")}():this.showManipulatorToolbar()}},{key:"deleteSelected",value:function(){var t=this;this.editMode!==!0&&this.enableEditMode(),this._clean(),this.inMode="delete";var e=this.selectionHandler.getSelectedNodes(),i=this.selectionHandler.getSelectedEdges(),o=void 0;if(e.length>0){for(var n=0;n0&&"function"==typeof this.options.deleteEdge&&(o=this.options.deleteEdge);if("function"==typeof o){var s={nodes:e,edges:i};if(2!==o.length)throw new Error("The function for delete does not support two arguments (data, callback)");o(s,function(e){null!==e&&void 0!==e&&"delete"===t.inMode?(t.body.data.edges.getDataSet().remove(e.edges),t.body.data.nodes.getDataSet().remove(e.nodes),t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar()):(t.body.emitter.emit("startSimulation"),t.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().remove(i),this.body.data.nodes.getDataSet().remove(e),this.body.emitter.emit("startSimulation"),this.showManipulatorToolbar()}},{key:"_setup",value:function(){this.options.enabled===!0?(this.guiEnabled=!0,this._createWrappers(),this.editMode===!1?this._createEditButton():this.showManipulatorToolbar()):(this._removeManipulationDOM(),this.guiEnabled=!1)}},{key:"_createWrappers",value:function(){void 0===this.manipulationDiv&&(this.manipulationDiv=document.createElement("div"),this.manipulationDiv.className="vis-manipulation",this.editMode===!0?this.manipulationDiv.style.display="block":this.manipulationDiv.style.display="none",this.canvas.frame.appendChild(this.manipulationDiv)),void 0===this.editModeDiv&&(this.editModeDiv=document.createElement("div"),this.editModeDiv.className="vis-edit-mode",this.editMode===!0?this.editModeDiv.style.display="none":this.editModeDiv.style.display="block",this.canvas.frame.appendChild(this.editModeDiv)),void 0===this.closeDiv&&(this.closeDiv=document.createElement("div"),this.closeDiv.className="vis-close",this.closeDiv.style.display=this.manipulationDiv.style.display,this.canvas.frame.appendChild(this.closeDiv))}},{key:"_getNewTargetNode",value:function(t,e){var i=s.deepExtend({},this.options.controlNodeStyle);return i.id="targetNode"+s.randomUUID(),i.hidden=!1,i.physics=!1,i.x=t,i.y=e,this.body.functions.createNode(i)}},{key:"_createEditButton",value:function(){this._clean(),this.manipulationDOM={},s.recursiveDOMDelete(this.editModeDiv);var t=this.options.locales[this.options.locale],e=this._createButton("editMode","vis-button vis-edit vis-edit-mode",t.edit||this.options.locales.en.edit);this.editModeDiv.appendChild(e),this._bindHammerToDiv(e,this.toggleEditMode.bind(this))}},{key:"_clean",value:function(){this.inMode=!1,this.guiEnabled===!0&&(s.recursiveDOMDelete(this.editModeDiv),s.recursiveDOMDelete(this.manipulationDiv),this._cleanManipulatorHammers()),this._cleanupTemporaryNodesAndEdges(),this._unbindTemporaryUIs(),this._unbindTemporaryEvents(),this.body.emitter.emit("restorePhysics")}},{key:"_cleanManipulatorHammers",value:function(){if(0!=this.manipulationHammers.length){for(var t=0;t=0;r--)if(n[r]!==this.selectedControlNode.id){s=this.body.nodes[n[r]];break}if(void 0!==s&&void 0!==this.selectedControlNode)if(s.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var a=this.body.nodes[this.temporaryIds.nodes[0]];this.selectedControlNode.id===a.id?this._performEditEdge(s.id,o.to.id):this._performEditEdge(o.from.id,s.id)}else o.updateEdgeType(),this.body.emitter.emit("restorePhysics");this.body.emitter.emit("_redraw")}},{key:"_handleConnect",value:function(t){if((new Date).valueOf()-this.touchTime>100){this.lastTouch=this.body.functions.getPointer(t.center),this.lastTouch.translation=s.extend({},this.body.view.translation);var e=this.lastTouch,i=this.selectionHandler.getNodeAt(e);if(void 0!==i)if(i.isCluster===!0)alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError);else{var o=this._getNewTargetNode(i.x,i.y);this.body.nodes[o.id]=o,this.body.nodeIndices.push(o.id);var n=this.body.functions.createEdge({id:"connectionEdge"+s.randomUUID(),from:i.id,to:o.id,physics:!1,smooth:{enabled:!0,type:"continuous",roundness:.5}});this.body.edges[n.id]=n,this.body.edgeIndices.push(n.id),this.temporaryIds.nodes.push(o.id),this.temporaryIds.edges.push(n.id)}this.touchTime=(new Date).valueOf()}}},{key:"_dragControlNode",value:function(t){var e=this.body.functions.getPointer(t.center);if(void 0!==this.temporaryIds.nodes[0]){var i=this.body.nodes[this.temporaryIds.nodes[0]];i.x=this.canvas._XconvertDOMtoCanvas(e.x),i.y=this.canvas._YconvertDOMtoCanvas(e.y),this.body.emitter.emit("_redraw")}else{var o=e.x-this.lastTouch.x,n=e.y-this.lastTouch.y;this.body.view.translation={x:this.lastTouch.translation.x+o,y:this.lastTouch.translation.y+n}}}},{key:"_finishConnect",value:function(t){var e=this.body.functions.getPointer(t.center),i=this.selectionHandler._pointerToPositionObject(e),o=void 0;void 0!==this.temporaryIds.edges[0]&&(o=this.body.edges[this.temporaryIds.edges[0]].fromId);for(var n=this.selectionHandler._getAllNodesOverlappingWith(i),s=void 0,r=n.length-1;r>=0;r--)if(-1===this.temporaryIds.nodes.indexOf(n[r])){s=this.body.nodes[n[r]];break}this._cleanupTemporaryNodesAndEdges(),void 0!==s&&(s.isCluster===!0?alert(this.options.locales[this.options.locale].createEdgeError||this.options.locales.en.createEdgeError):void 0!==this.body.nodes[o]&&void 0!==this.body.nodes[s.id]&&this._performAddEdge(o,s.id)),this.body.emitter.emit("_redraw")}},{key:"_performAddNode",value:function(t){var e=this,i={id:s.randomUUID(),x:t.pointer.canvas.x,y:t.pointer.canvas.y,label:"new"};if("function"==typeof this.options.addNode){if(2!==this.options.addNode.length)throw new Error("The function for add does not support two arguments (data,callback)");this.options.addNode(i,function(t){null!==t&&void 0!==t&&"addNode"===e.inMode&&(e.body.data.nodes.getDataSet().add(t),e.showManipulatorToolbar())})}else this.body.data.nodes.getDataSet().add(i),this.showManipulatorToolbar()}},{key:"_performAddEdge",value:function(t,e){var i=this,o={from:t,to:e};if("function"==typeof this.options.addEdge){if(2!==this.options.addEdge.length)throw new Error("The function for connect does not support two arguments (data,callback)");this.options.addEdge(o,function(t){null!==t&&void 0!==t&&"addEdge"===i.inMode&&(i.body.data.edges.getDataSet().add(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().add(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}},{key:"_performEditEdge",value:function(t,e){var i=this,o={id:this.edgeBeingEditedId,from:t,to:e};if("function"==typeof this.options.editEdge){if(2!==this.options.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");this.options.editEdge(o,function(t){null===t||void 0===t||"editEdge"!==i.inMode?(i.body.edges[o.id].updateEdgeType(),i.body.emitter.emit("_redraw")):(i.body.data.edges.getDataSet().update(t),i.selectionHandler.unselectAll(),i.showManipulatorToolbar())})}else this.body.data.edges.getDataSet().update(o),this.selectionHandler.unselectAll(),this.showManipulatorToolbar()}}]),t}();e["default"]=h,t.exports=e["default"]},function(t,e){Object.defineProperty(e,"__esModule",{value:!0});var i="string",o="boolean",n="number",s="array",r="object",a="dom",h="any",d={configure:{enabled:{"boolean":o},filter:{"boolean":o,string:i,array:s,"function":"function"},container:{dom:a},showButton:{"boolean":o},__type__:{object:r,"boolean":o,string:i,array:s,"function":"function"}},edges:{arrows:{to:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},middle:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},from:{enabled:{"boolean":o},scaleFactor:{number:n},__type__:{object:r,"boolean":o}},__type__:{string:["from","to","middle"],object:r}},color:{color:{string:i},highlight:{string:i},hover:{string:i},inherit:{string:["from","to","both"],"boolean":o},opacity:{number:n},__type__:{object:r,string:i}},dashes:{"boolean":o,array:s},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},align:{string:["horizontal","top","middle","bottom"]},__type__:{object:r,string:i}},hidden:{"boolean":o},hoverWidth:{"function":"function",number:n},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},length:{number:n,undefined:"undefined"},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},selectionWidth:{"function":"function",number:n},selfReferenceSize:{number:n},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},smooth:{enabled:{"boolean":o},type:{string:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"]},roundness:{number:n},forceDirection:{string:["horizontal","vertical","none"],"boolean":o},__type__:{object:r,"boolean":o}},title:{string:i,undefined:"undefined"},width:{number:n},value:{number:n,undefined:"undefined"},__type__:{object:r}},groups:{useDefaultGroups:{"boolean":o},__any__:"get from nodes, will be overwritten below",__type__:{object:r}},interaction:{dragNodes:{"boolean":o},dragView:{"boolean":o},hideEdgesOnDrag:{"boolean":o},hideNodesOnDrag:{"boolean":o},hover:{"boolean":o},keyboard:{enabled:{"boolean":o},speed:{x:{number:n},y:{number:n},zoom:{number:n},__type__:{object:r}},bindToWindow:{"boolean":o},__type__:{object:r,"boolean":o}},multiselect:{"boolean":o},navigationButtons:{"boolean":o},selectable:{"boolean":o},selectConnectedEdges:{"boolean":o},hoverConnectedEdges:{"boolean":o},tooltipDelay:{number:n},zoomView:{"boolean":o},__type__:{object:r}},layout:{randomSeed:{undefined:"undefined",number:n},improvedLayout:{"boolean":o},hierarchical:{enabled:{"boolean":o},levelSeparation:{number:n},direction:{string:["UD","DU","LR","RL"]},sortMethod:{string:["hubsize","directed"]},__type__:{object:r,"boolean":o}},__type__:{object:r}},manipulation:{enabled:{"boolean":o},initiallyActive:{"boolean":o},addNode:{"boolean":o,"function":"function"},addEdge:{"boolean":o,"function":"function"},editNode:{"function":"function"},editEdge:{"boolean":o,"function":"function"},deleteNode:{"boolean":o,"function":"function"},deleteEdge:{"boolean":o,"function":"function"},controlNodeStyle:"get from nodes, will be overwritten below",__type__:{object:r,"boolean":o}},nodes:{borderWidth:{number:n},borderWidthSelected:{number:n,undefined:"undefined"},brokenImage:{string:i,undefined:"undefined"},color:{border:{string:i},background:{string:i},highlight:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},hover:{border:{string:i},background:{string:i},__type__:{object:r,string:i}},__type__:{object:r,string:i}},fixed:{x:{"boolean":o},y:{"boolean":o},__type__:{object:r,"boolean":o}},font:{color:{string:i},size:{number:n},face:{string:i},background:{string:i},strokeWidth:{number:n},strokeColor:{string:i},__type__:{object:r,string:i}},group:{string:i,number:n,undefined:"undefined"},hidden:{"boolean":o},icon:{face:{string:i},code:{string:i},size:{number:n},color:{string:i},__type__:{object:r}},id:{string:i,number:n},image:{string:i,undefined:"undefined"},label:{string:i,undefined:"undefined"},labelHighlightBold:{"boolean":o},level:{number:n,undefined:"undefined"},mass:{number:n},physics:{"boolean":o},scaling:{min:{number:n},max:{number:n},label:{enabled:{"boolean":o},min:{number:n},max:{number:n},maxVisible:{number:n},drawThreshold:{number:n},__type__:{object:r,"boolean":o}},customScalingFunction:{"function":"function"},__type__:{object:r}},shadow:{enabled:{"boolean":o},size:{number:n},x:{number:n},y:{number:n},__type__:{object:r,"boolean":o}},shape:{string:["ellipse","circle","database","box","text","image","circularImage","diamond","dot","star","triangle","triangleDown","square","icon"]},shapeProperties:{borderDashes:{"boolean":o,array:s},borderRadius:{number:n},useImageSize:{"boolean":o},__type__:{object:r}},size:{number:n},title:{string:i,undefined:"undefined"},value:{number:n,undefined:"undefined"},x:{number:n},y:{number:n},__type__:{object:r}},physics:{enabled:{"boolean":o},barnesHut:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},forceAtlas2Based:{gravitationalConstant:{number:n},centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},damping:{number:n},avoidOverlap:{number:n},__type__:{object:r}},repulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},hierarchicalRepulsion:{centralGravity:{number:n},springLength:{number:n},springConstant:{number:n},nodeDistance:{number:n},damping:{number:n},__type__:{object:r}},maxVelocity:{number:n},minVelocity:{number:n},solver:{string:["barnesHut","repulsion","hierarchicalRepulsion","forceAtlas2Based"]},stabilization:{enabled:{"boolean":o},iterations:{number:n},updateInterval:{number:n},onlyDynamicEdges:{"boolean":o},fit:{"boolean":o},__type__:{object:r,"boolean":o}},timestep:{number:n},adaptiveTimestep:{"boolean":o},__type__:{object:r,"boolean":o}},autoResize:{"boolean":o},clickToUse:{"boolean":o},locale:{string:i},locales:{__any__:{any:h},__type__:{object:r}},height:{string:i},width:{string:i},__type__:{object:r}};d.groups.__any__=d.nodes,d.manipulation.controlNodeStyle=d.nodes;var l={nodes:{borderWidth:[1,0,10,1],borderWidthSelected:[2,0,10,1],color:{border:["color","#2B7CE9"],background:["color","#97C2FC"],highlight:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]},hover:{border:["color","#2B7CE9"],background:["color","#D2E5FF"]}},fixed:{x:!1,y:!1},font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[0,0,50,1],strokeColor:["color","#ffffff"]},hidden:!1,labelHighlightBold:!0,physics:!0,scaling:{min:[10,0,200,1],max:[30,0,200,1],label:{enabled:!1,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},shape:["ellipse","box","circle","database","diamond","dot","square","star","text","triangle","triangleDown"],shapeProperties:{borderDashes:!1,borderRadius:[6,0,20,1],useImageSize:!1},size:[25,0,200,1]},edges:{arrows:{to:{enabled:!1,scaleFactor:[1,0,3,.05]},middle:{enabled:!1,scaleFactor:[1,0,3,.05]},from:{enabled:!1,scaleFactor:[1,0,3,.05]}},color:{color:["color","#848484"],highlight:["color","#848484"],hover:["color","#848484"],inherit:["from","to","both",!0,!1],opacity:[1,0,1,.05]},dashes:!1,font:{color:["color","#343434"],size:[14,0,100,1],face:["arial","verdana","tahoma"],background:["color","none"],strokeWidth:[2,0,50,1],strokeColor:["color","#ffffff"],align:["horizontal","top","middle","bottom"]},hidden:!1,hoverWidth:[1.5,0,5,.1],labelHighlightBold:!0,physics:!0,scaling:{min:[1,0,100,1],max:[15,0,100,1],label:{enabled:!0,min:[14,0,200,1],max:[30,0,200,1],maxVisible:[30,0,200,1],drawThreshold:[5,0,20,1]}},selectionWidth:[1.5,0,5,.1],selfReferenceSize:[20,0,200,1],shadow:{enabled:!1,size:[10,0,20,1],x:[5,-30,30,1],y:[5,-30,30,1]},smooth:{enabled:!0,type:["dynamic","continuous","discrete","diagonalCross","straightCross","horizontal","vertical","curvedCW","curvedCCW","cubicBezier"],forceDirection:["horizontal","vertical","none"],roundness:[.5,0,1,.05]},width:[1,0,30,1]},layout:{hierarchical:{enabled:!1,levelSeparation:[150,20,500,5],direction:["UD","DU","LR","RL"],sortMethod:["hubsize","directed"]}},interaction:{dragNodes:!0,dragView:!0,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,hover:!1,keyboard:{enabled:!1,speed:{x:[10,0,40,1],y:[10,0,40,1],zoom:[.02,0,.1,.005]},bindToWindow:!0},multiselect:!1,navigationButtons:!1,selectable:!0,selectConnectedEdges:!0,hoverConnectedEdges:!0,tooltipDelay:[300,0,1e3,25],zoomView:!0},manipulation:{enabled:!1,initiallyActive:!1},physics:{enabled:!0,barnesHut:{gravitationalConstant:[-2e3,-3e4,0,50],centralGravity:[.3,0,10,.05],springLength:[95,0,500,5],springConstant:[.04,0,1.2,.005],damping:[.09,0,1,.01],avoidOverlap:[0,0,1,.01]},forceAtlas2Based:{gravitationalConstant:[-50,-500,0,1],centralGravity:[.01,0,1,.005],springLength:[95,0,500,5],springConstant:[.08,0,1.2,.005],damping:[.4,0,1,.01],avoidOverlap:[0,0,1,.01]},repulsion:{centralGravity:[.2,0,10,.05],springLength:[200,0,500,5],springConstant:[.05,0,1.2,.005],nodeDistance:[100,0,500,5],damping:[.09,0,1,.01]},hierarchicalRepulsion:{centralGravity:[.2,0,10,.05],springLength:[100,0,500,5],springConstant:[.01,0,1.2,.005],nodeDistance:[120,0,500,5],damping:[.09,0,1,.01]},maxVelocity:[50,0,150,1],minVelocity:[.1,.01,.5,.01],solver:["barnesHut","forceAtlas2Based","repulsion","hierarchicalRepulsion"],timestep:[.5,.01,1,.01]},global:{locale:["en","nl"]}};e.allOptions=d,e.configureOptions=l},function(t,e,i){function o(t){return t&&t.__esModule?t:{"default":t}}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(e,"__esModule",{value:!0});var s=function(){function t(t,e){var i=[],o=!0,n=!1,s=void 0;try{for(var r,a=t[Symbol.iterator]();!(o=(r=a.next()).done)&&(i.push(r.value),!e||i.length!==e);o=!0);}catch(h){n=!0,s=h}finally{try{!o&&a["return"]&&a["return"]()}finally{if(n)throw s}}return i}return function(e,i){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,i);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),r=function(){function t(t,e){for(var i=0;in&&h>a;){a+=1;var v=this._getHighestEnergyNode(i),g=s(v,4);for(u=g[0],l=g[1],c=g[2],p=g[3],f=l,m=0;f>r&&d>m;){m+=1,this._moveNode(u,c,p);var y=this._getEnergy(u),b=s(y,3);f=b[0],c=b[1],p=b[2]}}}},{key:"_getHighestEnergyNode",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=0,n=e[0],r=0,a=0,h=0;ho&&(o=c,n=d,r=p,a=f)}}return[n,o,r,a]}},{key:"_getEnergy",value:function(t){for(var e=this.body.nodeIndices,i=this.body.nodes,o=i[t].x,n=i[t].y,s=0,r=0,a=0;ad;d++)for(var s=0;h-1>s;s++)for(var r=s+1;h>r;r++)o[e[s]][e[r]]=Math.min(o[e[s]][e[r]],o[e[s]][e[d]]+o[e[d]][e[r]]),o[e[r]][e[s]]=o[e[s]][e[r]];return o}}]),t}();e["default"]=n,t.exports=e["default"]},function(t,e){"undefined"!=typeof CanvasRenderingContext2D&&(CanvasRenderingContext2D.prototype.circle=function(t,e,i){this.beginPath(),this.arc(t,e,i,0,2*Math.PI,!1),this.closePath()},CanvasRenderingContext2D.prototype.square=function(t,e,i){this.beginPath(),this.rect(t-i,e-i,2*i,2*i),this.closePath()},CanvasRenderingContext2D.prototype.triangle=function(t,e,i){this.beginPath(),i*=1.15,e+=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e-(r-s)),this.lineTo(t+n,e+s),this.lineTo(t-n,e+s),this.lineTo(t,e-(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.triangleDown=function(t,e,i){this.beginPath(),i*=1.15,e-=.275*i;var o=2*i,n=o/2,s=Math.sqrt(3)/6*o,r=Math.sqrt(o*o-n*n);this.moveTo(t,e+(r-s)),this.lineTo(t+n,e-s),this.lineTo(t-n,e-s),this.lineTo(t,e+(r-s)),this.closePath()},CanvasRenderingContext2D.prototype.star=function(t,e,i){this.beginPath(),i*=.82,e+=.1*i;for(var o=0;10>o;o++){var n=o%2===0?1.3*i:.5*i;this.lineTo(t+n*Math.sin(2*o*Math.PI/10),e-n*Math.cos(2*o*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.diamond=function(t,e,i){this.beginPath(),this.lineTo(t,e+i),this.lineTo(t+i,e),this.lineTo(t,e-i),this.lineTo(t-i,e),this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,o,n){var s=Math.PI/180;0>i-2*n&&(n=i/2),0>o-2*n&&(n=o/2),this.beginPath(),this.moveTo(t+n,e),this.lineTo(t+i-n,e),this.arc(t+i-n,e+n,n,270*s,360*s,!1),this.lineTo(t+i,e+o-n),this.arc(t+i-n,e+o-n,n,0,90*s,!1),this.lineTo(t+n,e+o),this.arc(t+n,e+o-n,n,90*s,180*s,!1),this.lineTo(t,e+n),this.arc(t+n,e+n,n,180*s,270*s,!1),this.closePath()},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,o){var n=.5522848,s=i/2*n,r=o/2*n,a=t+i,h=e+o,d=t+i/2,l=e+o/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-s,e,d,e),this.bezierCurveTo(d+s,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+s,h,d,h),this.bezierCurveTo(d-s,h,t,l+r,t,l),this.closePath()},CanvasRenderingContext2D.prototype.database=function(t,e,i,o){var n=1/3,s=i,r=o*n,a=.5522848,h=s/2*a,d=r/2*a,l=t+s,u=e+r,c=t+s/2,p=e+r/2,f=e+(o-r/2),m=e+o;this.beginPath(),this.moveTo(l,p),this.bezierCurveTo(l,p+d,c+h,u,c,u),this.bezierCurveTo(c-h,u,t,p+d,t,p),this.bezierCurveTo(t,p-d,c-h,e,c,e),this.bezierCurveTo(c+h,e,l,p-d,l,p),this.lineTo(l,f),this.bezierCurveTo(l,f+d,c+h,m,c,m),this.bezierCurveTo(c-h,m,t,f+d,t,f),this.lineTo(t,p)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,o){var n=t-o*Math.cos(i),s=e-o*Math.sin(i),r=t-.9*o*Math.cos(i),a=e-.9*o*Math.sin(i),h=n+o/3*Math.cos(i+.5*Math.PI),d=s+o/3*Math.sin(i+.5*Math.PI),l=n+o/3*Math.cos(i-.5*Math.PI),u=s+o/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,u),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,o,n){this.beginPath(),this.moveTo(t,e);for(var s=n.length,r=i-t,a=o-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,u=!0,c=0,p=n[0];d>=.1;)p=n[l++%s],p>d&&(p=d),c=Math.sqrt(p*p/(1+h*h)),c=0>r?-c:c,t+=c,e+=h*c,u===!0?this.lineTo(t,e):this.moveTo(t,e),d-=p,u=!u})},function(t,e){function i(t){return P=t,p()}function o(){I=0,z=P.charAt(0)}function n(){I++,z=P.charAt(I)}function s(){return P.charAt(I+1)}function r(t){return A.test(t)}function a(t,e){if(t||(t={}),e)for(var i in e)e.hasOwnProperty(i)&&(t[i]=e[i]);return t}function h(t,e,i){for(var o=e.split("."),n=t;o.length;){var s=o.shift();o.length?(n[s]||(n[s]={}),n=n[s]):n[s]=i}}function d(t,e){for(var i,o,n=null,s=[t],r=t;r.parent;)s.push(r.parent),r=r.parent;if(r.nodes)for(i=0,o=r.nodes.length;o>i;i++)if(e.id===r.nodes[i].id){n=r.nodes[i];break}for(n||(n={id:e.id},t.node&&(n.attr=a(n.attr,t.node))),i=s.length-1;i>=0;i--){var h=s[i];h.nodes||(h.nodes=[]),-1===h.nodes.indexOf(n)&&h.nodes.push(n)}e.attr&&(n.attr=a(n.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 u(t,e,i,o,n){var s={from:e,to:i,type:o};return t.edge&&(s.attr=a({},t.edge)),s.attr=a(s.attr||{},n),s}function c(){for(L=E.NULL,N="";" "===z||" "===z||"\n"===z||"\r"===z;)n();do{var t=!1;if("#"===z){for(var e=I-1;" "===P.charAt(e)||" "===P.charAt(e);)e--;if("\n"===P.charAt(e)||""===P.charAt(e)){for(;""!=z&&"\n"!=z;)n();t=!0}}if("/"===z&&"/"===s()){for(;""!=z&&"\n"!=z;)n();t=!0}if("/"===z&&"*"===s()){for(;""!=z;){if("*"===z&&"/"===s()){n(),n();break}n()}t=!0}for(;" "===z||" "===z||"\n"===z||"\r"===z;)n()}while(t);if(""===z)return void(L=E.DELIMITER);var i=z+s();if(S[i])return L=E.DELIMITER,N=i,n(),void n();if(S[z])return L=E.DELIMITER,N=z,void n();if(r(z)||"-"===z){for(N+=z,n();r(z);)N+=z,n();return"false"===N?N=!1:"true"===N?N=!0:isNaN(Number(N))||(N=Number(N)),void(L=E.IDENTIFIER)}if('"'===z){for(n();""!=z&&('"'!=z||'"'===z&&'"'===s());)N+=z,'"'===z&&n(),n();if('"'!=z)throw _('End of string " expected');return n(),void(L=E.IDENTIFIER)}for(L=E.UNKNOWN;""!=z;)N+=z,n();throw new SyntaxError('Syntax error in part "'+x(N,30)+'"')}function p(){var t={};if(o(),c(),"strict"===N&&(t.strict=!0,c()),("graph"===N||"digraph"===N)&&(t.type=N,c()),L===E.IDENTIFIER&&(t.id=N,c()),"{"!=N)throw _("Angle bracket { expected");if(c(),f(t),"}"!=N)throw _("Angle bracket } expected");if(c(),""!==N)throw _("End of file expected");return c(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==N&&"}"!=N;)m(t),";"===N&&c()}function m(t){var e=v(t);if(e)return void b(t,e);var i=g(t);if(!i){if(L!=E.IDENTIFIER)throw _("Identifier expected");var o=N;if(c(),"="===N){if(c(),L!=E.IDENTIFIER)throw _("Identifier expected");t[o]=N,c()}else y(t,o)}}function v(t){var e=null;if("subgraph"===N&&(e={},e.type="subgraph",c(),L===E.IDENTIFIER&&(e.id=N,c())),"{"===N){if(c(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=N)throw _("Angle bracket } expected");c(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function g(t){return"node"===N?(c(),t.node=w(),"node"):"edge"===N?(c(),t.edge=w(),"edge"):"graph"===N?(c(),t.graph=w(),"graph"):null}function y(t,e){var i={id:e},o=w();o&&(i.attr=o),d(t,i),b(t,e)}function b(t,e){for(;"->"===N||"--"===N;){var i,o=N;c();var n=v(t);if(n)i=n;else{if(L!=E.IDENTIFIER)throw _("Identifier or subgraph expected");i=N,d(t,{id:i}),c()}var s=w(),r=u(t,e,i,o,s);l(t,r),e=i}}function w(){for(var t=null;"["===N;){for(c(),t={};""!==N&&"]"!=N;){if(L!=E.IDENTIFIER)throw _("Attribute name expected");var e=N;if(c(),"="!=N)throw _("Equal sign = expected");if(c(),L!=E.IDENTIFIER)throw _("Attribute value expected");var i=N;h(t,e,i),c(),","==N&&c()}if("]"!=N)throw _("Bracket ] expected");c()}return t}function _(t){return new SyntaxError(t+', got "'+x(N,30)+'" (char '+I+")")}function x(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function k(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function O(t,e,i){for(var o=e.split("."),n=o.pop(),s=t,r=0;r":!0,"--":!0},P="",I=0,z="",N="",L=E.NULL,A=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=M},function(t,e){function i(t,e){var i=[],o=[],n={edges:{inheritColor:!1},nodes:{fixed:!1,parseColor:!1}};void 0!==e&&(void 0!==e.fixed&&(n.nodes.fixed=e.fixed),void 0!==e.parseColor&&(n.nodes.parseColor=e.parseColor),void 0!==e.inheritColor&&(n.edges.inheritColor=e.inheritColor));for(var s=t.edges,r=t.nodes,a=0;a - +