diff --git a/dist/vis.js b/dist/vis.js index 3388fc4b..be490531 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.9.0 - * @date 2015-10-01 + * @version 4.10.0 + * @date 2015-11-27 * * @license * Copyright (C) 2011-2015 Almende B.V, http://almende.com @@ -107,8 +107,9 @@ return /******/ (function(modules) { // webpackBootstrap exports.Timeline = __webpack_require__(19); exports.Graph2d = __webpack_require__(49); exports.timeline = { - DateUtil: __webpack_require__(27), + Core: __webpack_require__(28), DataStep: __webpack_require__(52), + DateUtil: __webpack_require__(27), Range: __webpack_require__(24), stack: __webpack_require__(32), TimeStep: __webpack_require__(30), @@ -122,13 +123,13 @@ return /******/ (function(modules) { // webpackBootstrap RangeItem: __webpack_require__(33) }, + BackgroundGroup: __webpack_require__(35), Component: __webpack_require__(26), CurrentTime: __webpack_require__(44), CustomTime: __webpack_require__(42), DataAxis: __webpack_require__(51), GraphGroup: __webpack_require__(53), Group: __webpack_require__(31), - BackgroundGroup: __webpack_require__(35), ItemSet: __webpack_require__(29), Legend: __webpack_require__(57), LineGraph: __webpack_require__(50), @@ -563,11 +564,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)) { @@ -584,11 +585,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)) { @@ -603,11 +604,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)) { @@ -621,8 +622,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'); @@ -854,13 +855,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 } }; @@ -876,14 +877,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); } }; @@ -896,8 +897,8 @@ return /******/ (function(modules) { // webpackBootstrap if (event.preventDefault) { event.preventDefault(); // non-IE browsers } else { - event.returnValue = false; // IE browsers - } + event.returnValue = false; // IE browsers + } }; /** @@ -1062,17 +1063,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 + ")"; } } }; @@ -1086,7 +1087,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); }; /** @@ -1302,12 +1303,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; }; @@ -1320,11 +1321,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]]); } } @@ -1343,11 +1344,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]); } } @@ -5044,6 +5045,16 @@ return /******/ (function(modules) { // webpackBootstrap } }; + /** + * Ensures that all elements are removed first up so they can be recreated cleanly + * @param JSONcontainer + */ + exports.resetElements = function (JSONcontainer) { + exports.prepareElements(JSONcontainer); + exports.cleanupElements(JSONcontainer); + exports.prepareElements(JSONcontainer); + }; + /** * Allocate or generate an SVG element if needed. Store a reference to it in the JSON container and draw it in the svgContainer * the JSON container and the SVG container have to be supplied so other svg containers (like the legend) can use this. @@ -5137,21 +5148,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.styles !== undefined) { - point.setAttributeNS(null, 'style', groupTemplate.styles); + point.setAttributeNS(null, "style", groupTemplate.styles); } - point.setAttributeNS(null, 'class', groupTemplate.className + ' vis-point'); + point.setAttributeNS(null, "class", groupTemplate.className + " vis-point"); //handle label if (labelObj) { @@ -5168,10 +5179,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; @@ -5191,13 +5202,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); } } }; @@ -5270,14 +5281,14 @@ return /******/ (function(modules) { // webpackBootstrap // all variants of a Date are internally stored as Date, so we can convert // from everything to everything (also from ISODate to Number for example) if (this._options.type) { - for (var field in this._options.type) { - if (this._options.type.hasOwnProperty(field)) { - var value = this._options.type[field]; - if (value == 'Date' || value == 'ISODate' || value == 'ASPDate') { - this._type[field] = 'Date'; - } else { - this._type[field] = value; - } + var fields = Object.keys(this._options.type); + for (var i = 0, len = fields.length; i < len; i++) { + var field = fields[i]; + var value = this._options.type[field]; + if (value == 'Date' || value == 'ISODate' || value == 'ASPDate') { + this._type[field] = 'Date'; + } else { + this._type[field] = value; } } } @@ -5394,7 +5405,7 @@ return /******/ (function(modules) { // webpackBootstrap subscribers = subscribers.concat(this._subscribers['*']); } - for (var i = 0; i < subscribers.length; i++) { + for (var i = 0, len = subscribers.length; i < len; i++) { var subscriber = subscribers[i]; if (subscriber.callback) { subscriber.callback(event, params, senderId || null); @@ -5444,6 +5455,7 @@ return /******/ (function(modules) { // webpackBootstrap DataSet.prototype.update = function (data, senderId) { var addedIds = []; var updatedIds = []; + var oldData = []; var updatedData = []; var me = this; var fieldId = me._fieldId; @@ -5451,10 +5463,12 @@ return /******/ (function(modules) { // webpackBootstrap var addOrUpdate = function addOrUpdate(item) { var id = item[fieldId]; if (me._data[id]) { + var oldItem = util.extend({}, me._data[id]); // update item id = me._updateItem(item); updatedIds.push(id); updatedData.push(item); + oldData.push(oldItem); } else { // add new item id = me._addItem(item); @@ -5478,7 +5492,15 @@ return /******/ (function(modules) { // webpackBootstrap this._trigger('add', { items: addedIds }, senderId); } if (updatedIds.length) { - this._trigger('update', { items: updatedIds, data: updatedData }, senderId); + var props = { items: updatedIds, oldData: oldData, data: updatedData }; + // TODO: remove deprecated property 'data' some day + //Object.defineProperty(props, 'data', { + // 'get': (function() { + // console.warn('Property data is deprecated. Use DataSet.get(ids) to retrieve the new data, use the oldData property on this object to get the old data'); + // return updatedData; + // }).bind(this) + //}); + this._trigger('update', props, senderId); } return addedIds.concat(updatedIds); @@ -5544,6 +5566,7 @@ return /******/ (function(modules) { // webpackBootstrap var filter = options && options.filter; var items = [], item, + itemIds, itemId, i, len; @@ -5565,12 +5588,12 @@ return /******/ (function(modules) { // webpackBootstrap } } else { // return all items - for (itemId in this._data) { - if (this._data.hasOwnProperty(itemId)) { - item = me._getItem(itemId, type); - if (!filter || filter(item)) { - items.push(item); - } + itemIds = Object.keys(this._data); + for (i = 0, len = itemIds.length; i < len; i++) { + itemId = itemIds[i]; + item = me._getItem(itemId, type); + if (!filter || filter(item)) { + items.push(item); } } } @@ -5594,9 +5617,11 @@ return /******/ (function(modules) { // webpackBootstrap // return the results if (returnType == 'Object') { - var result = {}; - for (i = 0; i < items.length; i++) { - result[items[i].id] = items[i]; + var result = {}, + resultant; + for (i = 0, len = items.length; i < len; i++) { + resultant = items[i]; + result[resultant.id] = resultant; } return result; } else { @@ -5623,6 +5648,7 @@ return /******/ (function(modules) { // webpackBootstrap filter = options && options.filter, order = options && options.order, type = options && options.type || this._options.type, + itemIds = Object.keys(data), i, len, id, @@ -5635,28 +5661,26 @@ return /******/ (function(modules) { // webpackBootstrap if (order) { // create ordered list items = []; - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (filter(item)) { - items.push(item); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + item = this._getItem(id, type); + if (filter(item)) { + items.push(item); } } this._sort(items, order); for (i = 0, len = items.length; i < len; i++) { - ids[i] = items[i][this._fieldId]; + ids.push(items[i][this._fieldId]); } } else { // create unordered list - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (filter(item)) { - ids.push(item[this._fieldId]); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + item = this._getItem(id, type); + if (filter(item)) { + ids.push(item[this._fieldId]); } } } @@ -5665,24 +5689,22 @@ return /******/ (function(modules) { // webpackBootstrap if (order) { // create an ordered list items = []; - for (id in data) { - if (data.hasOwnProperty(id)) { - items.push(data[id]); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + items.push(data[id]); } this._sort(items, order); for (i = 0, len = items.length; i < len; i++) { - ids[i] = items[i][this._fieldId]; + ids.push(items[i][this._fieldId]); } } else { // create unordered list - for (id in data) { - if (data.hasOwnProperty(id)) { - item = data[id]; - ids.push(item[this._fieldId]); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + item = data[id]; + ids.push(item[this._fieldId]); } } } @@ -5712,6 +5734,9 @@ return /******/ (function(modules) { // webpackBootstrap var filter = options && options.filter, type = options && options.type || this._options.type, data = this._data, + itemIds = Object.keys(data), + i, + len, item, id; @@ -5719,19 +5744,18 @@ return /******/ (function(modules) { // webpackBootstrap // execute forEach on ordered list var items = this.get(options); - for (var i = 0, len = items.length; i < len; i++) { + for (i = 0, len = items.length; i < len; i++) { item = items[i]; id = item[this._fieldId]; callback(item, id); } } else { // unordered - for (id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (!filter || filter(item)) { - callback(item, id); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + item = this._getItem(id, type); + if (!filter || filter(item)) { + callback(item, id); } } } @@ -5753,15 +5777,18 @@ return /******/ (function(modules) { // webpackBootstrap type = options && options.type || this._options.type, mappedItems = [], data = this._data, + itemIds = Object.keys(data), + i, + len, + id, item; // convert and filter items - for (var id in data) { - if (data.hasOwnProperty(id)) { - item = this._getItem(id, type); - if (!filter || filter(item)) { - mappedItems.push(callback(item, id)); - } + for (i = 0, len = itemIds.length; i < len; i++) { + id = itemIds[i]; + item = this._getItem(id, type); + if (!filter || filter(item)) { + mappedItems.push(callback(item, id)); } } @@ -5786,17 +5813,23 @@ return /******/ (function(modules) { // webpackBootstrap return item; } - var filteredItem = {}; + var filteredItem = {}, + itemFields = Object.keys(item), + len = itemFields.length, + i, + field; if (Array.isArray(fields)) { - for (var field in item) { - if (item.hasOwnProperty(field) && fields.indexOf(field) != -1) { + for (i = 0; i < len; i++) { + field = itemFields[i]; + if (fields.indexOf(field) != -1) { filteredItem[field] = item[field]; } } } else { - for (var field in item) { - if (item.hasOwnProperty(field) && fields.hasOwnProperty(field)) { + for (i = 0; i < len; i++) { + field = itemFields[i]; + if (fields.hasOwnProperty(field)) { filteredItem[fields[field]] = item[field]; } } @@ -5827,8 +5860,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'); + } }; /** @@ -5912,17 +5945,19 @@ return /******/ (function(modules) { // webpackBootstrap */ DataSet.prototype.max = function (field) { var data = this._data, + itemIds = Object.keys(data), max = null, - maxField = null; + maxField = null, + i, + len; - for (var id in data) { - if (data.hasOwnProperty(id)) { - var item = data[id]; - var itemField = item[field]; - if (itemField != null && (!max || itemField > maxField)) { - max = item; - maxField = itemField; - } + for (i = 0, len = itemIds.length; i < len; i++) { + var id = itemIds[i]; + var item = data[id]; + var itemField = item[field]; + if (itemField != null && (!max || itemField > maxField)) { + max = item; + maxField = itemField; } } @@ -5936,17 +5971,19 @@ return /******/ (function(modules) { // webpackBootstrap */ DataSet.prototype.min = function (field) { var data = this._data, + itemIds = Object.keys(data), min = null, - minField = null; + minField = null, + i, + len; - for (var id in data) { - if (data.hasOwnProperty(id)) { - var item = data[id]; - var itemField = item[field]; - if (itemField != null && (!min || itemField < minField)) { - min = item; - minField = itemField; - } + for (i = 0, len = itemIds.length; i < len; i++) { + var id = itemIds[i]; + var item = data[id]; + var itemField = item[field]; + if (itemField != null && (!min || itemField < minField)) { + min = item; + minField = itemField; } } @@ -5962,31 +5999,31 @@ return /******/ (function(modules) { // webpackBootstrap */ DataSet.prototype.distinct = function (field) { var data = this._data; + var itemIds = Object.keys(data); var values = []; var fieldType = this._options.type && this._options.type[field] || null; var count = 0; - var i; - - for (var prop in data) { - if (data.hasOwnProperty(prop)) { - var item = data[prop]; - var value = item[field]; - var exists = false; - for (i = 0; i < count; i++) { - if (values[i] == value) { - exists = true; - break; - } - } - if (!exists && value !== undefined) { - values[count] = value; - count++; + var i, j, len; + + for (i = 0, len = itemIds.length; i < len; i++) { + var id = itemIds[i]; + var item = data[id]; + var value = item[field]; + var exists = false; + for (j = 0; j < count; j++) { + if (values[j] == value) { + exists = true; + break; } } + if (!exists && value !== undefined) { + values[count] = value; + count++; + } } if (fieldType) { - for (i = 0; i < values.length; i++) { + for (i = 0, len = values.length; i < len; i++) { values[i] = util.convert(values[i], fieldType); } } @@ -6015,12 +6052,14 @@ return /******/ (function(modules) { // webpackBootstrap item[this._fieldId] = id; } - var d = {}; - for (var field in item) { - if (item.hasOwnProperty(field)) { - var fieldType = this._type[field]; // type may be undefined - d[field] = util.convert(item[field], fieldType); - } + var d = {}, + fields = Object.keys(item), + i, + len; + for (i = 0, len = fields.length; i < len; i++) { + var field = fields[i]; + var fieldType = this._type[field]; // type may be undefined + d[field] = util.convert(item[field], fieldType); } this._data[id] = d; this.length++; @@ -6036,7 +6075,7 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ DataSet.prototype._getItem = function (id, types) { - var field, value; + var field, value, i, len; // get the item from the dataset var raw = this._data[id]; @@ -6045,21 +6084,21 @@ return /******/ (function(modules) { // webpackBootstrap } // convert the items field types - var converted = {}; + var converted = {}, + fields = Object.keys(raw); + if (types) { - for (field in raw) { - if (raw.hasOwnProperty(field)) { - value = raw[field]; - converted[field] = util.convert(value, types[field]); - } + for (i = 0, len = fields.length; i < len; i++) { + field = fields[i]; + value = raw[field]; + converted[field] = util.convert(value, types[field]); } } else { // no field types specified, no converting needed - for (field in raw) { - if (raw.hasOwnProperty(field)) { - value = raw[field]; - converted[field] = value; - } + for (i = 0, len = fields.length; i < len; i++) { + field = fields[i]; + value = raw[field]; + converted[field] = value; } } return converted; @@ -6085,11 +6124,11 @@ return /******/ (function(modules) { // webpackBootstrap } // merge with current item - for (var field in item) { - if (item.hasOwnProperty(field)) { - var fieldType = this._type[field]; // type may be undefined - d[field] = util.convert(item[field], fieldType); - } + var fields = Object.keys(item); + for (var i = 0, len = fields.length; i < len; i++) { + var field = fields[i]; + var fieldType = this._type[field]; // type may be undefined + d[field] = util.convert(item[field], fieldType); } return id; @@ -6345,7 +6384,7 @@ return /******/ (function(modules) { // webpackBootstrap * @param {DataSet | DataView} data */ DataView.prototype.setData = function (data) { - var ids, i, len; + var ids, id, i, len; if (this._data) { // unsubscribe from current dataset @@ -6354,12 +6393,7 @@ return /******/ (function(modules) { // webpackBootstrap } // trigger a remove of all items in memory - ids = []; - for (var id in this._ids) { - if (this._ids.hasOwnProperty(id)) { - ids.push(id); - } - } + ids = Object.keys(this._ids); this._ids = {}; this.length = 0; this._trigger('remove', { items: ids }); @@ -6392,34 +6426,34 @@ return /******/ (function(modules) { // webpackBootstrap * containing a variable parameter. */ DataView.prototype.refresh = function () { - var id; + var id, i, len; var ids = this._data.getIds({ filter: this._options && this._options.filter }); + var oldIds = Object.keys(this._ids); var newIds = {}; var added = []; var removed = []; // check for additions - for (var i = 0; i < ids.length; i++) { + for (i = 0, len = ids.length; i < len; i++) { id = ids[i]; newIds[id] = true; if (!this._ids[id]) { added.push(id); this._ids[id] = true; - this.length++; } } // check for removals - for (id in this._ids) { - if (this._ids.hasOwnProperty(id)) { - if (!newIds[id]) { - removed.push(id); - delete this._ids[id]; - this.length--; - } + for (i = 0, len = oldIds.length; i < len; i++) { + id = oldIds[i]; + if (!newIds[id]) { + removed.push(id); + delete this._ids[id]; } } + this.length += added.length - removed.length; + // trigger events if (added.length) { this._trigger('add', { items: added }); @@ -6604,7 +6638,9 @@ return /******/ (function(modules) { // webpackBootstrap if (this._ids[id]) { delete this._ids[id]; removed.push(id); - } else {} + } else { + // nothing interesting for me :-( + } } } @@ -6648,8 +6684,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = DataView; - // nothing interesting for me :-( - /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { @@ -6893,9 +6927,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; @@ -7601,9 +7637,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; @@ -8139,9 +8175,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; @@ -8157,39 +8193,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) { @@ -8896,8 +8932,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Graph3d; - // use use defaults - /***/ }, /* 12 */ /***/ function(module, exports) { @@ -10416,7 +10450,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 @@ -10424,8 +10461,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(); @@ -14086,7 +14121,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 @@ -14105,8 +14142,6 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Component; - // should be implemented by the component - /***/ }, /* 27 */ /***/ function(module, exports) { @@ -14189,16 +14224,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 @@ -14210,12 +14245,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()) { @@ -14223,26 +14258,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); @@ -14252,20 +14287,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); @@ -14312,14 +14347,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; + } } } } @@ -15535,7 +15570,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"); } }; @@ -15645,6 +15680,7 @@ return /******/ (function(modules) { // webpackBootstrap selectable: true, multiselect: false, + itemsAlwaysDraggable: false, editable: { updateTime: false, @@ -15909,7 +15945,7 @@ return /******/ (function(modules) { // webpackBootstrap ItemSet.prototype.setOptions = function (options) { if (options) { // copy all options that we know - var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap']; + var fields = ['type', 'align', 'order', 'stack', 'selectable', 'multiselect', 'itemsAlwaysDraggable', 'multiselectPerGroup', 'groupOrder', 'dataAttributes', 'template', 'groupTemplate', 'hide', 'snap', 'groupOrderSwap']; util.selectiveExtend(fields, this.options, options); if ('orientation' in options) { @@ -16753,7 +16789,7 @@ return /******/ (function(modules) { // webpackBootstrap var me = this; var props; - if (item && item.selected) { + if (item && (item.selected || this.options.itemsAlwaysDraggable)) { if (!this.options.editable.updateTime && !this.options.editable.updateGroup && !item.editable) { return; @@ -16790,7 +16826,9 @@ return /******/ (function(modules) { // webpackBootstrap var baseGroupIndex = this._getGroupIndex(item.data.group); - this.touchParams.itemProps = this.getSelection().map((function (id) { + var itemsToDrag = this.options.itemsAlwaysDraggable && !item.selected ? [item.id] : this.getSelection(); + + this.touchParams.itemProps = itemsToDrag.map((function (id) { var item = me.items[id]; var groupIndex = me._getGroupIndex(item.data.group); return { @@ -16939,7 +16977,7 @@ return /******/ (function(modules) { // webpackBootstrap var updateGroupAllowed = me.options.editable.updateGroup || props.item.editable === true; - if (updateGroupAllowed && (!props.dragLeft && !props.dragRight) && newGroupBase != null) { + if (updateGroupAllowed && !props.dragLeft && !props.dragRight && newGroupBase != null) { if (itemData.group != undefined) { var newOffset = newGroupBase - props.groupOffset; @@ -17121,25 +17159,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++; + } } } } @@ -17321,35 +17359,48 @@ return /******/ (function(modules) { // webpackBootstrap if (shiftKey && this.options.multiselect) { // select all items between the old selection and the tapped item + var itemGroup = this.itemsData.get(item.id).group; + + // when filtering get the group of the last selected item + var lastSelectedGroup = undefined; + if (this.options.multiselectPerGroup) { + if (selection.length > 0) { + lastSelectedGroup = this.itemsData.get(selection[0]).group; + } + } // determine the selection range - selection.push(item.id); + if (!this.options.multiselectPerGroup || lastSelectedGroup == undefined || lastSelectedGroup == itemGroup) { + selection.push(item.id); + } var range = ItemSet._getItemRange(this.itemsData.get(selection, this.itemOptions)); - // select all items within the selection range - selection = []; - for (var id in this.items) { - if (this.items.hasOwnProperty(id)) { - var _item = this.items[id]; - var start = _item.data.start; - var end = _item.data.end !== undefined ? _item.data.end : start; - - if (start >= range.min && end <= range.max && !(_item instanceof BackgroundItem)) { - selection.push(_item.id); // do not use id but item.id, id itself is stringified + if (!this.options.multiselectPerGroup || lastSelectedGroup == itemGroup) { + // select all items within the selection range + selection = []; + for (var id in this.items) { + if (this.items.hasOwnProperty(id)) { + var _item = this.items[id]; + var start = _item.data.start; + var end = _item.data.end !== undefined ? _item.data.end : start; + + if (start >= range.min && end <= range.max && (!this.options.multiselectPerGroup || lastSelectedGroup == this.itemsData.get(_item.id).group) && !(_item instanceof BackgroundItem)) { + selection.push(_item.id); // do not use id but item.id, id itself is stringified + } } } } } 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); @@ -17615,7 +17666,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(); @@ -17657,7 +17708,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) { @@ -17950,8 +18001,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); @@ -18238,7 +18289,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; }); @@ -19127,10 +19178,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'; @@ -19158,12 +19209,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'; } }; @@ -19355,17 +19406,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 @@ -19524,12 +19581,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__) { @@ -20223,39 +20274,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'; }; @@ -20308,6 +20359,7 @@ return /******/ (function(modules) { // webpackBootstrap }, // axis orientation: 'top' or 'bottom' showMinorLabels: true, showMajorLabels: true, + maxMinorChars: 7, format: TimeStep.FORMAT, moment: moment, timeAxis: null @@ -20335,7 +20387,7 @@ return /******/ (function(modules) { // webpackBootstrap TimeAxis.prototype.setOptions = function (options) { if (options) { // copy all options that we know - util.selectiveExtend(['showMinorLabels', 'showMajorLabels', 'hiddenDates', 'timeAxis', 'moment'], this.options, options); + util.selectiveExtend(['showMinorLabels', 'showMajorLabels', 'maxMinorChars', 'hiddenDates', 'timeAxis', 'moment'], this.options, options); // deep copy the format options util.selectiveDeepExtend(['format'], this.options, options); @@ -20453,7 +20505,7 @@ return /******/ (function(modules) { // webpackBootstrap // calculate range and step (step such that we have space for 7 characters per label) var start = util.convert(this.body.range.start, 'Number'); var end = util.convert(this.body.range.end, 'Number'); - var timeLabelsize = this.body.util.toTime((this.props.minorCharWidth || 10) * 7).valueOf(); + var timeLabelsize = this.body.util.toTime((this.props.minorCharWidth || 10) * this.options.maxMinorChars).valueOf(); var minimumStep = timeLabelsize - DateUtil.getHiddenDurationBefore(this.options.moment, this.body.hiddenDates, this.body.range, timeLabelsize); minimumStep -= this.body.util.toTime(0).valueOf(); @@ -20482,19 +20534,21 @@ return /******/ (function(modules) { // webpackBootstrap var next; var x; var xNext; - var isMajor; - var width; + var isMajor, nextIsMajor; + var width = 0, + prevWidth; var line; var labelMinor; var xFirstMajorLabel = undefined; - var max = 0; + var count = 0; + var MAX = 1000; var className; step.start(); next = step.getCurrent(); xNext = this.body.util.toScreen(next); - while (step.hasNext() && max < 1000) { - max++; + while (step.hasNext() && count < MAX) { + count++; isMajor = step.isMajor(); className = step.getClassName(); @@ -20505,13 +20559,16 @@ return /******/ (function(modules) { // webpackBootstrap step.next(); next = step.getCurrent(); + nextIsMajor = step.isMajor(); xNext = this.body.util.toScreen(next); + prevWidth = width; width = xNext - x; - var labelFits = (labelMinor.length + 1) * this.props.minorCharWidth < width; + var showMinorGrid = width >= prevWidth * 0.4; // prevent displaying of the 31th of the month on a scale of 5 days - if (this.options.showMinorLabels && labelFits) { - this._repaintMinorText(x, labelMinor, orientation, className); + if (this.options.showMinorLabels && showMinorGrid) { + var label = this._repaintMinorText(x, labelMinor, orientation, className); + label.style.width = width + 'px'; // set width to prevent overflow } if (isMajor && this.options.showMajorLabels) { @@ -20519,20 +20576,27 @@ return /******/ (function(modules) { // webpackBootstrap if (xFirstMajorLabel == undefined) { xFirstMajorLabel = x; } - this._repaintMajorText(x, step.getLabelMajor(), orientation, className); + label = this._repaintMajorText(x, step.getLabelMajor(), orientation, className); } line = this._repaintMajorLine(x, width, orientation, className); } else { - if (labelFits) { + // minor line + if (showMinorGrid) { line = this._repaintMinorLine(x, width, orientation, className); } else { if (line) { + // adjust the width of the previous grid line.style.width = parseInt(line.style.width) + width + 'px'; } } } } + if (count === MAX && !warnedForOverflow) { + console.warn('Something is wrong with the Timeline scale. Limited drawing of grid lines to ' + MAX + ' lines.'); + warnedForOverflow = true; + } + // create a major label on the left when needed if (this.options.showMajorLabels) { var leftTime = this.body.util.toTime(0), @@ -20721,6 +20785,8 @@ return /******/ (function(modules) { // webpackBootstrap this.props.majorCharWidth = this.dom.measureCharMajor.clientWidth; }; + var warnedForOverflow = false; + module.exports = TimeAxis; /***/ }, @@ -21453,7 +21519,7 @@ return /******/ (function(modules) { // webpackBootstrap var locale = this.options.locales[this.options.locale]; if (!locale) { if (!this.warned) { - console.log('WARNING: options.locales[\'' + this.options.locale + '\'] not found. See http://visjs.org/docs/timeline.html#Localization'); + console.log('WARNING: options.locales[\'' + this.options.locale + '\'] not found. See http://visjs.org/docs/timeline/#Localization'); this.warned = true; } locale = this.options.locales['en']; // fall back on english when not available @@ -21551,8 +21617,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 @@ -21567,6 +21631,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) { @@ -21600,15 +21665,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. @@ -21660,13 +21725,13 @@ return /******/ (function(modules) { // webpackBootstrap this._create(); } } - }, { - key: '_create', /** * Create all DOM elements * @private */ + }, { + key: '_create', value: function _create() { var _this = this; @@ -21730,13 +21795,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'; @@ -21747,13 +21812,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]); @@ -21767,8 +21832,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removePopup(); } - }, { - key: '_getValue', /** * get the value from the actualOptions if it exists @@ -21776,6 +21839,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++) { @@ -21788,8 +21853,6 @@ return /******/ (function(modules) { // webpackBootstrap } return base; } - }, { - key: '_makeItem', /** * all option elements are wrapped in an item @@ -21797,6 +21860,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param domElements * @private */ + }, { + key: '_makeItem', value: function _makeItem(path) { var _arguments = arguments, _this2 = this; @@ -21825,22 +21890,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. @@ -21850,6 +21913,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]; @@ -21862,8 +21927,6 @@ return /******/ (function(modules) { // webpackBootstrap } return div; } - }, { - key: '_makeDropdown', /** * make a dropdown list for multiple possible string optoins @@ -21872,6 +21935,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'; @@ -21900,8 +21965,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 @@ -21910,6 +21973,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeRange', value: function _makeRange(arr, value, path) { var defaultValue = arr[0]; var min = arr[1]; @@ -21970,8 +22035,6 @@ return /******/ (function(modules) { // webpackBootstrap this._setupPopup(popupString, itemIndex); } } - }, { - key: '_setupPopup', /** * prepare the popup @@ -21979,13 +22042,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(); @@ -21994,13 +22059,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); @@ -22009,21 +22074,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; @@ -22033,8 +22098,6 @@ return /******/ (function(modules) { // webpackBootstrap }, 1800); } } - }, { - key: '_makeCheckbox', /** * make a checkbox for boolean options. @@ -22043,6 +22106,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeCheckbox', value: function _makeCheckbox(defaultValue, value, path) { var checkbox = document.createElement('input'); checkbox.type = 'checkbox'; @@ -22069,8 +22134,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. @@ -22079,6 +22142,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeTextInput', value: function _makeTextInput(defaultValue, value, path) { var checkbox = document.createElement('input'); checkbox.type = 'text'; @@ -22096,8 +22161,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 @@ -22106,6 +22169,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_makeColorField', value: function _makeColorField(arr, value, path) { var _this5 = this; @@ -22128,8 +22193,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. @@ -22139,6 +22202,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param path * @private */ + }, { + key: '_showColorPicker', value: function _showColorPicker(value, div, path) { var _this6 = this; @@ -22154,8 +22219,6 @@ return /******/ (function(modules) { // webpackBootstrap _this6._update(colorString, path); }); } - }, { - key: '_handleObject', /** * parse an object and draw the correct items @@ -22163,6 +22226,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]; @@ -22233,8 +22298,6 @@ return /******/ (function(modules) { // webpackBootstrap } return visibleInSet; } - }, { - key: '_handleArray', /** * handle the array type of option @@ -22244,6 +22307,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); @@ -22262,8 +22327,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_update', /** * called to update the network with the new settings. @@ -22271,11 +22334,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); @@ -22369,13 +22434,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(); @@ -22387,18 +22452,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."); } } }, { @@ -22409,8 +22474,6 @@ return /******/ (function(modules) { // webpackBootstrap return htmlColors[color]; } } - }, { - key: 'setColor', /** * Set the color of the colorPicker @@ -22424,6 +22487,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]; @@ -22462,19 +22527,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'; @@ -22482,8 +22547,6 @@ return /******/ (function(modules) { // webpackBootstrap this.frame.style.left = x + 'px'; this._generateHueCircle(); } - }, { - key: '_hide', // ------------------------------------------ PRIVATE ----------------------------- // @@ -22493,6 +22556,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param storePrevious * @private */ + }, { + key: '_hide', value: function _hide() { var storePrevious = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; @@ -22507,46 +22572,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 @@ -22554,6 +22617,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]; @@ -22575,26 +22640,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; @@ -22603,14 +22668,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]; @@ -22637,13 +22702,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%'; @@ -22651,14 +22716,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'; @@ -22679,10 +22744,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'; @@ -22731,39 +22796,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); @@ -22781,13 +22846,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; @@ -22812,13 +22877,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'); @@ -22860,8 +22925,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.generated = true; } - }, { - key: '_moveSelector', /** * move the selector. This is called by hammer functions. @@ -22869,6 +22932,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; @@ -22940,15 +23005,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; @@ -22959,8 +23024,6 @@ return /******/ (function(modules) { // webpackBootstrap Validator.parse(options, usedOptions, []); return errorFound; } - }, { - key: 'parse', /** * Will traverse an object recursively and check every value @@ -22968,6 +23031,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)) { @@ -22975,8 +23040,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'check', /** * Check every value. If the value is an object, call the parse function on that object. @@ -22985,6 +23048,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); @@ -23006,8 +23071,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'checkFields', /** * @@ -23018,6 +23081,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]; @@ -23027,11 +23092,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); } @@ -23104,8 +23169,6 @@ return /******/ (function(modules) { // webpackBootstrap errorFound = true; } - }, { - key: 'findInOptions', /** * traverse the options in search for a match. @@ -23115,6 +23178,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]; @@ -23174,10 +23239,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 @@ -23187,6 +23250,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; @@ -23317,8 +23382,10 @@ return /******/ (function(modules) { // webpackBootstrap repeat: { string: string }, __type__: { object: object, array: array } }, + itemsAlwaysDraggable: { boolean: boolean }, locale: { string: string }, locales: { + __any__: { any: any }, __type__: { object: object } }, margin: { @@ -23332,10 +23399,12 @@ return /******/ (function(modules) { // webpackBootstrap }, max: { date: date, number: number, string: string, moment: moment }, maxHeight: { number: number, string: string }, + maxMinorChars: { number: number }, min: { date: date, number: number, string: string, moment: moment }, minHeight: { number: number, string: string }, moveable: { boolean: boolean }, multiselect: { boolean: boolean }, + multiselectPerGroup: { boolean: boolean }, onAdd: { 'function': 'function' }, onUpdate: { 'function': 'function' }, onMove: { 'function': 'function' }, @@ -23425,10 +23494,12 @@ return /******/ (function(modules) { // webpackBootstrap }, max: '', maxHeight: '', + maxMinorChars: [7, 0, 20, 1], min: '', minHeight: '', moveable: false, multiselect: false, + multiselectPerGroup: false, //onAdd: {'function': 'function'}, //onUpdate: {'function': 'function'}, //onMove: {'function': 'function'}, @@ -23685,7 +23756,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; } }; @@ -24002,7 +24073,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; } } @@ -24356,7 +24427,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; } } @@ -24448,7 +24519,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; @@ -24460,6 +24531,7 @@ return /******/ (function(modules) { // webpackBootstrap } // draw the groups + BarFunctions.draw(groupIds, processedGroupData, this.framework); for (i = 0; i < groupIds.length; i++) { group = this.groups[groupIds[i]]; if (group.options.style != 'bar') { @@ -24467,7 +24539,6 @@ return /******/ (function(modules) { // webpackBootstrap group.draw(processedGroupData[groupIds[i]], group, this.framework); } } - BarFunctions.draw(groupIds, processedGroupData, this.framework); } } } @@ -24847,7 +24918,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; @@ -24868,7 +24939,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'; }); } @@ -24902,7 +24973,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(); @@ -24925,12 +24996,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); }; @@ -25044,11 +25115,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; @@ -25078,7 +25149,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 { @@ -25087,7 +25158,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; } @@ -25211,7 +25282,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(); @@ -25219,17 +25290,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; }; @@ -25260,10 +25331,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'; @@ -25747,29 +25818,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) { @@ -25801,7 +25872,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 }; }; @@ -25941,9 +26012,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 @@ -26523,16 +26594,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'; @@ -26588,16 +26659,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'; @@ -26605,11 +26676,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 = ''; } @@ -26642,7 +26713,9 @@ return /******/ (function(modules) { // webpackBootstrap return a < b ? -1 : 1; }); - DOMutil.prepareElements(this.svgElements); + // this resets the elements so the order is maintained + DOMutil.resetElements(this.svgElements); + var padding = window.getComputedStyle(this.dom.frame).paddingTop; var iconOffset = Number(padding.replace('px', '')); var x = iconOffset; @@ -26659,8 +26732,6 @@ return /******/ (function(modules) { // webpackBootstrap y += iconHeight + this.options.iconSpacing; } } - - DOMutil.cleanupElements(this.svgElements); } }; @@ -26817,6 +26888,7 @@ return /******/ (function(modules) { // webpackBootstrap }, max: { date: date, number: number, string: string, moment: moment }, maxHeight: { number: number, string: string }, + maxMinorChars: { number: number }, min: { date: date, number: number, string: string, moment: moment }, minHeight: { number: number, string: string }, moveable: { boolean: boolean }, @@ -26926,6 +26998,7 @@ return /******/ (function(modules) { // webpackBootstrap locale: '', max: '', maxHeight: '', + maxMinorChars: [7, 0, 20, 1], min: '', minHeight: '', moveable: true, @@ -27016,6 +27089,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); @@ -27029,17 +27113,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; @@ -27104,7 +27177,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 @@ -27120,8 +27193,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(); @@ -27172,7 +27245,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); @@ -27213,7 +27286,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 { @@ -27221,15 +27294,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"); } }; @@ -27267,23 +27340,22 @@ 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"); }); }; @@ -27299,8 +27371,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(); @@ -27330,13 +27402,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"); }; /** @@ -27346,7 +27418,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(); @@ -27471,7 +27543,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); @@ -27642,7 +27714,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) { @@ -27655,18 +27727,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 @@ -27674,6 +27744,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) { @@ -27696,8 +27768,6 @@ return /******/ (function(modules) { // webpackBootstrap return group; } - }, { - key: "add", /** * Add a custom group style @@ -27706,6 +27776,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); @@ -27917,14 +27989,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; @@ -27968,17 +28040,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]; @@ -27995,17 +28067,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; @@ -28024,19 +28096,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; @@ -28045,16 +28117,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]; @@ -28081,14 +28153,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) { @@ -28113,12 +28185,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 = []; @@ -28134,27 +28206,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) { @@ -28179,14 +28251,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) { @@ -28195,12 +28267,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. @@ -28208,6 +28278,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param Number x * @param Number y */ + }, { + key: 'moveNode', value: function moveNode(nodeId, x, y) { var _this4 = this; @@ -28215,10 +28287,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); } } }]); @@ -28365,39 +28437,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) { @@ -28409,7 +28481,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 @@ -28451,7 +28523,7 @@ return /******/ (function(modules) { // webpackBootstrap 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"; } } @@ -28463,6 +28535,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() { @@ -28531,50 +28610,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 @@ -28582,41 +28659,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 @@ -28624,6 +28701,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); @@ -28637,69 +28716,64 @@ return /******/ (function(modules) { // webpackBootstrap this.options.size = this.baseSize; this.options.font.size = this.baseFontSize; } + + this.updateLabelModule(); } - }, { - 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]; @@ -28712,6 +28786,8 @@ return /******/ (function(modules) { // webpackBootstrap // individual shape newOptions if (newOptions.color !== undefined && newOptions.color !== null) { + // make a copy of the parent object in case this is referring to the global one (due to object create once, then update) + parentOptions.color = util.deepExtend({}, parentOptions.color, true); var parsedColor = util.parseColor(newOptions.color); util.fillIfDefined(parentOptions.color, parsedColor); } else if (allowDeletion === true && newOptions.color === null) { @@ -28839,16 +28915,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; @@ -28869,8 +28945,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_drawText', /** * @@ -28879,6 +28953,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]; @@ -28898,15 +28974,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'; @@ -28940,19 +29016,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. @@ -28962,6 +29036,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'; @@ -28972,8 +29048,6 @@ return /******/ (function(modules) { // webpackBootstrap } return [fontColor, strokeColor]; } - }, { - key: 'getTextSize', /** * @@ -28981,6 +29055,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]; @@ -28991,8 +29067,6 @@ return /******/ (function(modules) { // webpackBootstrap }; return size; } - }, { - key: 'calculateLabelSize', /** * @@ -29002,6 +29076,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]; @@ -29014,7 +29090,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 @@ -29022,8 +29098,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. @@ -29032,6 +29106,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_processLabel', value: function _processLabel(ctx, selected) { var width = 0; var lines = ['']; @@ -29039,7 +29115,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; @@ -29057,8 +29133,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') { @@ -29086,13 +29162,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29259,7 +29335,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; } } @@ -29271,7 +29347,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; } } @@ -29296,13 +29372,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29386,13 +29462,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29417,8 +29493,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 @@ -29426,6 +29500,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_resizeImage', value: function _resizeImage() { var force = false; if (!this.imageObj.width || !this.imageObj.height) { @@ -29557,13 +29633,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29663,13 +29739,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29776,13 +29852,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29832,13 +29908,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29938,13 +30014,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -29995,13 +30071,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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,13 +30187,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30184,12 +30260,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); @@ -30226,13 +30302,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30346,13 +30422,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30402,13 +30478,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30458,13 +30534,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30544,13 +30620,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30600,13 +30676,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -30756,7 +30832,7 @@ return /******/ (function(modules) { // webpackBootstrap }, smooth: { enabled: true, - type: 'dynamic', + type: "dynamic", forceDirection: 'none', roundness: 0.5 }, @@ -30776,7 +30852,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'; } @@ -30804,20 +30880,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; @@ -30864,8 +30940,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'setData', /** * Load edges by reading the data table @@ -30873,6 +30947,8 @@ return /******/ (function(modules) { // webpackBootstrap * @private * @private */ + }, { + key: 'setData', value: function setData(edges) { var _this3 = this; @@ -30915,17 +30991,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]; @@ -30940,22 +31016,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; @@ -30977,19 +31053,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++) { @@ -31002,7 +31078,7 @@ return /******/ (function(modules) { // webpackBootstrap } } - this.body.emitter.emit('_dataChanged'); + this.body.emitter.emit("_dataChanged"); } }, { key: 'refresh', @@ -31031,13 +31107,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; @@ -31117,8 +31193,6 @@ return /******/ (function(modules) { // webpackBootstrap var _edgesStraightEdge2 = _interopRequireDefault(_edgesStraightEdge); - var util = __webpack_require__(1); - /** * @class Edge * @@ -31134,13 +31208,14 @@ 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; @@ -31170,14 +31245,14 @@ 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; @@ -31221,6 +31296,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 @@ -31231,13 +31307,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; @@ -31281,12 +31357,12 @@ return /******/ (function(modules) { // webpackBootstrap return dataChanged; } - }, { - key: 'connect', /** * Connect an edge to its nodes */ + }, { + key: 'connect', value: function connect() { this.disconnect(); @@ -31308,12 +31384,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); @@ -31326,39 +31402,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 @@ -31367,6 +31441,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); @@ -31382,6 +31458,7 @@ return /******/ (function(modules) { // webpackBootstrap } this._setInteractionWidths(); + this.updateLabelModule(); } }, { key: '_setInteractionWidths', @@ -31398,8 +31475,6 @@ return /******/ (function(modules) { // webpackBootstrap this.edgeType.selectionWidth = this.options.selectionWidth + this.options.width; } } - }, { - key: 'draw', /** * Redraw a edge @@ -31407,6 +31482,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); @@ -31439,7 +31516,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); @@ -31465,14 +31542,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; @@ -31490,14 +31567,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; @@ -31510,8 +31587,6 @@ return /******/ (function(modules) { // webpackBootstrap ctx.rotate(angleInDegrees); } - }, { - key: '_pointOnCircle', /** * Get a point on a circle @@ -31522,6 +31597,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 { @@ -31539,13 +31616,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(); } @@ -31586,13 +31663,13 @@ return /******/ (function(modules) { // webpackBootstrap 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') { @@ -31600,7 +31677,7 @@ return /******/ (function(modules) { // webpackBootstrap 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 = Object.create(globalOptions.arrows); // this sets the pointer of the option back to the global option. @@ -31608,6 +31685,8 @@ return /******/ (function(modules) { // webpackBootstrap // hanlde multiple input cases for color if (newOptions.color !== undefined && newOptions.color !== null) { + // make a copy of the parent object in case this is referring to the global one (due to object create once, then update) + parentOptions.color = util.deepExtend({}, parentOptions.color, true); if (util.isString(newOptions.color)) { parentOptions.color.color = newOptions.color; parentOptions.color.highlight = newOptions.color; @@ -31643,7 +31722,7 @@ return /******/ (function(modules) { // webpackBootstrap 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. + parentOptions.font = Object.create(globalOptions.font); } } }]); @@ -31668,13 +31747,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x3, _x4, _x5) { var _again = true; _function: while (_again) { var object = _x3, property = _x4, receiver = _x5; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x3 = parent; _x4 = property; _x5 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x3, _x4, _x5) { var _again = true; _function: while (_again) { var object = _x3, property = _x4, receiver = _x5; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x3 = parent; _x4 = property; _x5 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -31689,14 +31768,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. @@ -31770,8 +31849,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 @@ -31780,6 +31857,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]; @@ -31819,13 +31898,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -31840,22 +31919,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; @@ -31905,13 +31984,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x2, _x3, _x4) { var _again = true; _function: while (_again) { var object = _x2, property = _x3, receiver = _x4; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x2 = parent; _x3 = property; _x4 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -31926,22 +32005,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]; @@ -31969,19 +32048,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++; } @@ -31989,8 +32068,6 @@ return /******/ (function(modules) { // webpackBootstrap return pos; } - }, { - key: '_getDistanceToBezierEdge', /** * Calculate the distance between a point (x3,y3) and a line segment from @@ -32004,6 +32081,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; @@ -32060,6 +32139,7 @@ return /******/ (function(modules) { // webpackBootstrap this.body = body; this.labelModule = labelModule; + this.options = {}; this.setOptions(options); this.colorDirty = true; this.color = {}; @@ -32086,8 +32166,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 @@ -32096,6 +32174,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); @@ -32247,8 +32327,6 @@ return /******/ (function(modules) { // webpackBootstrap } return [x, y, radius]; } - }, { - key: '_pointOnCircle', /** * Get a point on a circle @@ -32259,6 +32337,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 { @@ -32266,8 +32346,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. @@ -32277,6 +32355,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_findBorderPositionCircle', value: function _findBorderPositionCircle(node, ctx, options) { var x = options.x; var y = options.y; @@ -32306,27 +32386,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 @@ -32334,6 +32412,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); @@ -32374,7 +32454,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); @@ -32402,8 +32482,6 @@ return /******/ (function(modules) { // webpackBootstrap return this.color.color; } } - }, { - key: '_circle', /** * Draw a line from a node to itself, a circle @@ -32413,6 +32491,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); @@ -32425,8 +32505,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 @@ -32440,6 +32518,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; @@ -32492,8 +32572,6 @@ return /******/ (function(modules) { // webpackBootstrap return Math.sqrt(dx * dx + dy * dy); } - }, { - key: 'drawArrowHead', /** * @@ -32501,6 +32579,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); @@ -32636,13 +32716,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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); @@ -32667,16 +32747,27 @@ return /******/ (function(modules) { // webpackBootstrap _createClass(BezierEdgeDynamic, [{ key: "setOptions", value: function setOptions(options) { + // check if the physics has changed. + var physicsChange = false; + if (this.options.physics !== options.physics) { + physicsChange = true; + } + + // set the options and the to and from nodes this.options = options; this.id = this.options.id; + this.from = this.body.nodes[this.options.from]; + this.to = this.body.nodes[this.options.to]; + + // setup the support node and connect this.setupSupportNode(); + this.connect(); // when we change the physics state of the edge, we reposition the support node. - if (this.options.physics !== options.physics) { + if (physicsChange === true) { this.via.setOptions({ physics: this.options.physics }); this.positionBezierNode(); } - this.connect(); } }, { key: "connect", @@ -32694,13 +32785,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) { @@ -32710,8 +32801,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 @@ -32720,12 +32809,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 }); @@ -32746,14 +32837,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(); @@ -32765,8 +32856,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 @@ -32775,6 +32864,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; @@ -32813,13 +32904,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x4, _x5, _x6) { var _again = true; _function: while (_again) { var object = _x4, property = _x5, receiver = _x6; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x4 = parent; _x5 = property; _x6 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x4, _x5, _x6) { var _again = true; _function: while (_again) { var object = _x4, property = _x5, receiver = _x6; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x4 = parent; _x5 = property; _x6 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -32834,14 +32925,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(); @@ -32890,7 +32981,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)) { @@ -32911,11 +33002,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; @@ -33033,8 +33124,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 @@ -33043,6 +33132,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]; @@ -33072,13 +33163,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -33093,14 +33184,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(); @@ -33112,8 +33203,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 @@ -33122,6 +33211,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, @@ -33333,14 +33424,19 @@ return /******/ (function(modules) { // webpackBootstrap _this.stopSimulation(false); _this.body.emitter.off(); }); + // 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 () { + // update shortcut lists + _this.updatePhysicsData(); + }); } - }, { - key: 'setOptions', /** * set the physics options * @param options */ + }, { + key: 'setOptions', value: function setOptions(options) { if (options !== undefined) { if (options === false) { @@ -33367,12 +33463,12 @@ return /******/ (function(modules) { // webpackBootstrap } this.init(); } - }, { - key: 'init', /** * configure the engine. */ + }, { + key: 'init', value: function init() { var options; if (this.options.solver === 'forceAtlas2Based') { @@ -33400,12 +33496,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) { @@ -33421,12 +33517,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; @@ -33435,7 +33531,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); @@ -33445,12 +33541,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]; @@ -33466,13 +33562,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(); @@ -33491,13 +33587,13 @@ return /******/ (function(modules) { // webpackBootstrap this.stopSimulation(); } } - }, { - key: '_emitStabilized', /** * trigger the stabilized event. * @private */ + }, { + key: '_emitStabilized', value: function _emitStabilized() { var _this2 = this; @@ -33511,14 +33607,14 @@ return /******/ (function(modules) { // webpackBootstrap }, 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) { @@ -33589,14 +33685,14 @@ return /******/ (function(modules) { // webpackBootstrap 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 = []; @@ -33640,12 +33736,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; @@ -33669,12 +33765,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, @@ -33697,13 +33793,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; @@ -33725,8 +33821,6 @@ return /******/ (function(modules) { // webpackBootstrap this.adaptiveTimestepEnabled = averageNodeVelocity / nodeIndices.length < velocityAdaptiveThreshold; this.stabilized = maxNodeVelocity < this.options.minVelocity; } - }, { - key: '_performStep', /** * Perform the actual step @@ -33736,6 +33830,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; @@ -33752,9 +33848,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 @@ -33763,26 +33859,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 @@ -33790,6 +33884,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_freezeNodes', value: function _freezeNodes() { var nodes = this.body.nodes; for (var id in nodes) { @@ -33802,14 +33898,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) { @@ -33822,13 +33918,12 @@ return /******/ (function(modules) { // webpackBootstrap } this.freezeCache = {}; } - }, { - key: 'stabilize', /** * Find a stable position for all nodes - * @private */ + }, { + key: 'stabilize', value: function stabilize() { var _this3 = this; @@ -33848,7 +33943,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(); @@ -33870,13 +33965,13 @@ 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) { @@ -33897,13 +33992,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) { @@ -33971,8 +34066,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. @@ -33980,6 +34073,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { if (this.options.gravitationalConstant !== 0 && this.physicsBody.physicsNodeIndices.length > 0) { var node = undefined; @@ -34006,8 +34101,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. @@ -34017,6 +34110,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) { @@ -34051,8 +34146,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_calculateForces", /** * Calculate the forces based on the distance. @@ -34064,6 +34157,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentBranch * @private */ + }, { + key: "_calculateForces", value: function _calculateForces(distance, dx, dy, node, parentBranch) { if (distance === 0) { distance = 0.1; @@ -34083,8 +34178,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. @@ -34093,6 +34186,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param nodeIndices * @private */ + }, { + key: "_formBarnesHutTree", value: function _formBarnesHutTree(nodes, nodeIndices) { var node = undefined; var nodeCount = nodeIndices.length; @@ -34128,9 +34223,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)); @@ -34168,8 +34263,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. @@ -34178,6 +34271,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; @@ -34192,8 +34287,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. @@ -34203,6 +34296,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. @@ -34229,8 +34324,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_placeInRegion", /** * actually place the node in a region (or branch) @@ -34240,6 +34333,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param region * @private */ + }, { + key: "_placeInRegion", value: function _placeInRegion(parentBranch, node, region) { switch (parentBranch.children[region].childrenCount) { case 0: @@ -34266,8 +34361,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 @@ -34276,6 +34369,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; @@ -34296,8 +34391,6 @@ return /******/ (function(modules) { // webpackBootstrap this._placeInTree(parentBranch, containedNode); } } - }, { - key: "_insertRegion", /** * This function subdivides the region into four new segments. @@ -34309,6 +34402,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentRange * @private */ + }, { + key: "_insertRegion", value: function _insertRegion(parentBranch, region) { var minX = undefined, maxX = undefined, @@ -34354,8 +34449,6 @@ return /******/ (function(modules) { // webpackBootstrap childrenCount: 0 }; } - }, { - key: "_debug", //--------------------------- DEBUGGING BELOW ---------------------------// @@ -34366,6 +34459,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param color * @private */ + }, { + key: "_debug", value: function _debug(ctx, color) { if (this.barnesHutTree !== undefined) { @@ -34374,8 +34469,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. @@ -34385,6 +34478,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param color * @private */ + }, { + key: "_drawBranch", value: function _drawBranch(branch, ctx, color) { if (color === undefined) { color = "#FF0000"; @@ -34460,8 +34555,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. @@ -34469,6 +34562,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { var dx, dy, distance, fx, fy, repulsingForce, node1, node2; @@ -34555,8 +34650,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. @@ -34564,6 +34657,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: "solve", value: function solve() { var dx, dy, distance, fx, fy, repulsingForce, node1, node2, i, j; @@ -34646,14 +34741,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; @@ -34687,8 +34782,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_calculateSpringForce", /** * This is the code actually performing the calculation for the function above. @@ -34698,6 +34791,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; @@ -34756,14 +34851,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; @@ -34906,13 +35001,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; @@ -34938,13 +35033,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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); @@ -34959,19 +35054,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(); @@ -35012,13 +35107,13 @@ return /******/ (function(modules) { // webpackBootstrap var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ("value" in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } 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); @@ -35033,13 +35128,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; @@ -35101,18 +35196,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(); } @@ -35131,20 +35226,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 @@ -35173,8 +35268,6 @@ return /******/ (function(modules) { // webpackBootstrap this._cluster(childNodesObj, childEdgesObj, options, refreshData); } - }, { - key: 'clusterByEdgeCount', /** * Cluster all nodes in the network that have only X edges @@ -35182,6 +35275,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]; @@ -35256,34 +35351,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. @@ -35291,15 +35384,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]; @@ -35352,8 +35447,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. @@ -35362,6 +35455,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{}} * @private */ + }, { + key: '_cloneOptions', value: function _cloneOptions(item, type) { var clonedOptions = {}; if (type === undefined || type === 'node') { @@ -35374,8 +35469,6 @@ return /******/ (function(modules) { // webpackBootstrap } return clonedOptions; } - }, { - key: '_createClusterEdges', /** * This function creates the edges that will be attached to the cluster @@ -35386,6 +35479,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param options * @private */ + }, { + key: '_createClusterEdges', value: function _createClusterEdges(childNodesObj, childEdgesObj, clusterNodeProperties, clusterEdgeProperties) { var edge = undefined, childNodeId = undefined, @@ -35460,8 +35555,6 @@ return /******/ (function(modules) { // webpackBootstrap _edge.hiddenByCluster = true; } } - }, { - key: '_checkOptions', /** * This function checks the options that can be supplied to the different cluster functions @@ -35470,6 +35563,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_checkOptions', value: function _checkOptions() { var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; @@ -35482,8 +35577,6 @@ return /******/ (function(modules) { // webpackBootstrap return options; } - }, { - key: '_cluster', /** * @@ -35493,6 +35586,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]; @@ -35528,7 +35623,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); } @@ -35537,7 +35632,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!"); } } @@ -35608,24 +35703,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 @@ -35633,6 +35726,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; @@ -35650,26 +35745,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]; @@ -35704,8 +35799,12 @@ return /******/ (function(modules) { // webpackBootstrap var containedNode = this.body.nodes[nodeId]; containedNode = containedNodes[nodeId]; // inherit position - containedNode.x = clusterNode.x; - containedNode.y = clusterNode.y; + if (containedNode.options.fixed.x === false) { + containedNode.x = clusterNode.x; + } + if (containedNode.options.fixed.y === false) { + containedNode.y = clusterNode.y; + } } } } @@ -35817,15 +35916,14 @@ 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 * @param nodeId * @returns {Array} - * @private */ + }, { + key: 'findNode', value: function findNode(nodeId) { var stack = []; var max = 100; @@ -35839,8 +35937,6 @@ return /******/ (function(modules) { // webpackBootstrap stack.push(this.body.nodes[nodeId]); return stack; } - }, { - key: '_getConnectedId', /** * Get the Id the node is connected to @@ -35849,6 +35945,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_getConnectedId', value: function _getConnectedId(edge, nodeId) { if (edge.toId != nodeId) { return edge.toId; @@ -35858,8 +35956,6 @@ return /******/ (function(modules) { // webpackBootstrap return edge.fromId; } } - }, { - key: '_getHubSize', /** * We determine how many connections denote an important hub. @@ -35867,6 +35963,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: '_getHubSize', value: function _getHubSize() { var average = 0; var averageSquared = 0; @@ -35915,13 +36013,13 @@ return /******/ (function(modules) { // webpackBootstrap value: true }); - var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; desc = parent = getter = undefined; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } 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); @@ -36002,33 +36100,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; @@ -36061,8 +36159,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 + } } } } @@ -36086,25 +36184,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; @@ -36127,7 +36225,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'); @@ -36157,7 +36255,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) { @@ -36176,7 +36274,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(); @@ -36186,8 +36284,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_resizeNodes', /** * Redraw all nodes @@ -36196,6 +36292,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) { @@ -36221,8 +36319,6 @@ return /******/ (function(modules) { // webpackBootstrap // restore original scaling and translation ctx.restore(); } - }, { - key: '_drawNodes', /** * Redraw all nodes @@ -36231,6 +36327,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]; @@ -36269,8 +36367,6 @@ return /******/ (function(modules) { // webpackBootstrap node.draw(ctx); } } - }, { - key: '_drawEdges', /** * Redraw all edges @@ -36278,6 +36374,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; @@ -36290,8 +36388,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_drawControlNodes', /** * Redraw all edges @@ -36299,6 +36395,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; @@ -36309,14 +36407,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(); @@ -36396,7 +36494,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; } @@ -36404,8 +36502,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(); @@ -36427,7 +36525,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); @@ -36448,15 +36546,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]; @@ -36465,13 +36563,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) { @@ -36505,12 +36603,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()) { @@ -36525,7 +36623,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); @@ -36537,10 +36635,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 @@ -36551,13 +36649,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; @@ -36618,8 +36716,6 @@ return /******/ (function(modules) { // webpackBootstrap _this3.body.eventListeners.onRelease(event); }); } - }, { - key: 'setSize', /** * Set a new size for the network @@ -36628,6 +36724,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]; @@ -36640,7 +36738,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); @@ -36706,8 +36804,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 @@ -36716,11 +36812,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 @@ -36729,11 +36825,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 @@ -36742,11 +36838,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', /** * @@ -36754,11 +36850,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', /** * @@ -36766,6 +36862,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) }; } @@ -36809,7 +36907,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; @@ -36821,11 +36919,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, [{ @@ -36835,14 +36933,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]; @@ -36878,7 +36976,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; @@ -36900,8 +36998,6 @@ return /******/ (function(modules) { // webpackBootstrap var animationOptions = { position: center, scale: zoomLevel, animation: options.animation }; this.moveTo(animationOptions); } - }, { - key: 'focus', // animation @@ -36911,6 +37007,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]; @@ -36921,11 +37019,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', /** * @@ -36934,6 +37030,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 = {}; @@ -36967,13 +37065,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', /** * @@ -36986,6 +37082,8 @@ return /******/ (function(modules) { // webpackBootstrap * // easeInQuart, easeOutQuart, easeInOutQuart, * // easeInQuint, easeOutQuint, easeInOutQuint */ + }, { + key: 'animateView', value: function animateView(options) { if (options === undefined) { return; @@ -37025,28 +37123,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 }); @@ -37066,19 +37164,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]; @@ -37095,13 +37193,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"); } } }, { @@ -37141,13 +37239,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]; @@ -37179,13 +37277,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]; @@ -37217,14 +37315,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) }; @@ -37345,8 +37443,6 @@ return /******/ (function(modules) { // webpackBootstrap this.navigationHandler.setOptions(this.options); } - }, { - key: 'getPointer', /** * Get the pointer location from a touch location @@ -37354,20 +37450,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); @@ -37377,13 +37475,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); @@ -37391,24 +37489,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; @@ -37418,14 +37516,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); @@ -37440,14 +37538,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]; @@ -37508,8 +37606,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. @@ -37518,6 +37614,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {{nodesChanges: boolean, edgesChanges: boolean}} * @private */ + }, { + key: '_determineIfDifferent', value: function _determineIfDifferent(previousSelection, currentSelection) { var nodesChanges = false; var edgesChanges = false; @@ -37545,8 +37643,6 @@ return /******/ (function(modules) { // webpackBootstrap return { nodesChanges: nodesChanges, edgesChanges: edgesChanges }; } - }, { - key: 'onDragStart', /** * This function is called by onDragStart. @@ -37554,6 +37650,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) { @@ -37606,13 +37704,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; @@ -37668,13 +37766,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; @@ -37691,14 +37789,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); @@ -37711,8 +37809,6 @@ return /******/ (function(modules) { // webpackBootstrap var scale = this.pinch.scale * event.scale; this.zoom(scale, pointer); } - }, { - key: 'zoom', /** * Zoom the network in or out @@ -37721,6 +37817,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; @@ -37762,8 +37860,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: 'onMouseWheel', /** * Event handler for mouse wheel event, used to zoom the timeline @@ -37772,6 +37868,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {MouseEvent} event * @private */ + }, { + key: 'onMouseWheel', value: function onMouseWheel(event) { // retrieve delta var delta = 0; @@ -37808,14 +37906,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; @@ -37866,8 +37964,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionHandler.hoverObject(obj); } } - }, { - key: '_checkShowPopup', /** * Check if there is an element on the given position in the network @@ -37877,6 +37973,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); @@ -37961,8 +38059,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_checkHidePopup', /** * Check if the popup must be hidden, which is the case when the mouse is no @@ -37970,6 +38066,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {{x:Number, y:Number}} pointer * @private */ + }, { + key: '_checkHidePopup', value: function _checkHidePopup(pointer) { var pointerObj = this.selectionHandler._pointerToPositionObject(pointer); @@ -38041,13 +38139,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(); } @@ -38095,8 +38193,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 @@ -38106,6 +38202,8 @@ return /******/ (function(modules) { // webpackBootstrap * * @private */ + }, { + key: 'loadNavigationElements', value: function loadNavigationElements() { var _this2 = this; @@ -38125,7 +38223,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])); @@ -38149,47 +38247,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 = {}; @@ -38226,12 +38324,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; @@ -38249,79 +38347,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"); } } } @@ -38373,24 +38471,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 = ''; @@ -38399,13 +38497,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; @@ -38433,23 +38531,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"; } }]); @@ -38506,12 +38604,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; @@ -38519,6 +38615,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} pointer * @private */ + }, { + key: "selectOnPoint", value: function selectOnPoint(pointer) { var selected = false; if (this.options.selectable === true) { @@ -38565,14 +38663,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); } @@ -38601,8 +38699,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removeFromSelection(obj); } } - }, { - key: "_getAllNodesOverlappingWith", /** * retrieve all nodes overlapping with given object @@ -38610,6 +38706,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; @@ -38621,8 +38719,6 @@ return /******/ (function(modules) { // webpackBootstrap } return overlappingNodes; } - }, { - key: "_pointerToPositionObject", /** * Return a position object in canvasspace from a single point in screenspace @@ -38631,6 +38727,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 { @@ -38640,16 +38738,15 @@ return /******/ (function(modules) { // webpackBootstrap bottom: canvasPos.y - 1 }; } - }, { - key: "getNodeAt", /** * Get the top node at the a specific point (like a click) * * @param {{x: Number, y: Number}} pointer * @return {Node | undefined} node - * @private */ + }, { + key: "getNodeAt", value: function getNodeAt(pointer) { var returnNode = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -38668,8 +38765,6 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } } - }, { - key: "_getEdgesOverlappingWith", /** * retrieve all edges overlapping with given object, selector is around center @@ -38677,6 +38772,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++) { @@ -38686,8 +38783,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "_getAllEdgesOverlappingWith", /** * retrieve all nodes overlapping with given object @@ -38695,13 +38790,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 @@ -38709,8 +38804,9 @@ return /******/ (function(modules) { // webpackBootstrap * * @param pointer * @returns {undefined} - * @private */ + }, { + key: "getEdgeAt", value: function getEdgeAt(pointer) { var returnEdge = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; @@ -38727,8 +38823,6 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; } } - }, { - key: "_addToSelection", /** * Add object to the selection array. @@ -38736,6 +38830,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param obj * @private */ + }, { + key: "_addToSelection", value: function _addToSelection(obj) { if (obj instanceof Node) { this.selectionObj.nodes[obj.id] = obj; @@ -38743,8 +38839,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionObj.edges[obj.id] = obj; } } - }, { - key: "_addToHover", /** * Add object to the selection array. @@ -38752,6 +38846,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param obj * @private */ + }, { + key: "_addToHover", value: function _addToHover(obj) { if (obj instanceof Node) { this.hoverObj.nodes[obj.id] = obj; @@ -38759,8 +38855,6 @@ return /******/ (function(modules) { // webpackBootstrap this.hoverObj.edges[obj.id] = obj; } } - }, { - key: "_removeFromSelection", /** * Remove a single option from selection. @@ -38768,21 +38862,22 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} obj * @private */ + }, { + key: "_removeFromSelection", value: function _removeFromSelection(obj) { if (obj instanceof Node) { delete this.selectionObj.nodes[obj.id]; + this._unselectConnectedEdges(obj); } else { 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)) { @@ -38797,8 +38892,6 @@ return /******/ (function(modules) { // webpackBootstrap this.selectionObj = { nodes: {}, edges: {} }; } - }, { - key: "_getSelectedNodeCount", /** * return the number of selected nodes @@ -38806,6 +38899,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedNodeCount", value: function _getSelectedNodeCount() { var count = 0; for (var nodeId in this.selectionObj.nodes) { @@ -38815,8 +38910,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_getSelectedNode", /** * return the selected node @@ -38824,6 +38917,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)) { @@ -38832,8 +38927,6 @@ return /******/ (function(modules) { // webpackBootstrap } return undefined; } - }, { - key: "_getSelectedEdge", /** * return the selected edge @@ -38841,6 +38934,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)) { @@ -38849,8 +38944,6 @@ return /******/ (function(modules) { // webpackBootstrap } return undefined; } - }, { - key: "_getSelectedEdgeCount", /** * return the number of selected edges @@ -38858,6 +38951,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedEdgeCount", value: function _getSelectedEdgeCount() { var count = 0; for (var edgeId in this.selectionObj.edges) { @@ -38867,8 +38962,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_getSelectedObjectCount", /** * return the number of selected objects. @@ -38876,6 +38969,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: "_getSelectedObjectCount", value: function _getSelectedObjectCount() { var count = 0; for (var nodeId in this.selectionObj.nodes) { @@ -38890,8 +38985,6 @@ return /******/ (function(modules) { // webpackBootstrap } return count; } - }, { - key: "_selectionIsEmpty", /** * Check if anything is selected @@ -38899,6 +38992,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)) { @@ -38912,8 +39007,6 @@ return /******/ (function(modules) { // webpackBootstrap } return true; } - }, { - key: "_clusterInSelection", /** * check if one of the selected nodes is a cluster. @@ -38921,6 +39014,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)) { @@ -38931,8 +39026,6 @@ return /******/ (function(modules) { // webpackBootstrap } return false; } - }, { - key: "_selectConnectedEdges", /** * select the edges connected to the node that is being selected @@ -38940,6 +39033,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]; @@ -38947,8 +39042,6 @@ return /******/ (function(modules) { // webpackBootstrap this._addToSelection(edge); } } - }, { - key: "_hoverConnectedEdges", /** * select the edges connected to the node that is being selected @@ -38956,6 +39049,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]; @@ -38963,8 +39058,6 @@ return /******/ (function(modules) { // webpackBootstrap this._addToHover(edge); } } - }, { - key: "_unselectConnectedEdges", /** * unselect the edges connected to the node that is being selected @@ -38972,6 +39065,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]; @@ -38979,8 +39074,6 @@ return /******/ (function(modules) { // webpackBootstrap this._removeFromSelection(edge); } } - }, { - key: "blurObject", /** * This is called when someone clicks on a node. either select or deselect it. @@ -38989,6 +39082,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node || Edge} object * @private */ + }, { + key: "blurObject", value: function blurObject(object) { if (object.hover === true) { object.hover = false; @@ -38999,8 +39094,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: "hoverObject", /** * This is called when someone clicks on a node. either select or deselect it. @@ -39009,6 +39102,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Node || Edge} object * @private */ + }, { + key: "hoverObject", value: function hoverObject(object) { var hoverChanged = false; // remove all node hover highlights @@ -39033,10 +39128,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; + } } } @@ -39057,24 +39152,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", /** * @@ -39082,6 +39175,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) { @@ -39093,8 +39188,6 @@ return /******/ (function(modules) { // webpackBootstrap } return idArray; } - }, { - key: "getSelectedEdges", /** * @@ -39102,6 +39195,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) { @@ -39113,72 +39208,87 @@ return /******/ (function(modules) { // webpackBootstrap } return idArray; } - }, { - key: "selectNodes", /** - * select zero or more nodes with the option to highlight edges - * @param {Number[] | String[]} selection An array with the ids of the - * selected nodes. - * @param {boolean} [highlightEdges] + * Updates the current selection + * @param {{nodes: Array., edges: Array.}} Selection + * @param {Object} options Options */ - value: function selectNodes(selection) { - var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; + }, { + key: "setSelection", + value: function setSelection(selection) { + var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; var i = undefined, id = undefined; - if (!selection || selection.length === undefined) throw "Selection must be an array with ids"; + if (!selection || !selection.nodes && !selection.edges) throw 'Selection must be an object with nodes and/or edges properties'; + // first unselect any selected node, if option is true or undefined + if (options.unselectAll || options.unselectAll === undefined) { + this.unselectAll(); + } + if (selection.nodes) { + for (i = 0; i < selection.nodes.length; i++) { + id = selection.nodes[i]; - // first unselect any selected node - this.unselectAll(); + var node = this.body.nodes[id]; + if (!node) { + throw new RangeError('Node with id "' + id + '" not found'); + } + // don't select edges with it + this.selectObject(node, options.highlightEdges); + } + } - for (i = 0; i < selection.length; i++) { - id = selection[i]; + if (selection.edges) { + for (i = 0; i < selection.edges.length; i++) { + id = selection.edges[i]; - var node = this.body.nodes[id]; - if (!node) { - throw new RangeError("Node with id \"" + id + "\" not found"); + var edge = this.body.edges[id]; + if (!edge) { + throw new RangeError('Edge with id "' + id + '" not found'); + } + this.selectObject(edge); } - this.selectObject(node, highlightEdges); } - this.body.emitter.emit("_requestRedraw"); + this.body.emitter.emit('_requestRedraw'); } - }, { - key: "selectEdges", /** - * select zero or more edges + * select zero or more nodes with the option to highlight edges * @param {Number[] | String[]} selection An array with the ids of the * selected nodes. + * @param {boolean} [highlightEdges] */ - value: function selectEdges(selection) { - var i = undefined, - id = undefined; + }, { + key: "selectNodes", + value: function selectNodes(selection) { + var highlightEdges = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1]; - 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(); + this.setSelection({ nodes: selection }, { highlightEdges: highlightEdges }); + } - for (i = 0; i < selection.length; i++) { - id = selection[i]; + /** + * select zero or more edges + * @param {Number[] | String[]} selection An array with the ids of the + * selected nodes. + */ + }, { + key: "selectEdges", + value: function selectEdges(selection) { + if (!selection || selection.length === undefined) throw 'Selection must be an array with ids'; - var edge = this.body.edges[id]; - if (!edge) { - throw new RangeError("Edge with id \"" + id + "\" not found"); - } - this.selectObject(edge); - } - this.body.emitter.emit("_requestRedraw"); + this.setSelection({ edges: selection }); } - }, { - 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)) { @@ -39273,7 +39383,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; @@ -39395,13 +39505,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 @@ -39435,8 +39545,8 @@ return /******/ (function(modules) { // webpackBootstrap var after = this.body.nodeIndices.length; 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. Please disable improvedLayout for better performance.'); + 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") @@ -39463,17 +39573,17 @@ return /******/ (function(modules) { // webpackBootstrap 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); @@ -39504,8 +39614,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. @@ -39513,6 +39621,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. @@ -39555,13 +39665,44 @@ return /******/ (function(modules) { // webpackBootstrap // check the distribution of the nodes per level. var distribution = this._getDistribution(); + // add offset to distribution + this._addOffsetsToDistribution(distribution); + // place the nodes on the canvas. this._placeNodesByHierarchy(distribution); } } } + + /** + * center align the nodes in the hierarchy for quicker display. + * @param distribution + * @private + */ }, { - key: '_placeNodesByHierarchy', + key: '_addOffsetsToDistribution', + value: function _addOffsetsToDistribution(distribution) { + var maxDistances = 0; + // get the maximum amount of distances between nodes over all levels + for (var level in distribution) { + if (distribution.hasOwnProperty(level)) { + if (maxDistances < distribution[level].amount) { + maxDistances = distribution[level].amount; + } + } + } + // o---o---o : 3 nodes, 2 disances. hence -1 + maxDistances -= 1; + + // set the distances for all levels but normalize on the first level (0) + var zeroLevelDistance = distribution[0].amount - 1 - maxDistances; + for (var level in distribution) { + if (distribution.hasOwnProperty(level)) { + var distances = distribution[level].amount - 1 - zeroLevelDistance; + distribution[level].distance = (maxDistances - distances) * 0.5 * this.nodeSpacing; + } + } + } /** * This function places the nodes on the canvas based on the hierarchial distribution. @@ -39569,6 +39710,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; @@ -39585,12 +39728,15 @@ return /******/ (function(modules) { // webpackBootstrap if (node.x === undefined) { node.x = distribution[level].distance; } - distribution[level].distance = node.x + this.nodeSpacing; + + // since the placeBranchNodes can make this process not exactly sequential, we have to avoid overlap by either spacing from the node, or simply adding distance. + distribution[level].distance = Math.max(distribution[level].distance + this.nodeSpacing, node.x + this.nodeSpacing); } else { if (node.y === undefined) { node.y = distribution[level].distance; } - distribution[level].distance = node.y + this.nodeSpacing; + // since the placeBranchNodes can make this process not exactly sequential, we have to avoid overlap by either spacing from the node, or simply adding distance. + distribution[level].distance = Math.max(distribution[level].distance + this.nodeSpacing, node.y + this.nodeSpacing); } this.positionedNodes[nodeId] = true; @@ -39600,8 +39746,6 @@ return /******/ (function(modules) { // webpackBootstrap } } } - }, { - key: '_getDistribution', /** * This function get the distribution of levels based on hubsize @@ -39609,6 +39753,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {Object} * @private */ + }, { + key: '_getDistribution', value: function _getDistribution() { var distribution = {}; var nodeId = undefined, @@ -39636,8 +39782,6 @@ return /******/ (function(modules) { // webpackBootstrap } return distribution; } - }, { - key: '_getHubSize', /** * Get the hubsize from all remaining unlevelled nodes. @@ -39645,6 +39789,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {number} * @private */ + }, { + key: '_getHubSize', value: function _getHubSize() { var hubSize = 0; for (var nodeId in this.body.nodes) { @@ -39657,8 +39803,6 @@ return /******/ (function(modules) { // webpackBootstrap } return hubSize; } - }, { - key: '_determineLevelsByHubsize', /** * this function allocates nodes in levels based on the recursive branching from the largest hubs. @@ -39666,6 +39810,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param hubsize * @private */ + }, { + key: '_determineLevelsByHubsize', value: function _determineLevelsByHubsize() { var nodeId = undefined, node = undefined; @@ -39686,8 +39832,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. @@ -39697,6 +39841,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentId * @private */ + }, { + key: '_setLevelByHubsize', value: function _setLevelByHubsize(level, node) { if (this.hierarchicalLevels[node.id] !== undefined) return; @@ -39711,8 +39857,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 @@ -39720,6 +39864,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param hubsize * @private */ + }, { + key: '_determineLevelsDirected', value: function _determineLevelsDirected() { var nodeId = undefined, node = undefined; @@ -39747,8 +39893,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 @@ -39758,6 +39902,8 @@ return /******/ (function(modules) { // webpackBootstrap * @param parentId * @private */ + }, { + key: '_setLevelDirected', value: function _setLevelDirected(level, node) { if (this.hierarchicalLevels[node.id] !== undefined) return; @@ -39774,8 +39920,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 @@ -39787,6 +39931,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; @@ -39805,13 +39951,13 @@ return /******/ (function(modules) { // webpackBootstrap if (childNodeLevel > parentLevel) { if (this.options.hierarchical.direction === 'UD' || this.options.hierarchical.direction === 'DU') { if (childNode.x === undefined) { - childNode.x = Math.max(distribution[childNodeLevel].distance, parentNode.x); + childNode.x = Math.max(distribution[childNodeLevel].distance); } distribution[childNodeLevel].distance = childNode.x + this.nodeSpacing; this.positionedNodes[childNode.id] = true; } else { if (childNode.y === undefined) { - childNode.y = Math.max(distribution[childNodeLevel].distance, parentNode.y); + childNode.y = Math.max(distribution[childNodeLevel].distance); } distribution[childNodeLevel].distance = childNode.y + this.nodeSpacing; } @@ -39908,13 +40054,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) { @@ -39924,13 +40070,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) { @@ -39958,14 +40104,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(); @@ -39999,14 +40145,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(); @@ -40081,14 +40227,12 @@ 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) { @@ -40112,14 +40256,12 @@ 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; @@ -40160,14 +40302,12 @@ 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) { @@ -40198,14 +40338,12 @@ 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; @@ -40275,14 +40413,12 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: 'deleteSelected', /** * delete everything in the selection - * - * @private */ + }, { + key: 'deleteSelected', value: function deleteSelected() { var _this4 = this; @@ -40340,8 +40476,6 @@ return /******/ (function(modules) { // webpackBootstrap this.showManipulatorToolbar(); } } - }, { - key: '_setup', //********************************************** PRIVATE ***************************************// @@ -40349,6 +40483,8 @@ return /******/ (function(modules) { // webpackBootstrap * draw or remove the DOM * @private */ + }, { + key: '_setup', value: function _setup() { if (this.options.enabled === true) { // Enable the GUI @@ -40367,13 +40503,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) { @@ -40407,8 +40543,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 @@ -40417,6 +40551,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*} * @private */ + }, { + key: '_getNewTargetNode', value: function _getNewTargetNode(x, y) { var controlNodeStyle = util.deepExtend({}, this.options.controlNodeStyle); @@ -40428,12 +40564,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(); @@ -40452,13 +40588,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; @@ -40484,13 +40620,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) { @@ -40500,13 +40636,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(); @@ -40532,14 +40668,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]; @@ -40547,11 +40683,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); @@ -40610,8 +40746,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 ------------------------------// @@ -40621,12 +40755,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 @@ -40634,6 +40768,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]; @@ -40642,14 +40778,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)) { @@ -40659,13 +40795,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; @@ -40674,26 +40810,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++) { @@ -40716,8 +40852,6 @@ return /******/ (function(modules) { // webpackBootstrap this.temporaryIds = { nodes: [], edges: [] }; } - }, { - key: '_controlNodeTouch', // ------------------------------------------ EDIT EDGE FUNCTIONS -----------------------------------------// @@ -40726,19 +40860,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); @@ -40760,14 +40896,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); @@ -40784,14 +40920,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); @@ -40829,8 +40965,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.body.emitter.emit('_redraw'); } - }, { - key: '_handleConnect', // ------------------------------------ END OF EDIT EDGE FUNCTIONS -----------------------------------------// @@ -40841,6 +40975,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) { @@ -40896,14 +41032,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); @@ -40940,8 +41076,6 @@ return /******/ (function(modules) { // webpackBootstrap } this.body.emitter.emit('_redraw'); } - }, { - key: '_performAddNode', // --------------------------------------- END OF ADD EDGE FUNCTIONS -------------------------------------// @@ -40950,6 +41084,8 @@ return /******/ (function(modules) { // webpackBootstrap /** * Adds a node on the specified location */ + }, { + key: '_performAddNode', value: function _performAddNode(clickData) { var _this5 = this; @@ -40978,14 +41114,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; @@ -41009,14 +41145,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; @@ -41543,6 +41679,7 @@ return /******/ (function(modules) { // webpackBootstrap solver: ['barnesHut', 'forceAtlas2Based', 'repulsion', 'hierarchicalRepulsion'], timestep: [0.5, 0.01, 1, 0.01] }, + //adaptiveTimestep: true global: { locale: ['en', 'nl'] } @@ -41550,7 +41687,6 @@ return /******/ (function(modules) { // webpackBootstrap exports.allOptions = allOptions; exports.configureOptions = configureOptions; - //adaptiveTimestep: true /***/ }, /* 112 */ @@ -41598,13 +41734,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) { @@ -41615,14 +41751,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]; @@ -41677,14 +41813,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; @@ -41716,8 +41852,6 @@ return /******/ (function(modules) { // webpackBootstrap return [maxEnergyNodeId, maxEnergy, dE_dx_max, dE_dy_max]; } - }, { - key: "_getEnergy", /** * calculate the energy of a single node @@ -41725,6 +41859,8 @@ return /******/ (function(modules) { // webpackBootstrap * @returns {*[]} * @private */ + }, { + key: "_getEnergy", value: function _getEnergy(m) { var nodesArray = this.body.nodeIndices; var nodes = this.body.nodes; @@ -41747,8 +41883,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 @@ -41758,6 +41892,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; @@ -41793,14 +41929,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; @@ -41813,14 +41949,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; @@ -41883,8 +42019,8 @@ return /******/ (function(modules) { // webpackBootstrap // put the weights for the edges in. This assumes unidirectionality. for (var i = 0; i < edgesArray.length; i++) { var edge = edges[edgesArray[i]]; - if (edge.connected === true) { - // edge has to be connected if it counts to the distances. + // edge has to be connected if it counts to the distances. If it is connected to inner clusters it will crash so we also check if it is in the D_matrix + if (edge.connected === true && D_matrix[edge.fromId] !== undefined && D_matrix[edge.toId] !== undefined) { D_matrix[edge.fromId][edge.toId] = 1; D_matrix[edge.toId][edge.fromId] = 1; } @@ -42550,10 +42686,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; } @@ -42695,8 +42831,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); + } } /** @@ -43202,13 +43338,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) { @@ -43220,14 +43356,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; @@ -43244,25 +43380,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 9e937d41..a34d49ca 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","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","setCustomTimeTitle","title","setCustomTitle","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","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","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","any","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","useBorderWithImage","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","__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","relevantEdgeCount","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","previousHeight","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 +{"version":3,"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","Core","DataStep","DateUtil","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","BackgroundGroup","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","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","resetElements","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","oldData","updatedData","addOrUpdate","oldItem","_updateItem","ids","firstType","returnType","allowedValues","itemIds","itemId","_getItem","order","_sort","_filterFields","resultant","getIds","getDataSet","mappedItems","filteredItem","itemFields","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","oldIds","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","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","setCustomTimeTitle","title","setCustomTitle","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","itemsAlwaysDraggable","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","itemsToDrag","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","itemGroup","lastSelectedGroup","multiselectPerGroup","_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","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","maxMinorChars","parentChanged","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineHeight","minorLineWidth","majorLineHeight","majorLineWidth","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","minorCharWidth","xNext","nextIsMajor","prevWidth","labelMinor","xFirstMajorLabel","MAX","showMinorGrid","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","warnedForOverflow","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","_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","useBorderWithImage","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","physicsChange","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","updatePhysicsData","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","relevantEdgeCount","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","previousHeight","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","_unselectConnectedEdges","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","_addOffsetsToDistribution","_placeNodesByHierarchy","maxDistances","zeroLevelDistance","distances","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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","file":"vis.map"} \ No newline at end of file diff --git a/dist/vis.min.css b/dist/vis.min.css index 554e3b1e..4c4f34be 100644 --- a/dist/vis.min.css +++ b/dist/vis.min.css @@ -1 +1 @@ -.vis-background,.vis-labelset,.vis-timeline{overflow:hidden}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:9pt}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:90pt;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:75pt}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;height:13px;padding:1px;margin:0;pointer-events:none}.vis-panel,.vis-timeline{padding:0;box-sizing:border-box}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:transparent;width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:1pc;width:1pc;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:1pc;width:1pc;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:9pt;margin-top:-9pt}.vis-timeline{position:relative;border:1px solid #bfbfbf;margin:0}.vis-panel{position:absolute;margin:0}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-itemset,.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-itemset{padding:0;margin:0}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-delete{background:url(img/timeline/delete.png) center no-repeat;position:absolute;width:24px;height:24px;top:-4px;right:-24px;cursor:pointer}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:9pt;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;font-color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-color-picker{position:absolute;margin-top:-140px;margin-left:30px;width:293px;height:425px;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;position:absolute;vertical-align:middle}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px} \ No newline at end of file +.vis-background,.vis-labelset,.vis-timeline{overflow:hidden}.vis .overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-active{box-shadow:0 0 10px #86d5f8}.vis [class*=span]{min-height:0;width:auto}div.vis-configuration{position:relative;display:block;float:left;font-size:12px}div.vis-configuration-wrapper{display:block;width:700px}div.vis-configuration.vis-config-option-container{display:block;width:495px;background-color:#fff;border:2px solid #f7f8fa;border-radius:4px;margin-top:20px;left:10px;padding-left:5px}div.vis-configuration.vis-config-button{display:block;width:495px;height:25px;vertical-align:middle;line-height:25px;background-color:#f7f8fa;border:2px solid #ceced0;border-radius:4px;margin-top:20px;left:10px;padding-left:5px;cursor:pointer;margin-bottom:30px}div.vis-configuration.vis-config-button.hover{background-color:#4588e6;border:2px solid #214373;color:#fff}div.vis-configuration.vis-config-item{display:block;float:left;width:495px;height:25px;vertical-align:middle;line-height:25px}div.vis-configuration.vis-config-item.vis-config-s2{left:10px;background-color:#f7f8fa;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s3{left:20px;background-color:#e4e9f0;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-item.vis-config-s4{left:30px;background-color:#cfd8e6;padding-left:5px;border-radius:3px}div.vis-configuration.vis-config-header{font-size:18px;font-weight:700}div.vis-configuration.vis-config-label{width:120px;height:25px;line-height:25px}div.vis-configuration.vis-config-label.vis-config-s3{width:110px}div.vis-configuration.vis-config-label.vis-config-s4{width:100px}div.vis-configuration.vis-config-colorBlock{top:1px;width:30px;height:19px;border:1px solid #444;border-radius:2px;padding:0;margin:0;cursor:pointer}input.vis-configuration.vis-config-checkbox{left:-5px}input.vis-configuration.vis-config-rangeinput{position:relative;top:-5px;width:60px;height:13px;padding:1px;margin:0;pointer-events:none}.vis-panel,.vis-timeline{padding:0;box-sizing:border-box}input.vis-configuration.vis-config-range{-webkit-appearance:none;border:0 solid #fff;background-color:rgba(0,0,0,0);width:300px;height:20px}input.vis-configuration.vis-config-range::-webkit-slider-runnable-track{width:300px;height:5px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-webkit-slider-thumb{-webkit-appearance:none;border:1px solid #14334b;height:17px;width:17px;border-radius:50%;background:#3876c2;background:-moz-linear-gradient(top,#3876c2 0,#385380 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#3876c2),color-stop(100%,#385380));background:-webkit-linear-gradient(top,#3876c2 0,#385380 100%);background:-o-linear-gradient(top,#3876c2 0,#385380 100%);background:-ms-linear-gradient(top,#3876c2 0,#385380 100%);background:linear-gradient(to bottom,#3876c2 0,#385380 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#3876c2', endColorstr='#385380', GradientType=0 );box-shadow:#111927 0 0 1px 0;margin-top:-7px}input.vis-configuration.vis-config-range:focus{outline:0}input.vis-configuration.vis-config-range:focus::-webkit-slider-runnable-track{background:#9d9d9d;background:-moz-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#9d9d9d),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-o-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#9d9d9d 0,#c8c8c8 99%);background:linear-gradient(to bottom,#9d9d9d 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#9d9d9d', endColorstr='#c8c8c8', GradientType=0 )}input.vis-configuration.vis-config-range::-moz-range-track{width:300px;height:10px;background:#dedede;background:-moz-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#dedede),color-stop(99%,#c8c8c8));background:-webkit-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-o-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:-ms-linear-gradient(top,#dedede 0,#c8c8c8 99%);background:linear-gradient(to bottom,#dedede 0,#c8c8c8 99%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#dedede', endColorstr='#c8c8c8', GradientType=0 );border:1px solid #999;box-shadow:#aaa 0 0 3px 0;border-radius:3px}input.vis-configuration.vis-config-range::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}input.vis-configuration.vis-config-range::-ms-track{width:300px;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}input.vis-configuration.vis-config-range::-ms-fill-lower{background:#777;border-radius:10px}input.vis-configuration.vis-config-range::-ms-fill-upper{background:#ddd;border-radius:10px}input.vis-configuration.vis-config-range::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#385380}input.vis-configuration.vis-config-range:focus::-ms-fill-lower{background:#888}input.vis-configuration.vis-config-range:focus::-ms-fill-upper{background:#ccc}.vis-configuration-popup{position:absolute;background:rgba(57,76,89,.85);border:2px solid #f2faff;line-height:30px;height:30px;width:150px;text-align:center;color:#fff;font-size:14px;border-radius:4px;-webkit-transition:opacity .3s ease-in-out;-moz-transition:opacity .3s ease-in-out;transition:opacity .3s ease-in-out}.vis-configuration-popup:after,.vis-configuration-popup:before{left:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}.vis-configuration-popup:after{border-color:rgba(136,183,213,0);border-left-color:rgba(57,76,89,.85);border-width:8px;margin-top:-8px}.vis-configuration-popup:before{border-color:rgba(194,225,245,0);border-left-color:#f2faff;border-width:12px;margin-top:-12px}.vis-timeline{position:relative;border:1px solid #bfbfbf;margin:0}.vis-panel{position:absolute;margin:0}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right,.vis-panel.vis-top{border:1px #bfbfbf}.vis-panel.vis-center,.vis-panel.vis-left,.vis-panel.vis-right{border-top-style:solid;border-bottom-style:solid;overflow:hidden}.vis-panel.vis-bottom,.vis-panel.vis-center,.vis-panel.vis-top{border-left-style:solid;border-right-style:solid}.vis-panel>.vis-content{position:relative}.vis-panel .vis-shadow{position:absolute;width:100%;height:1px;box-shadow:0 0 10px rgba(0,0,0,.8)}.vis-itemset,.vis-labelset,.vis-labelset .vis-label{position:relative;box-sizing:border-box}.vis-panel .vis-shadow.vis-top{top:-1px;left:0}.vis-panel .vis-shadow.vis-bottom{bottom:-1px;left:0}.vis-labelset .vis-label{left:0;top:0;width:100%;color:#4d4d4d;border-bottom:1px solid #bfbfbf}.vis-labelset .vis-label.draggable{cursor:pointer}.vis-labelset .vis-label:last-child{border-bottom:none}.vis-labelset .vis-label .vis-inner{display:inline-block;padding:5px}.vis-labelset .vis-label .vis-inner.vis-hidden{padding:0}.vis-itemset{padding:0;margin:0}.vis-itemset .vis-background,.vis-itemset .vis-foreground{position:absolute;width:100%;height:100%;overflow:visible}.vis-axis{position:absolute;width:100%;height:0;left:0;z-index:1}.vis-foreground .vis-group{position:relative;box-sizing:border-box;border-bottom:1px solid #bfbfbf}.vis-foreground .vis-group:last-child{border-bottom:none}.vis-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}.vis-item{position:absolute;color:#1A1A1A;border-color:#97B0F8;border-width:1px;background-color:#D5DDF6;display:inline-block}.vis-item.vis-point.vis-selected,.vis-item.vis-selected{background-color:#FFF785}.vis-item.vis-selected{border-color:#FFC200;z-index:2}.vis-editable.vis-selected{cursor:move}.vis-item.vis-box{text-align:center;border-style:solid;border-radius:2px}.vis-item.vis-point{background:0 0}.vis-item.vis-dot{position:absolute;padding:0;border-width:4px;border-style:solid;border-radius:4px}.vis-item.vis-range{border-style:solid;border-radius:2px;box-sizing:border-box}.vis-item.vis-background{border:none;background-color:rgba(213,221,246,.4);box-sizing:border-box;padding:0;margin:0}.vis-item .vis-item-overflow{position:relative;width:100%;height:100%;padding:0;margin:0;overflow:hidden}.vis-item.vis-range .vis-item-content{position:relative;display:inline-block}.vis-item.vis-background .vis-item-content{position:absolute;display:inline-block}.vis-item.vis-line{padding:0;position:absolute;width:0;border-left-width:1px;border-left-style:solid}.vis-item .vis-item-content{white-space:nowrap;box-sizing:border-box;padding:5px}.vis-item .vis-delete{background:url(img/timeline/delete.png) center no-repeat;position:absolute;width:24px;height:24px;top:-4px;right:-24px;cursor:pointer}.vis-item.vis-range .vis-drag-left{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;left:-4px;cursor:w-resize}.vis-item.vis-range .vis-drag-right{position:absolute;width:24px;max-width:20%;min-width:2px;height:100%;top:0;right:-4px;cursor:e-resize}.vis-time-axis{position:relative;overflow:hidden}.vis-time-axis.vis-foreground{top:0;left:0;width:100%}.vis-time-axis.vis-background{position:absolute;top:0;left:0;width:100%;height:100%}.vis-time-axis .vis-text{position:absolute;color:#4d4d4d;padding:3px;overflow:hidden;box-sizing:border-box;white-space:nowrap}.vis-time-axis .vis-text.vis-measure{position:absolute;padding-left:0;padding-right:0;margin-left:0;margin-right:0;visibility:hidden}.vis-time-axis .vis-grid.vis-vertical{position:absolute;border-left:1px solid}.vis-time-axis .vis-grid.vis-minor{border-color:#e5e5e5}.vis-time-axis .vis-grid.vis-major{border-color:#bfbfbf}.vis-current-time{background-color:#FF7F6E;width:2px;z-index:1}.vis-custom-time{background-color:#6E94FF;width:2px;cursor:move;z-index:1}div.vis-network div.vis-close,div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-touch-callout:none;-khtml-user-select:none}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-horizontal{position:absolute;width:100%;height:0;border-bottom:1px solid}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-minor{border-color:#e5e5e5}.vis-panel.vis-background.vis-horizontal .vis-grid.vis-major{border-color:#bfbfbf}.vis-data-axis .vis-y-axis.vis-major{width:100%;position:absolute;color:#4d4d4d;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-major.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-minor{position:absolute;width:100%;color:#bebebe;white-space:nowrap}.vis-data-axis .vis-y-axis.vis-minor.vis-measure{padding:0;margin:0;border:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title{position:absolute;color:#4d4d4d;white-space:nowrap;bottom:20px;text-align:center}.vis-data-axis .vis-y-axis.vis-title.vis-measure{padding:0;margin:0;visibility:hidden;width:auto}.vis-data-axis .vis-y-axis.vis-title.vis-left{bottom:0;-webkit-transform-origin:left top;-moz-transform-origin:left top;-ms-transform-origin:left top;-o-transform-origin:left top;transform-origin:left bottom;-webkit-transform:rotate(-90deg);-moz-transform:rotate(-90deg);-ms-transform:rotate(-90deg);-o-transform:rotate(-90deg);transform:rotate(-90deg)}.vis-data-axis .vis-y-axis.vis-title.vis-right{bottom:0;-webkit-transform-origin:right bottom;-moz-transform-origin:right bottom;-ms-transform-origin:right bottom;-o-transform-origin:right bottom;transform-origin:right bottom;-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.vis-legend{background-color:rgba(247,252,255,.65);padding:5px;border:1px solid #b3b3b3;box-shadow:2px 2px 10px rgba(154,154,154,.55)}.vis-legend-text{white-space:nowrap;display:inline-block}.vis-graph-group0{fill:#4f81bd;fill-opacity:0;stroke-width:2px;stroke:#4f81bd}.vis-graph-group1{fill:#f79646;fill-opacity:0;stroke-width:2px;stroke:#f79646}.vis-graph-group2{fill:#8c51cf;fill-opacity:0;stroke-width:2px;stroke:#8c51cf}.vis-graph-group3{fill:#75c841;fill-opacity:0;stroke-width:2px;stroke:#75c841}.vis-graph-group4{fill:#ff0100;fill-opacity:0;stroke-width:2px;stroke:#ff0100}.vis-graph-group5{fill:#37d8e6;fill-opacity:0;stroke-width:2px;stroke:#37d8e6}.vis-graph-group6{fill:#042662;fill-opacity:0;stroke-width:2px;stroke:#042662}.vis-graph-group7{fill:#00ff26;fill-opacity:0;stroke-width:2px;stroke:#00ff26}.vis-graph-group8{fill:#f0f;fill-opacity:0;stroke-width:2px;stroke:#f0f}.vis-graph-group9{fill:#8f3938;fill-opacity:0;stroke-width:2px;stroke:#8f3938}.vis-timeline .vis-fill{fill-opacity:.1;stroke:none}.vis-timeline .vis-bar{fill-opacity:.5;stroke-width:1px}.vis-timeline .vis-point{stroke-width:2px;fill-opacity:1}.vis-timeline .vis-legend-background{stroke-width:1px;fill-opacity:.9;fill:#fff;stroke:#c2c2c2}.vis-timeline .vis-outline{stroke-width:1px;fill-opacity:1;fill:#fff;stroke:#e5e5e5}.vis-timeline .vis-icon-fill{fill-opacity:.3;stroke:none}div.vis-network div.vis-manipulation{border-width:0;border-bottom:1px;border-style:solid;border-color:#d6d9d8;background:#fff;background:-moz-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(48%,#fcfcfc),color-stop(50%,#fafafa),color-stop(100%,#fcfcfc));background:-webkit-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-o-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:-ms-linear-gradient(top,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);background:linear-gradient(to bottom,#fff 0,#fcfcfc 48%,#fafafa 50%,#fcfcfc 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#fcfcfc', GradientType=0 );padding-top:4px;position:absolute;left:0;top:0;width:100%;height:28px}div.vis-network div.vis-edit-mode{position:absolute;left:0;top:5px;height:30px}div.vis-network div.vis-close{position:absolute;right:0;top:0;width:30px;height:30px;background-position:20px 3px;background-repeat:no-repeat;background-image:url(img/network/cross.png);user-select:none}div.vis-network div.vis-close:hover{opacity:.6}div.vis-network div.vis-edit-mode div.vis-button,div.vis-network div.vis-manipulation div.vis-button{float:left;font-family:verdana;font-size:12px;-moz-border-radius:15px;border-radius:15px;display:inline-block;background-position:0 0;background-repeat:no-repeat;height:24px;margin-left:10px;padding:0 8px;user-select:none}div.vis-network div.vis-manipulation div.vis-button:hover{box-shadow:1px 1px 8px rgba(0,0,0,.2)}div.vis-network div.vis-manipulation div.vis-button:active{box-shadow:1px 1px 8px rgba(0,0,0,.5)}div.vis-network div.vis-manipulation div.vis-button.vis-back{background-image:url(img/network/backIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-none:hover{box-shadow:1px 1px 8px transparent;cursor:default}div.vis-network div.vis-manipulation div.vis-button.vis-none:active{box-shadow:1px 1px 8px transparent}div.vis-network div.vis-manipulation div.vis-button.vis-none{padding:0}div.vis-network div.vis-manipulation div.notification{margin:2px;font-weight:700}div.vis-network div.vis-manipulation div.vis-button.vis-add{background-image:url(img/network/addNodeIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit,div.vis-network div.vis-manipulation div.vis-button.vis-edit{background-image:url(img/network/editIcon.png)}div.vis-network div.vis-edit-mode div.vis-button.vis-edit.vis-edit-mode{background-color:#fcfcfc;border:1px solid #ccc}div.vis-network div.vis-manipulation div.vis-button.vis-connect{background-image:url(img/network/connectIcon.png)}div.vis-network div.vis-manipulation div.vis-button.vis-delete{background-image:url(img/network/deleteIcon.png)}div.vis-network div.vis-edit-mode div.vis-label,div.vis-network div.vis-manipulation div.vis-label{margin:0 0 0 23px;line-height:25px}div.vis-network div.vis-manipulation div.vis-separator-line{float:left;display:inline-block;width:1px;height:21px;background-color:#bdbdbd;margin:0 7px 0 15px}div.vis-network-tooltip{position:absolute;visibility:hidden;padding:5px;white-space:nowrap;font-family:verdana;font-size:14px;font-color:#000;background-color:#f5f4ed;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;border:1px solid #808074;box-shadow:3px 3px 10px rgba(0,0,0,.2);pointer-events:none}div.vis-network div.vis-navigation div.vis-button{width:34px;height:34px;-moz-border-radius:17px;border-radius:17px;position:absolute;display:inline-block;background-position:2px 2px;background-repeat:no-repeat;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div.vis-network div.vis-navigation div.vis-button:hover{box-shadow:0 0 3px 3px rgba(56,207,21,.3)}div.vis-network div.vis-navigation div.vis-button:active{box-shadow:0 0 1px 3px rgba(56,207,21,.95)}div.vis-network div.vis-navigation div.vis-button.vis-up{background-image:url(img/network/upArrow.png);bottom:50px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-down{background-image:url(img/network/downArrow.png);bottom:10px;left:55px}div.vis-network div.vis-navigation div.vis-button.vis-left{background-image:url(img/network/leftArrow.png);bottom:10px;left:15px}div.vis-network div.vis-navigation div.vis-button.vis-right{background-image:url(img/network/rightArrow.png);bottom:10px;left:95px}div.vis-network div.vis-navigation div.vis-button.vis-zoomIn{background-image:url(img/network/plus.png);bottom:10px;right:15px}div.vis-network div.vis-navigation div.vis-button.vis-zoomOut{background-image:url(img/network/minus.png);bottom:10px;right:55px}div.vis-network div.vis-navigation div.vis-button.vis-zoomExtends{background-image:url(img/network/zoomExtends.png);bottom:50px;right:15px}div.vis-color-picker{position:absolute;margin-top:-140px;margin-left:30px;width:293px;height:425px;padding:10px;border-radius:15px;background-color:#fff;display:none;box-shadow:rgba(0,0,0,.5) 0 0 10px 0}div.vis-color-picker div.vis-arrow{position:absolute;top:147px;left:5px}div.vis-color-picker div.vis-arrow:after,div.vis-color-picker div.vis-arrow:before{right:100%;top:50%;border:solid transparent;content:" ";height:0;width:0;position:absolute;pointer-events:none}div.vis-color-picker div.vis-arrow:after{border-color:rgba(255,255,255,0);border-right-color:#fff;border-width:30px;margin-top:-30px}div.vis-color-picker div.vis-color{position:absolute;width:289px;height:289px;cursor:pointer}div.vis-color-picker div.vis-brightness{position:absolute;top:313px}div.vis-color-picker div.vis-opacity{position:absolute;top:350px}div.vis-color-picker div.vis-selector{position:absolute;top:137px;left:137px;width:15px;height:15px;border-radius:15px;border:1px solid #fff;background:#4c4c4c;background:-moz-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#4c4c4c),color-stop(12%,#595959),color-stop(25%,#666),color-stop(39%,#474747),color-stop(50%,#2c2c2c),color-stop(51%,#000),color-stop(60%,#111),color-stop(76%,#2b2b2b),color-stop(91%,#1c1c1c),color-stop(100%,#131313));background:-webkit-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-o-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:-ms-linear-gradient(top,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);background:linear-gradient(to bottom,#4c4c4c 0,#595959 12%,#666 25%,#474747 39%,#2c2c2c 50%,#000 51%,#111 60%,#2b2b2b 76%,#1c1c1c 91%,#131313 100%);filter:progid:DXImageTransform.Microsoft.gradient( startColorstr='#4c4c4c', endColorstr='#131313', GradientType=0 )}div.vis-color-picker div.vis-initial-color,div.vis-color-picker div.vis-new-color{width:140px;height:20px;top:380px;font-size:10px;color:rgba(0,0,0,.4);line-height:20px;position:absolute;vertical-align:middle}div.vis-color-picker div.vis-new-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:159px;text-align:right;padding-right:2px}div.vis-color-picker div.vis-initial-color{border:1px solid rgba(0,0,0,.1);border-radius:5px;left:10px;text-align:left;padding-left:2px}div.vis-color-picker div.vis-label{position:absolute;width:300px;left:10px}div.vis-color-picker div.vis-label.vis-brightness{top:300px}div.vis-color-picker div.vis-label.vis-opacity{top:338px}div.vis-color-picker div.vis-button{position:absolute;width:68px;height:25px;border-radius:10px;vertical-align:middle;text-align:center;line-height:25px;top:410px;border:2px solid #d9d9d9;background-color:#f7f7f7;cursor:pointer}div.vis-color-picker div.vis-button.vis-cancel{left:5px}div.vis-color-picker div.vis-button.vis-load{left:82px}div.vis-color-picker div.vis-button.vis-apply{left:159px}div.vis-color-picker div.vis-button.vis-save{left:236px}div.vis-color-picker input.vis-range{width:290px;height:20px} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 6fc4277b..763d4f19 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 4.9.0 - * @date 2015-10-01 + * @version 4.10.0 + * @date 2015-11-27 * * @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 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.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var o=this._options.type[i];"Date"==o||"ISODate"==o||"ASPDate"==o?this._type[i]="Date":this._type[i]=o}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var n=i(1),s=i(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.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,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=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.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},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&&(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._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&&(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=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&&(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||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&&(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*Math.min(this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight);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},useBorderWithImage:{"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;ai;i++)if(t[i]!=e[i])return!1;return!0},e.convert=function(t,i){var n;if(void 0!==t){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.styles&&a.setAttributeNS(null,"style",o.styles),a.setAttributeNS(null,"class",o.className+" vis-point"),r){var h=e.getSVGElement("text",n,s);r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" vis-label"),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i)}return a},e.drawBar=function(t,i,o,n,s,r,a,h){if(0!=n){0>n&&(n*=-1,i-=n);var d=e.getSVGElement("rect",r,a);d.setAttributeNS(null,"x",t-.5*o),d.setAttributeNS(null,"y",i),d.setAttributeNS(null,"width",o),d.setAttributeNS(null,"height",n),d.setAttributeNS(null,"class",s),h&&d.setAttributeNS(null,"style",h)}}},function(t,e,i){function o(t,e){if(t&&!Array.isArray(t)&&(e=t,t=null),this._options=e||{},this._data={},this.length=0,this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i=Object.keys(this._options.type),o=0,n=i.length;n>o;o++){var s=i[o],r=this._options.type[s];"Date"==r||"ISODate"==r||"ASPDate"==r?this._type[s]="Date":this._type[s]=r}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,s=o.length;s>n;n++){var r=o[n];r.callback&&r.callback(t,e,i||null)}},o.prototype.add=function(t,e){var i,o=[],n=this;if(Array.isArray(t))for(var s=0,r=t.length;r>s;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=[],s=[],r=[],a=this,h=a._fieldId,d=function(t){var e=t[h];if(a._data[e]){var d=n.extend({},a._data[e]);e=a._updateItem(t),o.push(e),r.push(t),s.push(d)}else e=a._addItem(t),i.push(e)};if(Array.isArray(t))for(var l=0,u=t.length;u>l;l++)d(t[l]);else{if(!(t instanceof Object))throw new Error("Unknown dataType");d(t)}if(i.length&&this._trigger("add",{items:i},e),o.length){var c={items:o,oldData:s,data:r};this._trigger("update",c,e)}return 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,f=o&&o.type||this._options.type,m=o&&o.filter,v=[];if(void 0!=e)d=s._getItem(e,f),m&&!m(d)&&(d=null);else if(void 0!=i)for(c=0,p=i.length;p>c;c++)d=s._getItem(i[c],f),(!m||m(d))&&v.push(d);else for(l=Object.keys(this._data),c=0,p=l.length;p>c;c++)u=l[c],d=s._getItem(u,f),(!m||m(d))&&v.push(d);if(o&&o.order&&void 0==e&&this._sort(v,o.order),o&&o.fields){var g=o.fields;if(void 0!=e)d=this._filterFields(d,g);else for(c=0,p=v.length;p>c;c++)v[c]=this._filterFields(v[c],g)}if("Object"==a){var y,b={};for(c=0,p=v.length;p>c;c++)y=v[c],b[y.id]=y;return b}return void 0!=e?d:v},o.prototype.getIds=function(t){var e,i,o,n,s,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=Object.keys(r),u=[];if(a)if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&s.push(n);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=this._getItem(o,d),a(n)&&u.push(n[this._fieldId]);else if(h){for(s=[],e=0,i=l.length;i>e;e++)o=l[e],s.push(r[o]);for(this._sort(s,h),e=0,i=s.length;i>e;e++)u.push(s[e][this._fieldId])}else for(e=0,i=l.length;i>e;e++)o=l[e],n=r[o],u.push(n[this._fieldId]);return u},o.prototype.getDataSet=function(){return this},o.prototype.forEach=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=this._data,d=Object.keys(h);if(e&&e.order){var l=this.get(e);for(i=0,o=l.length;o>i;i++)n=l[i],s=n[this._fieldId],t(n,s)}else for(i=0,o=d.length;o>i;i++)s=d[i],n=this._getItem(s,a),(!r||r(n))&&t(n,s)},o.prototype.map=function(t,e){var i,o,n,s,r=e&&e.filter,a=e&&e.type||this._options.type,h=[],d=this._data,l=Object.keys(d);for(i=0,o=l.length;o>i;i++)n=l[i],s=this._getItem(n,a),(!r||r(s))&&h.push(t(s,n));return e&&e.order&&this._sort(h,e.order),h},o.prototype._filterFields=function(t,e){if(!t)return t;var i,o,n={},s=Object.keys(t),r=s.length;if(Array.isArray(e))for(i=0;r>i;i++)o=s[i],-1!=e.indexOf(o)&&(n[o]=t[o]);else for(i=0;r>i;i++)o=s[i],e.hasOwnProperty(o)&&(n[e[o]]=t[o]);return n},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,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||d>r)&&(s=h,r=d)}return s},o.prototype.min=function(t){var e,i,o=this._data,n=Object.keys(o),s=null,r=null;for(e=0,i=n.length;i>e;e++){var a=n[e],h=o[a],d=h[t];null!=d&&(!s||r>d)&&(s=h,r=d)}return s},o.prototype.distinct=function(t){var e,i,o,s=this._data,r=Object.keys(s),a=[],h=this._options.type&&this._options.type[t]||null,d=0;for(e=0,o=r.length;o>e;e++){var l=r[e],u=s[l],c=u[t],p=!1;for(i=0;d>i;i++)if(a[i]==c){p=!0;break}p||void 0===c||(a[d]=c,d++)}if(h)for(e=0,o=a.length;o>e;e++)a[e]=n.convert(a[e],h);return a},o.prototype._addItem=function(t){var e=t[this._fieldId];if(void 0!=e){if(this._data[e])throw new Error("Cannot add item: item with id "+e+" already exists")}else e=n.randomUUID(),t[this._fieldId]=e;var i,o,s={},r=Object.keys(t);for(i=0,o=r.length;o>i;i++){var a=r[i],h=this._type[a];s[a]=n.convert(t[a],h)}return this._data[e]=s,this.length++,e},o.prototype._getItem=function(t,e){var i,o,s,r,a=this._data[t];if(!a)return null;var h={},d=Object.keys(a);if(e)for(s=0,r=d.length;r>s;s++)i=d[s],o=a[i],h[i]=n.convert(o,e[i]);else for(s=0,r=d.length;r>s;s++)i=d[s],o=a[i],h[i]=o;return h},o.prototype._updateItem=function(t){var e=t[this._fieldId];if(void 0==e)throw new Error("Cannot update item: item has no id (item: "+JSON.stringify(t)+")");var i=this._data[e];if(!i)throw new Error("Cannot update item: no item with id "+e+" found");for(var o=Object.keys(t),s=0,r=o.length;r>s;s++){var a=o[s],h=this._type[a];i[a]=n.convert(t[a],h)}return e},t.exports=o},function(t,e){function i(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}i.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},i.extend=function(t,e){var o=new i(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){o.flush()};var n=[{name:"flush",original:void 0}];if(e&&e.replace)for(var s=0;sthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},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,n;if(this._data&&(this._data.off&&this._data.off("*",this.listener),e=Object.keys(this._ids),this._ids={},this.length=0,this._trigger("remove",{items:e})),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}),o=0,n=e.length;n>o;o++)i=e[o],this._ids[i]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},o.prototype.refresh=function(){var t,e,i,o=this._data.getIds({filter:this._options&&this._options.filter}),n=Object.keys(this._ids),s={},r=[],a=[];for(e=0,i=o.length;i>e;e++)t=o[e],s[t]=!0,this._ids[t]||(r.push(t),this._ids[t]=!0);for(e=0,i=n.length;i>e;e++)t=n[e],s[t]||(a.push(t),delete this._ids[t]);this.length+=r.length-a.length,r.length&&this._trigger("add",{items:r}),a.length&&this._trigger("remove",{items:a})},o.prototype.get=function(t){var e,i,o,s=this,r=n.getType(arguments[0]);"String"==r||"Number"==r||"Array"==r?(e=arguments[0],i=arguments[1],o=arguments[2]):(i=arguments[0],o=arguments[1]);var a=n.extend({},this._options,i);this._options.filter&&i&&i.filter&&(a.filter=function(t){return s._options.filter(t)&&i.filter(t)});var h=[];return void 0!=e&&h.push(e),h.push(a),h.push(o),this._data&&this._data.get.apply(this._data,h)},o.prototype.getIds=function(t){var e;if(this._data){var i,o=this._options.filter;i=t&&t.filter?o?function(e){return o(e)&&t.filter(e)}:t.filter:o,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},o.prototype.getDataSet=function(){for(var t=this;t instanceof o;)t=t._data;return t||null},o.prototype._onEvent=function(t,e,i){ +var o,n,s,r,a=e&&e.items,h=this._data,d=[],l=[],u=[],c=[];if(a&&h){switch(t){case"add":for(o=0,n=a.length;n>o;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?this.values[this.index]:void 0},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.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,i,o){if(o&&!Array.isArray(o))return e.convertHiddenOptions(t,i,[o]);if(i.hiddenDates=[],o&&1==Array.isArray(o)){for(var n=0;n=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.setCustomTimeTitle=function(t,e){var i=this.customTimes.filter(function(t){return t.options.id===e});if(0===i.length)throw new Error("No custom time bar found with id "+JSON.stringify(e));return i.length>0?i[0].setCustomTitle(t):void 0},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){var s=this.itemsData.get(e.id).group,r=void 0;this.options.multiselectPerGroup&&i.length>0&&(r=this.itemsData.get(i[0]).group),this.options.multiselectPerGroup&&void 0!=r&&r!=s||i.push(e.id);var a=o._getItemRange(this.itemsData.get(i,this.itemOptions));if(!this.options.multiselectPerGroup||r==s){i=[];for(var h in this.items)if(this.items.hasOwnProperty(h)){var d=this.items[h],l=d.data.start,u=void 0!==d.data.end?d.data.end:l;!(l>=a.min&&u<=a.max)||this.options.multiselectPerGroup&&r!=this.itemsData.get(d.id).group||d instanceof m||i.push(d.id)}}}else{var c=i.indexOf(e.id);-1==c?i.push(e.id):i.splice(c,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,maxMinorChars:7,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","maxMinorChars","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((this.props.minorCharWidth||10)*this.options.maxMinorChars).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 l=this.dom;l.redundant.lines=l.lines,l.redundant.majorTexts=l.majorTexts,l.redundant.minorTexts=l.minorTexts,l.lines=[],l.majorTexts=[],l.minorTexts=[];var u,c,p,f,m,v,g,y,b,w,_=0,x=void 0,k=0,O=1e3;for(h.start(),c=h.getCurrent(),f=this.body.util.toScreen(c);h.hasNext()&&O>k;){k++,m=h.isMajor(),w=h.getClassName(),b=h.getLabelMinor(),u=c,p=f,h.next(),c=h.getCurrent(),v=h.isMajor(),f=this.body.util.toScreen(c),g=_,_=f-p;var D=_>=.4*g;if(this.options.showMinorLabels&&D){var M=this._repaintMinorText(p,b,t,w);M.style.width=_+"px"}m&&this.options.showMajorLabels?(p>0&&(void 0==x&&(x=p),M=this._repaintMajorText(p,h.getLabelMajor(),t,w)),y=this._repaintMajorLine(p,_,t,w)):D?y=this._repaintMinorLine(p,_,t,w):y&&(y.style.width=parseInt(y.style.width)+_+"px")}if(k!==O||d||(console.warn("Something is wrong with the Timeline scale. Limited drawing of grid lines to "+O+" lines."),d=!0),this.options.showMajorLabels){var C=this.body.util.toTime(0),T=h.getLabelMajor(C),E=T.length*(this.props.majorCharWidth||10)+10;(void 0==x||x>E)&&this._repaintMajorText(0,T,t,w)}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};var d=!1;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.resetElements(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){t.color=B.deepExtend({},t.color,!0);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(t.color=v.deepExtend({},t.color,!0),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.options.fixed.x===!1&&(l.x=o.x),l.options.fixed.y===!1&&(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;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;if(void 0===h)return;return h.call(r)}var d=Object.getPrototypeOf(n);if(null===d)return;t=d,e=s,i=r,o=!0,a=d=void 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*Math.min(this.frame.canvas.width/this.pixelRatio/this.cameraState.previousWidth,this.frame.canvas.height/this.pixelRatio/this.cameraState.previousHeight);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],this._unselectConnectedEdges(t)):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]}},{key:"_getSelectedEdge",value:function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t]}},{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._addOffsetsToDistribution(n),this._placeNodesByHierarchy(n)}}},{key:"_addOffsetsToDistribution",value:function(t){var e=0;for(var i in t)t.hasOwnProperty(i)&&e0&&(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)),i[a].distance=s.x+this.nodeSpacing,this.positionedNodes[s.id]=!0):(void 0===s.y&&(s.y=Math.max(i[a].distance)),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},useBorderWithImage:{"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;aObject | Array Get a single item, multiple items, or all items from the DataSet. - Usage examples can be found in section Getting Data, and the available options are described in section Data Selection. + Usage examples can be found in section Getting Data, and the available options are described in section Data Selection. When no item is found, null is returned when a single item was requested, and and empty Array is returned in case of multiple id's. @@ -598,9 +598,9 @@ function (event, properties, senderId) { update, and remove, properties is always an object containing a property items, which contains an array with the ids of the affected - items. The update event has an extra field data - containing the original data of the updated items, i.e. the gives the - changed fields of the changed items. + items. The update event has an extra field oldData + containing the original data of the updated items, and a field data + containing the changes: the properties of the items that are being updated. diff --git a/docs/data/dataview.html b/docs/data/dataview.html index bdbd25a1..9a98f7f2 100644 --- a/docs/data/dataview.html +++ b/docs/data/dataview.html @@ -248,7 +248,7 @@ var data = new vis.DataView(dataset, options) Object | Array Get a single item, multiple items, or all items from the DataView. - Usage examples can be found in section Getting Data, and the available options are described in section Data Selection. + Usage examples can be found in section Getting Data, and the available options are described in section Data Selection. When no item is found, null is returned when a single item was requested, and and empty Array is returned in case of multiple id's. diff --git a/docs/graph2d/index.html b/docs/graph2d/index.html index eb1db203..630b3440 100644 --- a/docs/graph2d/index.html +++ b/docs/graph2d/index.html @@ -927,6 +927,16 @@ function (option, path) { Specifies the maximum height for the Timeline. Can be a number in pixels or a string like "300px". + + maxMinorChars + number + 7 + + Specifies the maximum number of characters that should fit in minor grid labels. + If larger, less and wider grids will be drawn. + + + min Date or Number or String @@ -997,22 +1007,6 @@ function (option, path) { visible. - - showMajorLines - Boolean - true - By default, the timeline shows both minor and major date lines on the - time axis. You can use this option to hide the lines from the major dates. - - - - showMinorLines - Boolean - true - By default, the timeline shows both minor and major date lines on the - time axis. You can use this option to hide the lines from the minor dates. - - start Date or Number or String diff --git a/docs/network/index.html b/docs/network/index.html index df4f6c97..4878c6aa 100644 --- a/docs/network/index.html +++ b/docs/network/index.html @@ -940,6 +940,28 @@ function releaseFunction (clusterPosition, containedNodesPositions) { before selecting its own objects. Does not fire events. + + setSelection( + Object selection, + [Object options]) + + + Returns: none + Sets the selection, wich must be an object like this: +
+{
+  nodes: [Array of nodeIds],
+  edges: [Array of edgeIds]
+}
+ You can also pass only nodes or edges in selection object. + Available options are: +
+{
+  unselectAll: Boolean,
+  highlightEdges: Boolean
+}
+ + unselectAll() diff --git a/docs/timeline/index.html b/docs/timeline/index.html index 92823b52..94da630f 100644 --- a/docs/timeline/index.html +++ b/docs/timeline/index.html @@ -115,7 +115,7 @@

Example

The following code shows how to create a Timeline and provide it with data. - More examples can be found in the examples directory. + More examples can be found in the timeline examples page.

<!DOCTYPE HTML>
@@ -666,6 +666,14 @@ function (option, path) {
         and set repeat to weekly.
       
     
+
+    
+      itemsAlwaysDraggable
+      boolean
+      false
+      If true, all items in the Timeline are draggable without being selected. If false, only the selected item(s) are draggable.
+    
+
     
       locale
       String
@@ -734,6 +742,16 @@ function (option, path) {
       Specifies the maximum height for the Timeline. Can be a number in pixels or a string like "300px".
     
 
+    
+      maxMinorChars
+      number
+      7
+      
+        Specifies the maximum number of characters that should fit in minor grid labels.
+        If larger, less and wider grids will be drawn.
+      
+    
+
     
       min
       Date or Number or String or Moment
@@ -769,6 +787,16 @@ function (option, path) {
         Only applicable when option selectable is true.
       
     
+    
+    
+      multiselectPerGroup
+      boolean
+      false
+      
+        If true, selecting multiple items using shift+click will only select items residing in the same group as the first selected item.
+        Only applicable when option selectable and multiselect are true.
+      
+    
 
     
       onAdd
diff --git a/download/vis.zip b/download/vis.zip
index 6c79f104..bf1d3907 100644
Binary files a/download/vis.zip and b/download/vis.zip differ
diff --git a/examples/network/other/clusteringByZoom.html b/examples/network/other/clusteringByZoom.html
index 40ccf8cc..f7f8fa5a 100644
--- a/examples/network/other/clusteringByZoom.html
+++ b/examples/network/other/clusteringByZoom.html
@@ -72,7 +72,7 @@ Stabilize when clustering:
         nodes: nodes,
         edges: edges
     };
-    var options = {layout: {randomSeed: 8}};
+    var options = {layout: {randomSeed: 8}, physics:{adaptiveTimestep:false}};
     var network = new vis.Network(container, data, options);
 
     // set the first initial zoom level
@@ -125,6 +125,8 @@ Stabilize when clustering:
         }
         network.clusterOutliers(clusterOptionsByData);
         if (document.getElementById('stabilizeCheckbox').checked === true) {
+            // since we use the scale as a unique identifier, we do NOT want to fit after the stabilization
+            network.setOptions({physics:{stabilization:{fit: false}}});
             network.stabilize();
         }
     }
@@ -145,6 +147,8 @@ Stabilize when clustering:
         }
         clusters = newClusters;
         if (declustered === true && document.getElementById('stabilizeCheckbox').checked === true) {
+            // since we use the scale as a unique identifier, we do NOT want to fit after the stabilization
+            network.setOptions({physics:{stabilization:{fit: false}}});
             network.stabilize();
         }
     }
diff --git a/index.html b/index.html
index f2671336..baf53825 100644
--- a/index.html
+++ b/index.html
@@ -28,7 +28,7 @@
 
     
 
-    
+