diff --git a/dist/vis.js b/dist/vis.js index b42c66a1..95c66084 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 3.11.0 - * @date 2015-03-05 + * @version 3.12.0 + * @date 2015-04-07 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -6530,7 +6530,7 @@ return /******/ (function(modules) { // webpackBootstrap autoResize: true, - orientation: 'bottom', // 'bottom', 'top', or 'both' + orientation: 'bottom', // axis orientation: 'bottom', 'top', or 'both' width: null, height: null, maxHeight: null, @@ -9408,6 +9408,11 @@ return /******/ (function(modules) { // webpackBootstrap * @param {Object} data */ Item.prototype.setData = function(data) { + var groupChanged = data.group != undefined && this.data.group != data.group; + if (groupChanged) { + this.parent.itemSet._moveToGroup(this, data.group); + } + this.data = data; this.dirty = true; if (this.displayed) this.redraw(); @@ -9494,8 +9499,9 @@ return /******/ (function(modules) { // webpackBootstrap Hammer(deleteButton, { preventDefault: true }).on('tap', function (event) { - me.parent.removeFromDataSet(me); + event.preventDefault(); event.stopPropagation(); + me.parent.removeFromDataSet(me); }); anchor.appendChild(deleteButton); @@ -12118,7 +12124,7 @@ return /******/ (function(modules) { // webpackBootstrap height = max + margin.item.vertical / 2; } else { - height = margin.axis + margin.item.vertical; + height = 0; } height = Math.max(height, this.props.label.height); @@ -12545,7 +12551,7 @@ return /******/ (function(modules) { // webpackBootstrap this.defaultOptions = { type: null, // 'box', 'point', 'range', 'background' - orientation: 'bottom', // 'top' or 'bottom' + orientation: 'bottom', // item orientation: 'top' or 'bottom' align: 'auto', // alignment of box items stack: true, groupOrder: null, @@ -12790,9 +12796,18 @@ return /******/ (function(modules) { // webpackBootstrap ItemSet.prototype.setOptions = function(options) { if (options) { // copy all options that we know - var fields = ['type', 'align', 'orientation', 'order', 'padding', 'stack', 'selectable', 'groupOrder', 'dataAttributes', 'template','hide', 'snap']; + var fields = ['type', 'align', 'order', 'padding', 'stack', 'selectable', 'groupOrder', 'dataAttributes', 'template','hide', 'snap']; util.selectiveExtend(fields, this.options, options); + if ('orientation' in options) { + if (typeof options.orientation === 'string') { + this.options.orientation = options.orientation; + } + else if (typeof options.orientation === 'object' && 'item' in options.orientation) { + this.options.orientation = options.orientation.item; + } + } + if ('margin' in options) { if (typeof options.margin === 'number') { this.options.margin.axis = options.margin; @@ -13622,31 +13637,21 @@ return /******/ (function(modules) { // webpackBootstrap if (dragLeftItem) { props = { item: dragLeftItem, - initialX: event.gesture.center.clientX + initialX: event.gesture.center.pageX, + dragLeft: true, + data: util.extend({}, item.data) // clone the items data }; - if (me.options.editable.updateTime) { - props.start = item.data.start.valueOf(); - } - if (me.options.editable.updateGroup) { - if ('group' in item.data) props.group = item.data.group; - } - this.touchParams.itemProps = [props]; } else if (dragRightItem) { props = { item: dragRightItem, - initialX: event.gesture.center.clientX + initialX: event.gesture.center.pageX, + dragRight: true, + data: util.extend({}, item.data) // clone the items data }; - if (me.options.editable.updateTime) { - props.end = item.data.end.valueOf(); - } - if (me.options.editable.updateGroup) { - if ('group' in item.data) props.group = item.data.group; - } - this.touchParams.itemProps = [props]; } else { @@ -13654,24 +13659,10 @@ return /******/ (function(modules) { // webpackBootstrap var item = me.items[id]; var props = { item: item, - initialX: event.gesture.center.clientX + initialX: event.gesture.center.pageX, + data: util.extend({}, item.data) // clone the items data }; - if (me.options.editable.updateTime) { - if ('start' in item.data) { - props.start = item.data.start.valueOf(); - - if ('end' in item.data) { - // we store a duration here in order not to change the width - // of the item when moving it. - props.duration = item.data.end.valueOf() - props.start; - } - } - } - if (me.options.editable.updateGroup) { - if ('group' in item.data) props.group = item.data.group; - } - return props; }); } @@ -13716,12 +13707,14 @@ return /******/ (function(modules) { // webpackBootstrap var newItem = new RangeItem(itemData, this.conversion, this.options); newItem.id = id; // TODO: not so nice setting id afterwards + newItem.data = itemData; this._addItem(newItem); var props = { item: newItem, - end: end.valueOf(), - initialX: event.gesture.center.clientX + dragRight: true, + initialX: event.gesture.center.pageX, + data: util.extend({}, itemData) }; this.touchParams.itemProps = [props]; @@ -13737,6 +13730,8 @@ return /******/ (function(modules) { // webpackBootstrap event.preventDefault(); if (this.touchParams.itemProps) { + event.stopPropagation(); + var me = this; var snap = this.options.snap || null; var xOffset = this.body.dom.root.offsetLeft + this.body.domProps.left.width; @@ -13745,65 +13740,69 @@ return /******/ (function(modules) { // webpackBootstrap // move this.touchParams.itemProps.forEach(function (props) { - var newProps = {}; - var current = me.body.util.toTime(event.gesture.center.clientX - xOffset); + var current = me.body.util.toTime(event.gesture.center.pageX - xOffset); var initial = me.body.util.toTime(props.initialX - xOffset); var offset = current - initial; - if ('start' in props) { - var start = new Date(props.start + offset); - newProps.start = snap ? snap(start, scale, step) : start; - } + var itemData = util.extend({}, props.item.data); // clone the data - if ('end' in props) { - var end = new Date(props.end + offset); - newProps.end = snap ? snap(end, scale, step) : end; - } - else if ('duration' in props) { - newProps.end = new Date(newProps.start.valueOf() + props.duration); + if (me.options.editable.updateTime) { + if (props.dragLeft) { + // drag left side of a range item + if (itemData.start != undefined) { + var initialStart = util.convert(props.data.start, 'Date'); + var start = new Date(initialStart.valueOf() + offset); + itemData.start = snap ? snap(start, scale, step) : start; + } + } + else if (props.dragRight) { + // drag right side of a range item + if (itemData.end != undefined) { + var initialEnd = util.convert(props.data.end, 'Date'); + var end = new Date(initialEnd.valueOf() + offset); + itemData.end = snap ? snap(end, scale, step) : end; + } + } + else { + // drag both start and end + if (itemData.start != undefined) { + var initialStart = util.convert(props.data.start, 'Date').valueOf(); + var start = new Date(initialStart + offset); + + if (itemData.end != undefined) { + var initialEnd = util.convert(props.data.end, 'Date'); + var duration = initialEnd.valueOf() - initialStart.valueOf(); + + itemData.start = snap ? snap(start, scale, step) : start; + itemData.end = new Date(itemData.start.valueOf() + duration); + } + else { + itemData.start = snap ? snap(start, scale, step) : start; + } + } + } } - if ('group' in props) { - // drag from one group to another - var group = me.groupFromTarget(event); - newProps.group = group && group.groupId; + if (me.options.editable.updateGroup && (!props.dragLeft && !props.dragRight)) { + if (itemData.group != undefined) { + // drag from one group to another + var group = me.groupFromTarget(event); + if (group) { + itemData.group = group.groupId; + } + } } // confirm moving the item - var itemData = util.extend({}, props.item.data, newProps); me.options.onMoving(itemData, function (itemData) { if (itemData) { - me._updateItemProps(props.item, itemData); + props.item.setData(itemData); } }); }); this.stackDirty = true; // force re-stacking of all items next redraw this.body.emitter.emit('change'); - - event.stopPropagation(); - } - }; - - /** - * Update an items properties - * @param {Item} item - * @param {Object} props Can contain properties start, end, and group. - * @private - */ - ItemSet.prototype._updateItemProps = function(item, props) { - // TODO: copy all properties from props to item? (also new ones) - if ('start' in props) { - item.data.start = props.start; - } - if ('end' in props) { - item.data.end = props.end; - } - else if ('duration' in props) { - item.data.end = new Date(props.start.valueOf() + props.duration); - } - if ('group' in props && item.data.group != props.group) { - this._moveToGroup(item, props.group) } }; @@ -13832,9 +13831,11 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ ItemSet.prototype._onDragEnd = function (event) { - event.preventDefault() + event.preventDefault(); if (this.touchParams.itemProps) { + event.stopPropagation(); + // prepare a change set for the changed items var changes = []; var me = this; @@ -13844,9 +13845,9 @@ return /******/ (function(modules) { // webpackBootstrap this.touchParams.itemProps = null; itemProps.forEach(function (props) { var id = props.item.id; - var itemData = me.itemsData.get(id, me.itemOptions); + var exists = me.itemsData.get(id, me.itemOptions) != null; - if (!itemData) { + if (!exists) { // add a new item me.options.onAdd(props.item.data, function (itemData) { me._removeItem(props.item); // remove temporary item @@ -13861,39 +13862,21 @@ return /******/ (function(modules) { // webpackBootstrap } else { // update existing item - var changed = false; - if ('start' in props.item.data) { - changed = (props.start != props.item.data.start.valueOf()); - itemData.start = util.convert(props.item.data.start, - dataset._options.type && dataset._options.type.start || 'Date'); - } - if ('end' in props.item.data) { - changed = changed || (props.end != props.item.data.end.valueOf()); - itemData.end = util.convert(props.item.data.end, - dataset._options.type && dataset._options.type.end || 'Date'); - } - if ('group' in props.item.data) { - changed = changed || (props.group != props.item.data.group); - itemData.group = props.item.data.group; - } - - // only apply changes when start or end is actually changed - if (changed) { - me.options.onMove(itemData, function (itemData) { - if (itemData) { - // apply changes - itemData[dataset._fieldId] = id; // ensure the item contains its id (can be undefined) - changes.push(itemData); - } - else { - // restore original values - me._updateItemProps(props.item, props); + var itemData = util.extend({}, props.item.data); // clone the data + me.options.onMove(itemData, function (itemData) { + if (itemData) { + // apply changes + itemData[dataset._fieldId] = id; // ensure the item contains its id (can be undefined) + changes.push(itemData); + } + else { + // restore original values + props.item.setData(props.data); - me.stackDirty = true; // force re-stacking of all items next redraw - me.body.emitter.emit('change'); - } - }); - } + me.stackDirty = true; // force re-stacking of all items next redraw + me.body.emitter.emit('change'); + } + }); } }); @@ -13901,8 +13884,6 @@ return /******/ (function(modules) { // webpackBootstrap if (changes.length) { dataset.update(changes); } - - event.stopPropagation(); } }; @@ -14029,7 +14010,9 @@ return /******/ (function(modules) { // webpackBootstrap var start = _item.data.start; var end = (_item.data.end !== undefined) ? _item.data.end : start; - if (start >= range.min && end <= range.max) { + 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 } } @@ -14114,23 +14097,23 @@ return /******/ (function(modules) { // webpackBootstrap * @return {Group | null} group */ ItemSet.prototype.groupFromTarget = function(event) { - var clientY = event.gesture ? event.gesture.center.clientY : event.clientY; + var pageY = event.gesture ? event.gesture.center.pageY : event.pageY; for (var i = 0; i < this.groupIds.length; i++) { var groupId = this.groupIds[i]; var group = this.groups[groupId]; var foreground = group.dom.foreground; var top = util.getAbsoluteTop(foreground); - if (clientY > top && clientY < top + foreground.offsetHeight) { + if (pageY > top && pageY < top + foreground.offsetHeight) { return group; } if (this.options.orientation === 'top') { - if (i === this.groupIds.length - 1 && clientY > top) { + if (i === this.groupIds.length - 1 && pageY > top) { return group; } } else { - if (i === 0 && clientY < top + foreground.offset) { + if (i === 0 && pageY < top + foreground.offset) { return group; } } @@ -15419,8 +15402,7 @@ return /******/ (function(modules) { // webpackBootstrap }; this.defaultOptions = { - orientation: 'bottom', // supported: 'top', 'bottom' - // TODO: implement timeaxis orientations 'left' and 'right' + orientation: 'bottom', // axis orientation: 'top' or 'bottom' showMinorLabels: true, showMajorLabels: true, format: null, @@ -15450,7 +15432,6 @@ return /******/ (function(modules) { // webpackBootstrap if (options) { // copy all options that we know util.selectiveExtend([ - 'orientation', 'showMinorLabels', 'showMajorLabels', 'hiddenDates', @@ -15458,6 +15439,15 @@ return /******/ (function(modules) { // webpackBootstrap 'timeAxis' ], this.options, options); + if ('orientation' in options) { + if (typeof options.orientation === 'string') { + this.options.orientation = options.orientation; + } + else if (typeof options.orientation === 'object' && 'axis' in options.orientation) { + this.options.orientation = options.orientation.axis; + } + } + // apply locale to moment.js // TODO: not so nice, this is applied globally to moment.js if ('locale' in options) { @@ -15516,9 +15506,8 @@ return /******/ (function(modules) { // webpackBootstrap this._calculateCharSize(); // TODO: recalculate sizes only needed when parent is resized or options is changed - var orientation = this.options.orientation, - showMinorLabels = this.options.showMinorLabels, - showMajorLabels = this.options.showMajorLabels; + var showMinorLabels = this.options.showMinorLabels; + var showMajorLabels = this.options.showMajorLabels; // determine the width and height of the elemens for the axis props.minorLabelHeight = showMinorLabels ? props.minorCharHeight : 0; @@ -17484,9 +17473,14 @@ return /******/ (function(modules) { // webpackBootstrap */ Network.prototype._addNodes = function(ids) { var id; + var fieldId = this.nodesData._fieldId || null; for (var i = 0, len = ids.length; i < len; i++) { id = ids[i]; var data = this.nodesData.get(id); + if (fieldId) { + data.id = data[fieldId]; + } + var node = new Node(data, this.images, this.groups, this.constants); this.nodes[id] = node; // note: this may replace an existing node if ((node.xFixed == false || node.yFixed == false) && (node.x === null || node.y === null)) { @@ -17637,8 +17631,9 @@ return /******/ (function(modules) { // webpackBootstrap * @private */ Network.prototype._addEdges = function (ids) { - var edges = this.edges, - edgesData = this.edgesData; + var edges = this.edges; + var edgesData = this.edgesData; + var fieldId = this.edgesData._fieldId; for (var i = 0, len = ids.length; i < len; i++) { var id = ids[i]; @@ -17649,6 +17644,9 @@ return /******/ (function(modules) { // webpackBootstrap } var data = edgesData.get(id, {"showInternalIds" : true}); + if (fieldId) { + data.id = data[fieldId]; + } edges[id] = new Edge(data, this, this.constants); } this.moving = true; @@ -22779,7 +22777,7 @@ return /******/ (function(modules) { // webpackBootstrap this.dom.background.className = 'vispanel background'; this.dom.backgroundVertical.className = 'vispanel background vertical'; this.dom.backgroundHorizontal.className = 'vispanel background horizontal'; - this.dom.centerContainer.className = 'vispanel center jooo'; + this.dom.centerContainer.className = 'vispanel center'; this.dom.leftContainer.className = 'vispanel left'; this.dom.rightContainer.className = 'vispanel right'; this.dom.top.className = 'vispanel top'; @@ -22914,9 +22912,18 @@ return /******/ (function(modules) { // webpackBootstrap Core.prototype.setOptions = function (options) { if (options) { // copy the known options - var fields = ['width', 'height', 'minHeight', 'maxHeight', 'autoResize', 'start', 'end', 'orientation', 'clickToUse', 'dataAttributes', 'hiddenDates']; + var fields = ['width', 'height', 'minHeight', 'maxHeight', 'autoResize', 'start', 'end', 'clickToUse', 'dataAttributes', 'hiddenDates']; util.selectiveExtend(fields, this.options, options); + if ('orientation' in options) { + if (typeof options.orientation === 'string') { + this.options.orientation = options.orientation; + } + else if (typeof options.orientation === 'object' && 'axis' in options.orientation) { + this.options.orientation = options.orientation.axis; + } + } + if (this.options.orientation === 'both') { if (!this.timeAxis2) { var timeAxis2 = this.timeAxis2 = new TimeAxis(this.body); @@ -23772,7 +23779,7 @@ return /******/ (function(modules) { // webpackBootstrap // Dutch exports['nl'] = { - custom: 'aangepaste', + current: 'aangepaste', time: 'tijd' }; exports['nl_NL'] = exports['nl']; @@ -24067,7 +24074,8 @@ return /******/ (function(modules) { // webpackBootstrap combinedData.push({ x: processedGroupData[groupIds[i]][j].x, y: processedGroupData[groupIds[i]][j].y, - groupId: groupIds[i] + groupId: groupIds[i], + label: processedGroupData[groupIds[i]][j].label, }); barPoints += 1; } @@ -24123,7 +24131,7 @@ return /******/ (function(modules) { // webpackBootstrap DOMutil.drawBar(combinedData[i].x + drawData.offset, combinedData[i].y - heightOffset, drawData.width, group.zeroPosition - combinedData[i].y, group.className + ' bar', framework.svgElements, framework.svg); // draw points if (group.options.drawPoints.enabled == true) { - DOMutil.drawPoint(combinedData[i].x + drawData.offset, combinedData[i].y, group, framework.svgElements, framework.svg); + DOMutil.drawPoint(combinedData[i].x + drawData.offset, combinedData[i].y, group, framework.svgElements, framework.svg, combinedData[i].label); } } }; @@ -24237,6 +24245,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = Bargraph; + /***/ }, /* 51 */ /***/ function(module, exports, __webpack_require__) { @@ -25291,484 +25300,66 @@ return /******/ (function(modules) { // webpackBootstrap /* 58 */ /***/ function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global, module) {//! moment.js - //! version : 2.9.0 + /* WEBPACK VAR INJECTION */(function(module) {//! moment.js + //! version : 2.10.0 //! authors : Tim Wood, Iskren Chernev, Moment.js contributors //! license : MIT //! momentjs.com - (function (undefined) { - /************************************ - Constants - ************************************/ - - var moment, - VERSION = '2.9.0', - // the global-scope this is NOT the global object in Node.js - globalScope = (typeof global !== 'undefined' && (typeof window === 'undefined' || window === global.window)) ? global : this, - oldGlobalMoment, - round = Math.round, - hasOwnProperty = Object.prototype.hasOwnProperty, - i, - - YEAR = 0, - MONTH = 1, - DATE = 2, - HOUR = 3, - MINUTE = 4, - SECOND = 5, - MILLISECOND = 6, - - // internal storage for locale config files - locales = {}, - - // extra moment internal properties (plugins register props here) - momentProperties = [], - - // check for nodeJS - hasModule = (typeof module !== 'undefined' && module && module.exports), - - // ASP.NET json date format regex - aspNetJsonRegex = /^\/?Date\((\-?\d+)/i, - aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/, - - // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html - // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere - isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/, - - // format tokens - formattingTokens = /(\[[^\[]*\])|(\\)?(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,4}|x|X|zz?|ZZ?|.)/g, - localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, - - // parsing token regexes - parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99 - parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999 - parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999 - parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999 - parseTokenDigits = /\d+/, // nonzero number of digits - parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic. - parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z - parseTokenT = /T/i, // T (ISO separator) - parseTokenOffsetMs = /[\+\-]?\d+/, // 1234567890123 - parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123 - - //strict parsing regexes - parseTokenOneDigit = /\d/, // 0 - 9 - parseTokenTwoDigits = /\d\d/, // 00 - 99 - parseTokenThreeDigits = /\d{3}/, // 000 - 999 - parseTokenFourDigits = /\d{4}/, // 0000 - 9999 - parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999 - parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf - - // iso 8601 regex - // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00) - isoRegex = /^\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)?)?$/, - - isoFormat = 'YYYY-MM-DDTHH:mm:ssZ', - - isoDates = [ - ['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}/] - ], - - // iso time formats and regexes - isoTimes = [ - ['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/] - ], - - // timezone chunker '+10:00' > ['10', '00'] or '-1530' > ['-', '15', '30'] - parseTimezoneChunker = /([\+\-]|\d\d)/gi, - - // getter and setter names - proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'), - unitMillisecondFactors = { - 'Milliseconds' : 1, - 'Seconds' : 1e3, - 'Minutes' : 6e4, - 'Hours' : 36e5, - 'Days' : 864e5, - 'Months' : 2592e6, - 'Years' : 31536e6 - }, - - unitAliases = { - ms : 'millisecond', - s : 'second', - m : 'minute', - h : 'hour', - d : 'day', - D : 'date', - w : 'week', - W : 'isoWeek', - M : 'month', - Q : 'quarter', - y : 'year', - DDD : 'dayOfYear', - e : 'weekday', - E : 'isoWeekday', - gg: 'weekYear', - GG: 'isoWeekYear' - }, - - camelFunctions = { - dayofyear : 'dayOfYear', - isoweekday : 'isoWeekday', - isoweek : 'isoWeek', - weekyear : 'weekYear', - isoweekyear : 'isoWeekYear' - }, - - // format function strings - formatFunctions = {}, + (function (global, factory) { + true ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + global.moment = factory() + }(this, function () { 'use strict'; - // default relative time thresholds - relativeTimeThresholds = { - s: 45, // seconds to minute - m: 45, // minutes to hour - h: 22, // hours to day - d: 26, // days to month - M: 11 // months to year - }, + var hookCallback; - // tokens to ordinalize and pad - ordinalizeTokens = 'DDD w W M D d'.split(' '), - paddedTokens = 'M D H h m s w W'.split(' '), - - formatTokenFunctions = { - M : function () { - return this.month() + 1; - }, - MMM : function (format) { - return this.localeData().monthsShort(this, format); - }, - MMMM : function (format) { - return this.localeData().months(this, format); - }, - D : function () { - return this.date(); - }, - DDD : function () { - return this.dayOfYear(); - }, - d : function () { - return this.day(); - }, - dd : function (format) { - return this.localeData().weekdaysMin(this, format); - }, - ddd : function (format) { - return this.localeData().weekdaysShort(this, format); - }, - dddd : function (format) { - return this.localeData().weekdays(this, format); - }, - w : function () { - return this.week(); - }, - W : function () { - return this.isoWeek(); - }, - YY : function () { - return leftZeroFill(this.year() % 100, 2); - }, - YYYY : function () { - return leftZeroFill(this.year(), 4); - }, - YYYYY : function () { - return leftZeroFill(this.year(), 5); - }, - YYYYYY : function () { - var y = this.year(), sign = y >= 0 ? '+' : '-'; - return sign + leftZeroFill(Math.abs(y), 6); - }, - gg : function () { - return leftZeroFill(this.weekYear() % 100, 2); - }, - gggg : function () { - return leftZeroFill(this.weekYear(), 4); - }, - ggggg : function () { - return leftZeroFill(this.weekYear(), 5); - }, - GG : function () { - return leftZeroFill(this.isoWeekYear() % 100, 2); - }, - GGGG : function () { - return leftZeroFill(this.isoWeekYear(), 4); - }, - GGGGG : function () { - return leftZeroFill(this.isoWeekYear(), 5); - }, - e : function () { - return this.weekday(); - }, - E : function () { - return this.isoWeekday(); - }, - a : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), true); - }, - A : function () { - return this.localeData().meridiem(this.hours(), this.minutes(), false); - }, - H : function () { - return this.hours(); - }, - h : function () { - return this.hours() % 12 || 12; - }, - m : function () { - return this.minutes(); - }, - s : function () { - return this.seconds(); - }, - S : function () { - return toInt(this.milliseconds() / 100); - }, - SS : function () { - return leftZeroFill(toInt(this.milliseconds() / 10), 2); - }, - SSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - SSSS : function () { - return leftZeroFill(this.milliseconds(), 3); - }, - Z : function () { - var a = this.utcOffset(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + ':' + leftZeroFill(toInt(a) % 60, 2); - }, - ZZ : function () { - var a = this.utcOffset(), - b = '+'; - if (a < 0) { - a = -a; - b = '-'; - } - return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2); - }, - z : function () { - return this.zoneAbbr(); - }, - zz : function () { - return this.zoneName(); - }, - x : function () { - return this.valueOf(); - }, - X : function () { - return this.unix(); - }, - Q : function () { - return this.quarter(); - } - }, - - deprecations = {}, - - lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'], - - updateInProgress = false; - - // Pick the first defined of two or three arguments. dfl comes from - // default. - function dfl(a, b, c) { - switch (arguments.length) { - case 2: return a != null ? a : b; - case 3: return a != null ? a : b != null ? b : c; - default: throw new Error('Implement me'); - } + function hooks__hooks () { + return hookCallback.apply(null, arguments); } - function hasOwnProp(a, b) { - return hasOwnProperty.call(a, b); + // This is done to register the method called with moment() + // without creating circular dependencies. + function setHookCallback (callback) { + hookCallback = callback; } function defaultParsingFlags() { - // We need to deep clone this object, and es5 standard is not very - // helpful. + // We need to deep clone this object. return { - empty : false, - unusedTokens : [], - unusedInput : [], - overflow : -2, - charsLeftOver : 0, - nullInput : false, - invalidMonth : null, - invalidFormat : false, + empty : false, + unusedTokens : [], + unusedInput : [], + overflow : -2, + charsLeftOver : 0, + nullInput : false, + invalidMonth : null, + invalidFormat : false, userInvalidated : false, - iso: false - }; - } - - function printMsg(msg) { - if (moment.suppressDeprecationWarnings === false && - typeof console !== 'undefined' && console.warn) { - console.warn('Deprecation warning: ' + msg); - } - } - - function deprecate(msg, fn) { - var firstTime = true; - return extend(function () { - if (firstTime) { - printMsg(msg); - firstTime = false; - } - return fn.apply(this, arguments); - }, fn); - } - - function deprecateSimple(name, msg) { - if (!deprecations[name]) { - printMsg(msg); - deprecations[name] = true; - } - } - - function padToken(func, count) { - return function (a) { - return leftZeroFill(func.call(this, a), count); - }; - } - function ordinalizeToken(func, period) { - return function (a) { - return this.localeData().ordinal(func.call(this, a), period); + iso : false }; } - function monthDiff(a, b) { - // difference in months - var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), - // b is in (anchor - 1 month, anchor + 1 month) - anchor = a.clone().add(wholeMonthDiff, 'months'), - anchor2, adjust; - - if (b - anchor < 0) { - anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor - anchor2); - } else { - anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); - // linear across the month - adjust = (b - anchor) / (anchor2 - anchor); - } - - return -(wholeMonthDiff + adjust); - } - - while (ordinalizeTokens.length) { - i = ordinalizeTokens.pop(); - formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i); - } - while (paddedTokens.length) { - i = paddedTokens.pop(); - formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2); - } - formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3); - - - function meridiemFixWrap(locale, hour, meridiem) { - var isPm; - - if (meridiem == null) { - // nothing to do - return hour; - } - if (locale.meridiemHour != null) { - return locale.meridiemHour(hour, meridiem); - } else if (locale.isPM != null) { - // Fallback - isPm = locale.isPM(meridiem); - if (isPm && hour < 12) { - hour += 12; - } - if (!isPm && hour === 12) { - hour = 0; - } - return hour; - } else { - // thie is not supposed to happen - return hour; - } + function isArray(input) { + return Object.prototype.toString.call(input) === '[object Array]'; } - /************************************ - Constructors - ************************************/ - - function Locale() { + function isDate(input) { + return Object.prototype.toString.call(input) === '[object Date]' || input instanceof Date; } - // Moment prototype object - function Moment(config, skipOverflow) { - if (skipOverflow !== false) { - checkOverflow(config); - } - copyConfig(this, config); - this._d = new Date(+config._d); - // Prevent infinite loop in case updateOffset creates new moment - // objects. - if (updateInProgress === false) { - updateInProgress = true; - moment.updateOffset(this); - updateInProgress = false; + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); } + return res; } - // Duration Constructor - function Duration(duration) { - var normalizedInput = normalizeObjectUnits(duration), - years = normalizedInput.year || 0, - quarters = normalizedInput.quarter || 0, - months = normalizedInput.month || 0, - weeks = normalizedInput.week || 0, - days = normalizedInput.day || 0, - hours = normalizedInput.hour || 0, - minutes = normalizedInput.minute || 0, - seconds = normalizedInput.second || 0, - milliseconds = normalizedInput.millisecond || 0; - - // representation for dateAddRemove - this._milliseconds = +milliseconds + - seconds * 1e3 + // 1000 - minutes * 6e4 + // 1000 * 60 - hours * 36e5; // 1000 * 60 * 60 - // Because of dateAddRemove treats 24 hours as different from a - // day when working around DST, we need to store them separately - this._days = +days + - weeks * 7; - // It is impossible translate months into days without knowing - // which months you are are talking about, so we have to store - // it separately. - this._months = +months + - quarters * 3 + - years * 12; - - this._data = {}; - - this._locale = moment.localeData(); - - this._bubble(); + function hasOwnProp(a, b) { + return Object.prototype.hasOwnProperty.call(a, b); } - /************************************ - Helpers - ************************************/ - - function extend(a, b) { for (var i in b) { if (hasOwnProp(b, i)) { @@ -25787,6 +25378,44 @@ return /******/ (function(modules) { // webpackBootstrap return a; } + function utc__createUTC (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, true).utc(); + } + + function valid__isValid(m) { + if (m._isValid == null) { + m._isValid = !isNaN(m._d.getTime()) && + m._pf.overflow < 0 && + !m._pf.empty && + !m._pf.invalidMonth && + !m._pf.nullInput && + !m._pf.invalidFormat && + !m._pf.userInvalidated; + + if (m._strict) { + m._isValid = m._isValid && + m._pf.charsLeftOver === 0 && + m._pf.unusedTokens.length === 0 && + m._pf.bigHour === undefined; + } + } + return m._isValid; + } + + function valid__createInvalid (flags) { + var m = utc__createUTC(NaN); + if (flags != null) { + extend(m._pf, flags); + } + else { + m._pf.userInvalidated = true; + } + + return m; + } + + var momentProperties = hooks__hooks.momentProperties = []; + function copyConfig(to, from) { var i, prop, val; @@ -25834,102 +25463,40 @@ return /******/ (function(modules) { // webpackBootstrap return to; } - function absRound(number) { - if (number < 0) { - return Math.ceil(number); - } else { - return Math.floor(number); - } - } + var updateInProgress = false; - // left zero fill a number - // see http://jsperf.com/left-zero-filling for performance comparison - function leftZeroFill(number, targetLength, forceSign) { - var output = '' + Math.abs(number), - sign = number >= 0; - - while (output.length < targetLength) { - output = '0' + output; + // Moment prototype object + function Moment(config) { + copyConfig(this, config); + this._d = new Date(+config._d); + // Prevent infinite loop in case updateOffset creates new moment + // objects. + if (updateInProgress === false) { + updateInProgress = true; + hooks__hooks.updateOffset(this); + updateInProgress = false; } - return (sign ? (forceSign ? '+' : '') : '-') + output; } - function positiveMomentsDifference(base, other) { - var res = {milliseconds: 0, months: 0}; - - res.months = other.month() - base.month() + - (other.year() - base.year()) * 12; - if (base.clone().add(res.months, 'M').isAfter(other)) { - --res.months; - } - - res.milliseconds = +other - +(base.clone().add(res.months, 'M')); - - return res; + function isMoment (obj) { + return obj instanceof Moment || (obj != null && hasOwnProp(obj, '_isAMomentObject')); } - function momentsDifference(base, other) { - var res; - other = makeAs(other, base); - if (base.isBefore(other)) { - res = positiveMomentsDifference(base, other); - } else { - res = positiveMomentsDifference(other, base); - res.milliseconds = -res.milliseconds; - res.months = -res.months; - } - - return res; - } + function toInt(argumentForCoercion) { + var coercedNumber = +argumentForCoercion, + value = 0; - // TODO: remove 'name' arg after deprecation is removed - function createAdder(direction, name) { - return function (val, period) { - var dur, tmp; - //invert the arguments, but complain about it - if (period !== null && !isNaN(+period)) { - deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); - tmp = val; val = period; period = tmp; + if (coercedNumber !== 0 && isFinite(coercedNumber)) { + if (coercedNumber >= 0) { + value = Math.floor(coercedNumber); + } else { + value = Math.ceil(coercedNumber); } - - val = typeof val === 'string' ? +val : val; - dur = moment.duration(val, period); - addOrSubtractDurationFromMoment(this, dur, direction); - return this; - }; - } - - function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) { - var milliseconds = duration._milliseconds, - days = duration._days, - months = duration._months; - updateOffset = updateOffset == null ? true : updateOffset; - - if (milliseconds) { - mom._d.setTime(+mom._d + milliseconds * isAdding); - } - if (days) { - rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding); - } - if (months) { - rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding); } - if (updateOffset) { - moment.updateOffset(mom, days || months); - } - } - - // check if is an array - function isArray(input) { - return Object.prototype.toString.call(input) === '[object Array]'; - } - function isDate(input) { - return Object.prototype.toString.call(input) === '[object Date]' || - input instanceof Date; + return value; } - // compare two arrays, return the number of differences function compareArrays(array1, array2, dontConvert) { var len = Math.min(array1.length, array2.length), lengthDiff = Math.abs(array1.length - array2.length), @@ -25944,146 +25511,11 @@ return /******/ (function(modules) { // webpackBootstrap return diffs + lengthDiff; } - function normalizeUnits(units) { - if (units) { - var lowered = units.toLowerCase().replace(/(.)s$/, '$1'); - units = unitAliases[units] || camelFunctions[lowered] || lowered; - } - return units; - } - - function normalizeObjectUnits(inputObject) { - var normalizedInput = {}, - normalizedProp, - prop; - - for (prop in inputObject) { - if (hasOwnProp(inputObject, prop)) { - normalizedProp = normalizeUnits(prop); - if (normalizedProp) { - normalizedInput[normalizedProp] = inputObject[prop]; - } - } - } - - return normalizedInput; - } - - function makeList(field) { - var count, setter; - - if (field.indexOf('week') === 0) { - count = 7; - setter = 'day'; - } - else if (field.indexOf('month') === 0) { - count = 12; - setter = 'month'; - } - else { - return; - } - - moment[field] = function (format, index) { - var i, getter, - method = moment._locale[field], - results = []; - - if (typeof format === 'number') { - index = format; - format = undefined; - } - - getter = function (i) { - var m = moment().utc().set(setter, i); - return method.call(moment._locale, m, format || ''); - }; - - if (index != null) { - return getter(index); - } - else { - for (i = 0; i < count; i++) { - results.push(getter(i)); - } - return results; - } - }; - } - - function toInt(argumentForCoercion) { - var coercedNumber = +argumentForCoercion, - value = 0; - - if (coercedNumber !== 0 && isFinite(coercedNumber)) { - if (coercedNumber >= 0) { - value = Math.floor(coercedNumber); - } else { - value = Math.ceil(coercedNumber); - } - } - - return value; - } - - function daysInMonth(year, month) { - return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); - } - - function weeksInYear(year, dow, doy) { - return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week; - } - - function daysInYear(year) { - return isLeapYear(year) ? 366 : 365; - } - - function isLeapYear(year) { - return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; - } - - function checkOverflow(m) { - var overflow; - if (m._a && m._pf.overflow === -2) { - overflow = - m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH : - m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE : - m._a[HOUR] < 0 || m._a[HOUR] > 24 || - (m._a[HOUR] === 24 && (m._a[MINUTE] !== 0 || - m._a[SECOND] !== 0 || - m._a[MILLISECOND] !== 0)) ? HOUR : - m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE : - m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND : - m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND : - -1; - - if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { - overflow = DATE; - } - - m._pf.overflow = overflow; - } + function Locale() { } - function isValid(m) { - if (m._isValid == null) { - m._isValid = !isNaN(m._d.getTime()) && - m._pf.overflow < 0 && - !m._pf.empty && - !m._pf.invalidMonth && - !m._pf.nullInput && - !m._pf.invalidFormat && - !m._pf.userInvalidated; - - if (m._strict) { - m._isValid = m._isValid && - m._pf.charsLeftOver === 0 && - m._pf.unusedTokens.length === 0 && - m._pf.bigHour === undefined; - } - } - return m._isValid; - } + var locales = {}; + var globalLocale; function normalizeLocale(key) { return key ? key.toLowerCase().replace('_', '-') : key; @@ -26118,250 +25550,193 @@ return /******/ (function(modules) { // webpackBootstrap function loadLocale(name) { var oldLocale = null; - if (!locales[name] && hasModule) { + // TODO: Find a better way to register and load all the locales in Node + if (!locales[name] && typeof module !== 'undefined' && + module && module.exports) { try { - oldLocale = moment.locale(); + oldLocale = globalLocale._abbr; !(function webpackMissingModule() { var e = new Error("Cannot find module \"./locale\""); e.code = 'MODULE_NOT_FOUND'; throw e; }()); - // because defineLocale currently also sets the global locale, we want to undo that for lazy loaded locales - moment.locale(oldLocale); + // because defineLocale currently also sets the global locale, we + // want to undo that for lazy loaded locales + locales__getSetGlobalLocale(oldLocale); } catch (e) { } } return locales[name]; } - // Return a moment from input, that is local/utc/utcOffset equivalent to - // model. - function makeAs(input, model) { - var res, diff; - if (model._isUTC) { - res = model.clone(); - diff = (moment.isMoment(input) || isDate(input) ? - +input : +moment(input)) - (+res); - // Use low-level api, because this fn is low-level api. - res._d.setTime(+res._d + diff); - moment.updateOffset(res, false); - return res; - } else { - return moment(input).local(); - } - } - - /************************************ - Locale - ************************************/ + // This function will load locale and then set the global locale. If + // no arguments are passed in, it will simply return the current global + // locale key. + function locales__getSetGlobalLocale (key, values) { + var data; + if (key) { + if (typeof values === 'undefined') { + data = locales__getLocale(key); + } + else { + data = defineLocale(key, values); + } + if (data) { + // moment.duration._locale = moment._locale = data; + globalLocale = data; + } + } - extend(Locale.prototype, { + return globalLocale._abbr; + } - set : function (config) { - var prop, i; - for (i in config) { - prop = config[i]; - if (typeof prop === 'function') { - this[i] = prop; - } else { - this['_' + i] = prop; - } + function defineLocale (name, values) { + if (values !== null) { + values.abbr = name; + if (!locales[name]) { + locales[name] = new Locale(); } - // Lenient ordinal parsing accepts just a number in addition to - // number + (possibly) stuff coming from _ordinalParseLenient. - this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source); - }, + locales[name].set(values); - _months : 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'), - months : function (m) { - return this._months[m.month()]; - }, + // backwards compat for now: also set the locale + locales__getSetGlobalLocale(name); - _monthsShort : 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'), - monthsShort : function (m) { - return this._monthsShort[m.month()]; - }, + return locales[name]; + } else { + // useful for testing + delete locales[name]; + return null; + } + } - monthsParse : function (monthName, format, strict) { - var i, mom, regex; + // returns locale data + function locales__getLocale (key) { + var locale; - if (!this._monthsParse) { - this._monthsParse = []; - this._longMonthsParse = []; - this._shortMonthsParse = []; - } + if (key && key._locale && key._locale._abbr) { + key = key._locale._abbr; + } - for (i = 0; i < 12; i++) { - // make the regex if we don't have it already - mom = moment.utc([2000, i]); - if (strict && !this._longMonthsParse[i]) { - this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); - this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); - } - if (!strict && !this._monthsParse[i]) { - regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); - this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { - return i; - } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { - return i; - } else if (!strict && this._monthsParse[i].test(monthName)) { - return i; - } + if (!key) { + return globalLocale; + } + + if (!isArray(key)) { + //short-circuit everything else + locale = loadLocale(key); + if (locale) { + return locale; } - }, + key = [key]; + } - _weekdays : 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'), - weekdays : function (m) { - return this._weekdays[m.day()]; - }, + return chooseLocale(key); + } - _weekdaysShort : 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'), - weekdaysShort : function (m) { - return this._weekdaysShort[m.day()]; - }, + var aliases = {}; - _weekdaysMin : 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'), - weekdaysMin : function (m) { - return this._weekdaysMin[m.day()]; - }, + function addUnitAlias (unit, shorthand) { + var lowerCase = unit.toLowerCase(); + aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit; + } - weekdaysParse : function (weekdayName) { - var i, mom, regex; + function normalizeUnits(units) { + return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined; + } - if (!this._weekdaysParse) { - this._weekdaysParse = []; - } + function normalizeObjectUnits(inputObject) { + var normalizedInput = {}, + normalizedProp, + prop; - for (i = 0; i < 7; i++) { - // make the regex if we don't have it already - if (!this._weekdaysParse[i]) { - mom = moment([2000, 1]).day(i); - regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); - this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); - } - // test the regex - if (this._weekdaysParse[i].test(weekdayName)) { - return i; + for (prop in inputObject) { + if (hasOwnProp(inputObject, prop)) { + normalizedProp = normalizeUnits(prop); + if (normalizedProp) { + normalizedInput[normalizedProp] = inputObject[prop]; } } - }, - - _longDateFormat : { - LTS : 'h:mm:ss A', - LT : 'h:mm A', - L : 'MM/DD/YYYY', - LL : 'MMMM D, YYYY', - LLL : 'MMMM D, YYYY LT', - LLLL : 'dddd, MMMM D, YYYY LT' - }, - longDateFormat : function (key) { - var output = this._longDateFormat[key]; - if (!output && this._longDateFormat[key.toUpperCase()]) { - output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { - return val.slice(1); - }); - this._longDateFormat[key] = output; - } - return output; - }, + } - isPM : function (input) { - // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays - // Using charAt should be more compatible. - return ((input + '').toLowerCase().charAt(0) === 'p'); - }, + return normalizedInput; + } - _meridiemParse : /[ap]\.?m?\.?/i, - meridiem : function (hours, minutes, isLower) { - if (hours > 11) { - return isLower ? 'pm' : 'PM'; + function makeGetSet (unit, keepTime) { + return function (value) { + if (value != null) { + get_set__set(this, unit, value); + hooks__hooks.updateOffset(this, keepTime); + return this; } else { - return isLower ? 'am' : 'AM'; + return get_set__get(this, unit); } - }, - - - _calendar : { - sameDay : '[Today at] LT', - nextDay : '[Tomorrow at] LT', - nextWeek : 'dddd [at] LT', - lastDay : '[Yesterday at] LT', - lastWeek : '[Last] dddd [at] LT', - sameElse : 'L' - }, - calendar : function (key, mom, now) { - var output = this._calendar[key]; - return typeof output === 'function' ? output.apply(mom, [now]) : output; - }, + }; + } - _relativeTime : { - future : 'in %s', - past : '%s ago', - s : 'a few seconds', - m : 'a minute', - mm : '%d minutes', - h : 'an hour', - hh : '%d hours', - d : 'a day', - dd : '%d days', - M : 'a month', - MM : '%d months', - y : 'a year', - yy : '%d years' - }, + function get_set__get (mom, unit) { + return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + } - relativeTime : function (number, withoutSuffix, string, isFuture) { - var output = this._relativeTime[string]; - return (typeof output === 'function') ? - output(number, withoutSuffix, string, isFuture) : - output.replace(/%d/i, number); - }, + function get_set__set (mom, unit, value) { + return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); + } - pastFuture : function (diff, output) { - var format = this._relativeTime[diff > 0 ? 'future' : 'past']; - return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); - }, + // MOMENTS - ordinal : function (number) { - return this._ordinal.replace('%d', number); - }, - _ordinal : '%d', - _ordinalParse : /\d{1,2}/, + function getSet (units, value) { + var unit; + if (typeof units === 'object') { + for (unit in units) { + this.set(unit, units[unit]); + } + } else { + units = normalizeUnits(units); + if (typeof this[units] === 'function') { + return this[units](value); + } + } + return this; + } - preparse : function (string) { - return string; - }, + function zeroFill(number, targetLength, forceSign) { + var output = '' + Math.abs(number), + sign = number >= 0; - postformat : function (string) { - return string; - }, + while (output.length < targetLength) { + output = '0' + output; + } + return (sign ? (forceSign ? '+' : '') : '-') + output; + } - week : function (mom) { - return weekOfYear(mom, this._week.dow, this._week.doy).week; - }, + var formattingTokens = /(\[[^\[]*\])|(\\)?(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,4}|x|X|zz?|ZZ?|.)/g; - _week : { - dow : 0, // Sunday is the first day of the week. - doy : 6 // The week that contains Jan 1st is the first week of the year. - }, + var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g; - firstDayOfWeek : function () { - return this._week.dow; - }, + var formatFunctions = {}; - firstDayOfYear : function () { - return this._week.doy; - }, + var formatTokenFunctions = {}; - _invalidDate: 'Invalid date', - invalidDate: function () { - return this._invalidDate; + // token: 'M' + // padded: ['MM', 2] + // ordinal: 'Mo' + // callback: function () { this.month() + 1 } + function addFormatToken (token, padded, ordinal, callback) { + var func = callback; + if (typeof callback === 'string') { + func = function () { + return this[callback](); + }; } - }); - - /************************************ - Formatting - ************************************/ - + if (token) { + formatTokenFunctions[token] = func; + } + if (padded) { + formatTokenFunctions[padded[0]] = function () { + return zeroFill(func.apply(this, arguments), padded[1], padded[2]); + }; + } + if (ordinal) { + formatTokenFunctions[ordinal] = function () { + return this.localeData().ordinal(func.apply(this, arguments), token); + }; + } + } function removeFormattingTokens(input) { if (input.match(/\[[\s\S]/)) { @@ -26422,302 +25797,547 @@ return /******/ (function(modules) { // webpackBootstrap return format; } + var match1 = /\d/; // 0 - 9 + var match2 = /\d\d/; // 00 - 99 + var match3 = /\d{3}/; // 000 - 999 + var match4 = /\d{4}/; // 0000 - 9999 + var match6 = /[+-]?\d{6}/; // -999999 - 999999 + var match1to2 = /\d\d?/; // 0 - 99 + var match1to3 = /\d{1,3}/; // 0 - 999 + var match1to4 = /\d{1,4}/; // 0 - 9999 + var match1to6 = /[+-]?\d{1,6}/; // -999999 - 999999 + + var matchUnsigned = /\d+/; // 0 - inf + var matchSigned = /[+-]?\d+/; // -inf - inf + + var matchOffset = /Z|[+-]\d\d:?\d\d/gi; // +00:00 -00:00 +0000 -0000 or Z + + var matchTimestamp = /[+-]?\d+(\.\d{1,3})?/; // 123456789 123456789.123 + + // any word (or two) characters or numbers including two/three word month in arabic. + var matchWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i; + + var regexes = {}; + + function addRegexToken (token, regex, strictRegex) { + regexes[token] = typeof regex === 'function' ? regex : function (isStrict) { + return (isStrict && strictRegex) ? strictRegex : regex; + }; + } + + function getParseRegexForToken (token, config) { + if (!hasOwnProp(regexes, token)) { + return new RegExp(unescapeFormat(token)); + } + + return regexes[token](config._strict, config._locale); + } + + // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript + function unescapeFormat(s) { + return s.replace('\\', '').replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { + return p1 || p2 || p3 || p4; + }).replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + } + + var tokens = {}; + + function addParseToken (token, callback) { + var i, func = callback; + if (typeof token === 'string') { + token = [token]; + } + if (typeof callback === 'number') { + func = function (input, array) { + array[callback] = toInt(input); + }; + } + for (i = 0; i < token.length; i++) { + tokens[token[i]] = func; + } + } + + function addWeekParseToken (token, callback) { + addParseToken(token, function (input, array, config, token) { + config._w = config._w || {}; + callback(input, config._w, config, token); + }); + } + + function addTimeToArrayFromToken(token, input, config) { + if (input != null && hasOwnProp(tokens, token)) { + tokens[token](input, config._a, config, token); + } + } + + var YEAR = 0; + var MONTH = 1; + var DATE = 2; + var HOUR = 3; + var MINUTE = 4; + var SECOND = 5; + var MILLISECOND = 6; + + function daysInMonth(year, month) { + return new Date(Date.UTC(year, month + 1, 0)).getUTCDate(); + } + + // FORMATTING + + addFormatToken('M', ['MM', 2], 'Mo', function () { + return this.month() + 1; + }); + + addFormatToken('MMM', 0, 0, function (format) { + return this.localeData().monthsShort(this, format); + }); + + addFormatToken('MMMM', 0, 0, function (format) { + return this.localeData().months(this, format); + }); + + // ALIASES + + addUnitAlias('month', 'M'); + + // PARSING + + addRegexToken('M', match1to2); + addRegexToken('MM', match1to2, match2); + addRegexToken('MMM', matchWord); + addRegexToken('MMMM', matchWord); + + addParseToken(['M', 'MM'], function (input, array) { + array[MONTH] = toInt(input) - 1; + }); + + addParseToken(['MMM', 'MMMM'], function (input, array, config, token) { + var month = config._locale.monthsParse(input, token, config._strict); + // if we didn't find a month name, mark the date as invalid. + if (month != null) { + array[MONTH] = month; + } else { + config._pf.invalidMonth = input; + } + }); - /************************************ - Parsing - ************************************/ - - - // get the regex to find the next token - function getParseRegexForToken(token, config) { - var a, strict = config._strict; - switch (token) { - case 'Q': - return parseTokenOneDigit; - case 'DDDD': - return parseTokenThreeDigits; - case 'YYYY': - case 'GGGG': - case 'gggg': - return strict ? parseTokenFourDigits : parseTokenOneToFourDigits; - case 'Y': - case 'G': - case 'g': - return parseTokenSignedNumber; - case 'YYYYYY': - case 'YYYYY': - case 'GGGGG': - case 'ggggg': - return strict ? parseTokenSixDigits : parseTokenOneToSixDigits; - case 'S': - if (strict) { - return parseTokenOneDigit; + // LOCALES + + var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'); + function localeMonths (m) { + return this._months[m.month()]; + } + + var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'); + function localeMonthsShort (m) { + return this._monthsShort[m.month()]; + } + + function localeMonthsParse (monthName, format, strict) { + var i, mom, regex; + + if (!this._monthsParse) { + this._monthsParse = []; + this._longMonthsParse = []; + this._shortMonthsParse = []; + } + + for (i = 0; i < 12; i++) { + // make the regex if we don't have it already + mom = utc__createUTC([2000, i]); + if (strict && !this._longMonthsParse[i]) { + this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i'); + this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i'); } - /* falls through */ - case 'SS': - if (strict) { - return parseTokenTwoDigits; + if (!strict && !this._monthsParse[i]) { + regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, ''); + this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i'); } - /* falls through */ - case 'SSS': - if (strict) { - return parseTokenThreeDigits; + // test the regex + if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) { + return i; + } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) { + return i; + } else if (!strict && this._monthsParse[i].test(monthName)) { + return i; } - /* falls through */ - case 'DDD': - return parseTokenOneToThreeDigits; - case 'MMM': - case 'MMMM': - case 'dd': - case 'ddd': - case 'dddd': - return parseTokenWord; - case 'a': - case 'A': - return config._locale._meridiemParse; - case 'x': - return parseTokenOffsetMs; - case 'X': - return parseTokenTimestampMs; - case 'Z': - case 'ZZ': - return parseTokenTimezone; - case 'T': - return parseTokenT; - case 'SSSS': - return parseTokenDigits; - case 'MM': - case 'DD': - case 'YY': - case 'GG': - case 'gg': - case 'HH': - case 'hh': - case 'mm': - case 'ss': - case 'ww': - case 'WW': - return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits; - case 'M': - case 'D': - case 'd': - case 'H': - case 'h': - case 'm': - case 's': - case 'w': - case 'W': - case 'e': - case 'E': - return parseTokenOneOrTwoDigits; - case 'Do': - return strict ? config._locale._ordinalParse : config._locale._ordinalParseLenient; - default : - a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), 'i')); - return a; } } - function utcOffsetFromString(string) { - string = string || ''; - var possibleTzMatches = (string.match(parseTokenTimezone) || []), - tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [], - parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0], - minutes = +(parts[1] * 60) + toInt(parts[2]); + // MOMENTS + + function setMonth (mom, value) { + var dayOfMonth; + + // TODO: Move this out of here! + if (typeof value === 'string') { + value = mom.localeData().monthsParse(value); + // TODO: Another silent failure? + if (typeof value !== 'number') { + return mom; + } + } + + dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value)); + mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); + return mom; + } + + function getSetMonth (value) { + if (value != null) { + setMonth(this, value); + hooks__hooks.updateOffset(this, true); + return this; + } else { + return get_set__get(this, 'Month'); + } + } + + function getDaysInMonth () { + return daysInMonth(this.year(), this.month()); + } + + function checkOverflow (m) { + var overflow; + var a = m._a; + + if (a && m._pf.overflow === -2) { + overflow = + a[MONTH] < 0 || a[MONTH] > 11 ? MONTH : + a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE : + a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR : + a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE : + a[SECOND] < 0 || a[SECOND] > 59 ? SECOND : + a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND : + -1; + + if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) { + overflow = DATE; + } + + m._pf.overflow = overflow; + } + + return m; + } + + function warn(msg) { + if (hooks__hooks.suppressDeprecationWarnings === false && typeof console !== 'undefined' && console.warn) { + console.warn('Deprecation warning: ' + msg); + } + } + + function deprecate(msg, fn) { + var firstTime = true; + return extend(function () { + if (firstTime) { + warn(msg); + firstTime = false; + } + return fn.apply(this, arguments); + }, fn); + } + + var deprecations = {}; + + function deprecateSimple(name, msg) { + if (!deprecations[name]) { + warn(msg); + deprecations[name] = true; + } + } + + hooks__hooks.suppressDeprecationWarnings = false; + + var from_string__isoRegex = /^\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)?)?$/; + + var isoDates = [ + ['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}/] + ]; + + // iso time formats and regexes + var isoTimes = [ + ['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/] + ]; + + var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i; + + // date from iso format + function configFromISO(config) { + var i, l, + string = config._i, + match = from_string__isoRegex.exec(string); + + if (match) { + config._pf.iso = true; + for (i = 0, l = isoDates.length; i < l; i++) { + if (isoDates[i][1].exec(string)) { + // match[5] should be 'T' or undefined + config._f = isoDates[i][0] + (match[6] || ' '); + break; + } + } + for (i = 0, l = isoTimes.length; i < l; i++) { + if (isoTimes[i][1].exec(string)) { + config._f += isoTimes[i][0]; + break; + } + } + if (string.match(matchOffset)) { + config._f += 'Z'; + } + configFromStringAndFormat(config); + } else { + config._isValid = false; + } + } + + // date from iso format or fallback + function configFromString(config) { + var matched = aspNetJsonRegex.exec(config._i); + + if (matched !== null) { + config._d = new Date(+matched[1]); + return; + } + + configFromISO(config); + if (config._isValid === false) { + delete config._isValid; + hooks__hooks.createFromInputFallback(config); + } + } + + hooks__hooks.createFromInputFallback = deprecate( + '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 (config) { + config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + } + ); + + function createDate (y, m, d, h, M, s, ms) { + //can't just apply() to create a date: + //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply + var date = new Date(y, m, d, h, M, s, ms); + + //the date constructor doesn't accept years < 1970 + if (y < 1970) { + date.setFullYear(y); + } + return date; + } + + function createUTCDate (y) { + var date = new Date(Date.UTC.apply(null, arguments)); + if (y < 1970) { + date.setUTCFullYear(y); + } + return date; + } + + addFormatToken(0, ['YY', 2], 0, function () { + return this.year() % 100; + }); + + addFormatToken(0, ['YYYY', 4], 0, 'year'); + addFormatToken(0, ['YYYYY', 5], 0, 'year'); + addFormatToken(0, ['YYYYYY', 6, true], 0, 'year'); + + // ALIASES + + addUnitAlias('year', 'y'); + + // PARSING + + addRegexToken('Y', matchSigned); + addRegexToken('YY', match1to2, match2); + addRegexToken('YYYY', match1to4, match4); + addRegexToken('YYYYY', match1to6, match6); + addRegexToken('YYYYYY', match1to6, match6); + + addParseToken(['YYYY', 'YYYYY', 'YYYYYY'], YEAR); + addParseToken('YY', function (input, array) { + array[YEAR] = hooks__hooks.parseTwoDigitYear(input); + }); + + // HELPERS + + function daysInYear(year) { + return isLeapYear(year) ? 366 : 365; + } + + function isLeapYear(year) { + return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0; + } + + // HOOKS + + hooks__hooks.parseTwoDigitYear = function (input) { + return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); + }; + + // MOMENTS + + var getSetYear = makeGetSet('FullYear', false); + + function getIsLeapYear () { + return isLeapYear(this.year()); + } + + addFormatToken('w', ['ww', 2], 'wo', 'week'); + addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek'); + + // ALIASES + + addUnitAlias('week', 'w'); + addUnitAlias('isoWeek', 'W'); + + // PARSING + + addRegexToken('w', match1to2); + addRegexToken('ww', match1to2, match2); + addRegexToken('W', match1to2); + addRegexToken('WW', match1to2, match2); + + addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) { + week[token.substr(0, 1)] = toInt(input); + }); + + // HELPERS + + // firstDayOfWeek 0 = sun, 6 = sat + // the day of the week that starts the week + // (usually sunday or monday) + // firstDayOfWeekOfYear 0 = sun, 6 = sat + // the first week is the week that contains the first + // of this day of the week + // (eg. ISO weeks use thursday (4)) + function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { + var end = firstDayOfWeekOfYear - firstDayOfWeek, + daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), + adjustedMoment; + + + if (daysToDayOfWeek > end) { + daysToDayOfWeek -= 7; + } + + if (daysToDayOfWeek < end - 7) { + daysToDayOfWeek += 7; + } + + adjustedMoment = local__createLocal(mom).add(daysToDayOfWeek, 'd'); + return { + week: Math.ceil(adjustedMoment.dayOfYear() / 7), + year: adjustedMoment.year() + }; + } + + // LOCALES + + function localeWeek (mom) { + return weekOfYear(mom, this._week.dow, this._week.doy).week; + } + + var defaultLocaleWeek = { + dow : 0, // Sunday is the first day of the week. + doy : 6 // The week that contains Jan 1st is the first week of the year. + }; + + function localeFirstDayOfWeek () { + return this._week.dow; + } + + function localeFirstDayOfYear () { + return this._week.doy; + } + + // MOMENTS + + function getSetWeek (input) { + var week = this.localeData().week(this); + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + function getSetISOWeek (input) { + var week = weekOfYear(this, 1, 4).week; + return input == null ? week : this.add((input - week) * 7, 'd'); + } + + addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear'); + + // ALIASES + + addUnitAlias('dayOfYear', 'DDD'); + + // PARSING + + addRegexToken('DDD', match1to3); + addRegexToken('DDDD', match3); + addParseToken(['DDD', 'DDDD'], function (input, array, config) { + config._dayOfYear = toInt(input); + }); + + // HELPERS + + //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday + function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { + var d = createUTCDate(year, 0, 1).getUTCDay(); + var daysToAdd; + var dayOfYear; + + d = d === 0 ? 7 : d; + weekday = weekday != null ? weekday : firstDayOfWeek; + daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); + dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; - return parts[0] === '+' ? minutes : -minutes; + return { + year : dayOfYear > 0 ? year : year - 1, + dayOfYear : dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear + }; } - // function to convert string input to date - function addTimeToArrayFromToken(token, input, config) { - var a, datePartArray = config._a; + // MOMENTS - switch (token) { - // QUARTER - case 'Q': - if (input != null) { - datePartArray[MONTH] = (toInt(input) - 1) * 3; - } - break; - // MONTH - case 'M' : // fall through to MM - case 'MM' : - if (input != null) { - datePartArray[MONTH] = toInt(input) - 1; - } - break; - case 'MMM' : // fall through to MMMM - case 'MMMM' : - a = config._locale.monthsParse(input, token, config._strict); - // if we didn't find a month name, mark the date as invalid. - if (a != null) { - datePartArray[MONTH] = a; - } else { - config._pf.invalidMonth = input; - } - break; - // DAY OF MONTH - case 'D' : // fall through to DD - case 'DD' : - if (input != null) { - datePartArray[DATE] = toInt(input); - } - break; - case 'Do' : - if (input != null) { - datePartArray[DATE] = toInt(parseInt( - input.match(/\d{1,2}/)[0], 10)); - } - break; - // DAY OF YEAR - case 'DDD' : // fall through to DDDD - case 'DDDD' : - if (input != null) { - config._dayOfYear = toInt(input); - } + function getSetDayOfYear (input) { + var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1; + return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); + } - break; - // YEAR - case 'YY' : - datePartArray[YEAR] = moment.parseTwoDigitYear(input); - break; - case 'YYYY' : - case 'YYYYY' : - case 'YYYYYY' : - datePartArray[YEAR] = toInt(input); - break; - // AM / PM - case 'a' : // fall through to A - case 'A' : - config._meridiem = input; - // config._isPm = config._locale.isPM(input); - break; - // HOUR - case 'h' : // fall through to hh - case 'hh' : - config._pf.bigHour = true; - /* falls through */ - case 'H' : // fall through to HH - case 'HH' : - datePartArray[HOUR] = toInt(input); - break; - // MINUTE - case 'm' : // fall through to mm - case 'mm' : - datePartArray[MINUTE] = toInt(input); - break; - // SECOND - case 's' : // fall through to ss - case 'ss' : - datePartArray[SECOND] = toInt(input); - break; - // MILLISECOND - case 'S' : - case 'SS' : - case 'SSS' : - case 'SSSS' : - datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000); - break; - // UNIX OFFSET (MILLISECONDS) - case 'x': - config._d = new Date(toInt(input)); - break; - // UNIX TIMESTAMP WITH MS - case 'X': - config._d = new Date(parseFloat(input) * 1000); - break; - // TIMEZONE - case 'Z' : // fall through to ZZ - case 'ZZ' : - config._useUTC = true; - config._tzm = utcOffsetFromString(input); - break; - // WEEKDAY - human - case 'dd': - case 'ddd': - case 'dddd': - a = config._locale.weekdaysParse(input); - // if we didn't get a weekday name, mark the date as invalid - if (a != null) { - config._w = config._w || {}; - config._w['d'] = a; - } else { - config._pf.invalidWeekday = input; - } - break; - // WEEK, WEEK DAY - numeric - case 'w': - case 'ww': - case 'W': - case 'WW': - case 'd': - case 'e': - case 'E': - token = token.substr(0, 1); - /* falls through */ - case 'gggg': - case 'GGGG': - case 'GGGGG': - token = token.substr(0, 2); - if (input) { - config._w = config._w || {}; - config._w[token] = toInt(input); - } - break; - case 'gg': - case 'GG': - config._w = config._w || {}; - config._w[token] = moment.parseTwoDigitYear(input); + // Pick the first defined of two or three arguments. + function defaults(a, b, c) { + if (a != null) { + return a; } + if (b != null) { + return b; + } + return c; } - function dayOfYearFromWeekInfo(config) { - var w, weekYear, week, weekday, dow, doy, temp; - - w = config._w; - if (w.GG != null || w.W != null || w.E != null) { - dow = 1; - doy = 4; - - // TODO: We need to take the current isoWeekYear, but that depends on - // how we interpret now (local, utc, fixed offset). So create - // a now version of current config (take local/utc/offset flags, and - // create now). - weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year); - week = dfl(w.W, 1); - weekday = dfl(w.E, 1); - } else { - dow = config._locale._week.dow; - doy = config._locale._week.doy; - - weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year); - week = dfl(w.w, 1); - - if (w.d != null) { - // weekday -- low day numbers are considered next week - weekday = w.d; - if (weekday < dow) { - ++week; - } - } else if (w.e != null) { - // local weekday -- counting starts from begining of week - weekday = w.e + dow; - } else { - // default to begining of week - weekday = dow; - } + function currentDateArray(config) { + var now = new Date(); + if (config._useUTC) { + return [now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()]; } - temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); - - config._a[YEAR] = temp.year; - config._dayOfYear = temp.dayOfYear; + return [now.getFullYear(), now.getMonth(), now.getDate()]; } // convert an array to a date. // the array should mirror the parameters below // note: all values past the year are optional and will default to the lowest possible value. // [year, month, day , hour, minute, second, millisecond] - function dateFromConfig(config) { + function configFromArray (config) { var i, date, input = [], currentDate, yearToUse; if (config._d) { @@ -26733,13 +26353,13 @@ return /******/ (function(modules) { // webpackBootstrap //if the day of the year is set, figure out what it is if (config._dayOfYear) { - yearToUse = dfl(config._a[YEAR], currentDate[YEAR]); + yearToUse = defaults(config._a[YEAR], currentDate[YEAR]); if (config._dayOfYear > daysInYear(yearToUse)) { config._pf._overflowDayOfYear = true; } - date = makeUTCDate(yearToUse, 0, config._dayOfYear); + date = createUTCDate(yearToUse, 0, config._dayOfYear); config._a[MONTH] = date.getUTCMonth(); config._a[DATE] = date.getUTCDate(); } @@ -26767,7 +26387,7 @@ return /******/ (function(modules) { // webpackBootstrap config._a[HOUR] = 0; } - config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input); + config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input); // Apply timezone offset from input. The actual utcOffset can be changed // with parseZone. if (config._tzm != null) { @@ -26779,44 +26399,55 @@ return /******/ (function(modules) { // webpackBootstrap } } - function dateFromObject(config) { - var normalizedInput; + function dayOfYearFromWeekInfo(config) { + var w, weekYear, week, weekday, dow, doy, temp; - if (config._d) { - return; - } + w = config._w; + if (w.GG != null || w.W != null || w.E != null) { + dow = 1; + doy = 4; - normalizedInput = normalizeObjectUnits(config._i); - config._a = [ - normalizedInput.year, - normalizedInput.month, - normalizedInput.day || normalizedInput.date, - normalizedInput.hour, - normalizedInput.minute, - normalizedInput.second, - normalizedInput.millisecond - ]; + // TODO: We need to take the current isoWeekYear, but that depends on + // how we interpret now (local, utc, fixed offset). So create + // a now version of current config (take local/utc/offset flags, and + // create now). + weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(local__createLocal(), 1, 4).year); + week = defaults(w.W, 1); + weekday = defaults(w.E, 1); + } else { + dow = config._locale._week.dow; + doy = config._locale._week.doy; - dateFromConfig(config); - } + weekYear = defaults(w.gg, config._a[YEAR], weekOfYear(local__createLocal(), dow, doy).year); + week = defaults(w.w, 1); - function currentDateArray(config) { - var now = new Date(); - if (config._useUTC) { - return [ - now.getUTCFullYear(), - now.getUTCMonth(), - now.getUTCDate() - ]; - } else { - return [now.getFullYear(), now.getMonth(), now.getDate()]; + if (w.d != null) { + // weekday -- low day numbers are considered next week + weekday = w.d; + if (weekday < dow) { + ++week; + } + } else if (w.e != null) { + // local weekday -- counting starts from begining of week + weekday = w.e + dow; + } else { + // default to begining of week + weekday = dow; + } } + temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow); + + config._a[YEAR] = temp.year; + config._dayOfYear = temp.dayOfYear; } + hooks__hooks.ISO_8601 = function () {}; + // date from string and format string - function makeDateFromStringAndFormat(config) { - if (config._f === moment.ISO_8601) { - parseISO(config); + function configFromStringAndFormat(config) { + // TODO: Move this to another part of the creation flow to prevent circular deps + if (config._f === hooks__hooks.ISO_8601) { + configFromISO(config); return; } @@ -26868,25 +26499,39 @@ return /******/ (function(modules) { // webpackBootstrap config._pf.bigHour = undefined; } // handle meridiem - config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], - config._meridiem); - dateFromConfig(config); + config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem); + + configFromArray(config); checkOverflow(config); } - function unescapeFormat(s) { - return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) { - return p1 || p2 || p3 || p4; - }); - } - // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript - function regexpEscape(s) { - return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'); + function meridiemFixWrap (locale, hour, meridiem) { + var isPm; + + if (meridiem == null) { + // nothing to do + return hour; + } + if (locale.meridiemHour != null) { + return locale.meridiemHour(hour, meridiem); + } else if (locale.isPM != null) { + // Fallback + isPm = locale.isPM(meridiem); + if (isPm && hour < 12) { + hour += 12; + } + if (!isPm && hour === 12) { + hour = 0; + } + return hour; + } else { + // this is not supposed to happen + return hour; + } } - // date from string and array of format strings - function makeDateFromStringAndArray(config) { + function configFromStringAndArray(config) { var tempConfig, bestMoment, @@ -26908,9 +26553,9 @@ return /******/ (function(modules) { // webpackBootstrap } tempConfig._pf = defaultParsingFlags(); tempConfig._f = config._f[i]; - makeDateFromStringAndFormat(tempConfig); + configFromStringAndFormat(tempConfig); - if (!isValid(tempConfig)) { + if (!valid__isValid(tempConfig)) { continue; } @@ -26931,349 +26576,399 @@ return /******/ (function(modules) { // webpackBootstrap extend(config, bestMoment || tempConfig); } - // date from iso format - function parseISO(config) { - var i, l, - string = config._i, - match = isoRegex.exec(string); - - if (match) { - config._pf.iso = true; - for (i = 0, l = isoDates.length; i < l; i++) { - if (isoDates[i][1].exec(string)) { - // match[5] should be 'T' or undefined - config._f = isoDates[i][0] + (match[6] || ' '); - break; - } - } - for (i = 0, l = isoTimes.length; i < l; i++) { - if (isoTimes[i][1].exec(string)) { - config._f += isoTimes[i][0]; - break; - } - } - if (string.match(parseTokenTimezone)) { - config._f += 'Z'; - } - makeDateFromStringAndFormat(config); - } else { - config._isValid = false; + function configFromObject(config) { + if (config._d) { + return; } + + var i = normalizeObjectUnits(config._i); + config._a = [i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond]; + + configFromArray(config); } - // date from iso format or fallback - function makeDateFromString(config) { - parseISO(config); - if (config._isValid === false) { - delete config._isValid; - moment.createFromInputFallback(config); + function createFromConfig (config) { + var input = config._i, + format = config._f, + res; + + config._locale = config._locale || locales__getLocale(config._l); + + if (input === null || (format === undefined && input === '')) { + return valid__createInvalid({nullInput: true}); } - } - function map(arr, fn) { - var res = [], i; - for (i = 0; i < arr.length; ++i) { - res.push(fn(arr[i], i)); + if (typeof input === 'string') { + config._i = input = config._locale.preparse(input); + } + + if (isMoment(input)) { + return new Moment(checkOverflow(input)); + } else if (isArray(format)) { + configFromStringAndArray(config); + } else if (format) { + configFromStringAndFormat(config); + } else { + configFromInput(config); + } + + res = new Moment(checkOverflow(config)); + if (res._nextDay) { + // Adding is smart enough around DST + res.add(1, 'd'); + res._nextDay = undefined; } + return res; } - function makeDateFromInput(config) { - var input = config._i, matched; + function configFromInput(config) { + var input = config._i; if (input === undefined) { config._d = new Date(); } else if (isDate(input)) { config._d = new Date(+input); - } else if ((matched = aspNetJsonRegex.exec(input)) !== null) { - config._d = new Date(+matched[1]); } else if (typeof input === 'string') { - makeDateFromString(config); + configFromString(config); } else if (isArray(input)) { config._a = map(input.slice(0), function (obj) { return parseInt(obj, 10); }); - dateFromConfig(config); + configFromArray(config); } else if (typeof(input) === 'object') { - dateFromObject(config); + configFromObject(config); } else if (typeof(input) === 'number') { // from milliseconds config._d = new Date(input); } else { - moment.createFromInputFallback(config); + hooks__hooks.createFromInputFallback(config); } } - function makeDate(y, m, d, h, M, s, ms) { - //can't just apply() to create a date: - //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply - var date = new Date(y, m, d, h, M, s, ms); + function createLocalOrUTC (input, format, locale, strict, isUTC) { + var c = {}; - //the date constructor doesn't accept years < 1970 - if (y < 1970) { - date.setFullYear(y); + if (typeof(locale) === 'boolean') { + strict = locale; + locale = undefined; } - return date; + // object construction must be done this way. + // https://github.com/moment/moment/issues/1423 + c._isAMomentObject = true; + c._useUTC = c._isUTC = isUTC; + c._l = locale; + c._i = input; + c._f = format; + c._strict = strict; + c._pf = defaultParsingFlags(); + + return createFromConfig(c); } - function makeUTCDate(y) { - var date = new Date(Date.UTC.apply(null, arguments)); - if (y < 1970) { - date.setUTCFullYear(y); - } - return date; + function local__createLocal (input, format, locale, strict) { + return createLocalOrUTC(input, format, locale, strict, false); } - function parseWeekday(input, locale) { - if (typeof input === 'string') { - if (!isNaN(input)) { - input = parseInt(input, 10); - } - else { - input = locale.weekdaysParse(input); - if (typeof input !== 'number') { - return null; - } + var prototypeMin = deprecate( + 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other < this ? this : other; + } + ); + + var prototypeMax = deprecate( + 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', + function () { + var other = local__createLocal.apply(null, arguments); + return other > this ? this : other; + } + ); + + // Pick a moment m from moments so that m[fn](other) is true for all + // other. This relies on the function fn to be transitive. + // + // moments should either be an array of moment objects or an array, whose + // first element is an array of moment objects. + function pickBy(fn, moments) { + var res, i; + if (moments.length === 1 && isArray(moments[0])) { + moments = moments[0]; + } + if (!moments.length) { + return local__createLocal(); + } + res = moments[0]; + for (i = 1; i < moments.length; ++i) { + if (moments[i][fn](res)) { + res = moments[i]; } } - return input; + return res; } - /************************************ - Relative Time - ************************************/ + // TODO: Use [].sort instead? + function min () { + var args = [].slice.call(arguments, 0); + return pickBy('isBefore', args); + } - // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize - function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { - return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + function max () { + var args = [].slice.call(arguments, 0); + + return pickBy('isAfter', args); } - function relativeTime(posNegDuration, withoutSuffix, locale) { - var duration = moment.duration(posNegDuration).abs(), - seconds = round(duration.as('s')), - minutes = round(duration.as('m')), - hours = round(duration.as('h')), - days = round(duration.as('d')), - months = round(duration.as('M')), - years = round(duration.as('y')), + function Duration (duration) { + var normalizedInput = normalizeObjectUnits(duration), + years = normalizedInput.year || 0, + quarters = normalizedInput.quarter || 0, + months = normalizedInput.month || 0, + weeks = normalizedInput.week || 0, + days = normalizedInput.day || 0, + hours = normalizedInput.hour || 0, + minutes = normalizedInput.minute || 0, + seconds = normalizedInput.second || 0, + milliseconds = normalizedInput.millisecond || 0; - args = seconds < relativeTimeThresholds.s && ['s', seconds] || - minutes === 1 && ['m'] || - minutes < relativeTimeThresholds.m && ['mm', minutes] || - hours === 1 && ['h'] || - hours < relativeTimeThresholds.h && ['hh', hours] || - days === 1 && ['d'] || - days < relativeTimeThresholds.d && ['dd', days] || - months === 1 && ['M'] || - months < relativeTimeThresholds.M && ['MM', months] || - years === 1 && ['y'] || ['yy', years]; + // representation for dateAddRemove + this._milliseconds = +milliseconds + + seconds * 1e3 + // 1000 + minutes * 6e4 + // 1000 * 60 + hours * 36e5; // 1000 * 60 * 60 + // Because of dateAddRemove treats 24 hours as different from a + // day when working around DST, we need to store them separately + this._days = +days + + weeks * 7; + // It is impossible translate months into days without knowing + // which months you are are talking about, so we have to store + // it separately. + this._months = +months + + quarters * 3 + + years * 12; - args[2] = withoutSuffix; - args[3] = +posNegDuration > 0; - args[4] = locale; - return substituteTimeAgo.apply({}, args); - } + this._data = {}; + this._locale = locales__getLocale(); - /************************************ - Week of Year - ************************************/ + this._bubble(); + } + function isDuration (obj) { + return obj instanceof Duration; + } - // firstDayOfWeek 0 = sun, 6 = sat - // the day of the week that starts the week - // (usually sunday or monday) - // firstDayOfWeekOfYear 0 = sun, 6 = sat - // the first week is the week that contains the first - // of this day of the week - // (eg. ISO weeks use thursday (4)) - function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) { - var end = firstDayOfWeekOfYear - firstDayOfWeek, - daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(), - adjustedMoment; + function offset (token, separator) { + addFormatToken(token, 0, 0, function () { + var offset = this.utcOffset(); + var sign = '+'; + if (offset < 0) { + offset = -offset; + sign = '-'; + } + return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2); + }); + } + offset('Z', ':'); + offset('ZZ', ''); - if (daysToDayOfWeek > end) { - daysToDayOfWeek -= 7; - } + // PARSING - if (daysToDayOfWeek < end - 7) { - daysToDayOfWeek += 7; - } + addRegexToken('Z', matchOffset); + addRegexToken('ZZ', matchOffset); + addParseToken(['Z', 'ZZ'], function (input, array, config) { + config._useUTC = true; + config._tzm = offsetFromString(input); + }); - adjustedMoment = moment(mom).add(daysToDayOfWeek, 'd'); - return { - week: Math.ceil(adjustedMoment.dayOfYear() / 7), - year: adjustedMoment.year() - }; - } + // HELPERS - //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday - function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) { - var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear; + // timezone chunker + // '+10:00' > ['10', '00'] + // '-1530' > ['-15', '30'] + var chunkOffset = /([\+\-]|\d\d)/gi; - d = d === 0 ? 7 : d; - weekday = weekday != null ? weekday : firstDayOfWeek; - daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0); - dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1; + function offsetFromString(string) { + var matches = ((string || '').match(matchOffset) || []); + var chunk = matches[matches.length - 1] || []; + var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0]; + var minutes = +(parts[1] * 60) + toInt(parts[2]); - return { - year: dayOfYear > 0 ? year : year - 1, - dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear - }; + return parts[0] === '+' ? minutes : -minutes; } - /************************************ - Top Level Functions - ************************************/ + // Return a moment from input, that is local/utc/zone equivalent to model. + function cloneWithOffset(input, model) { + var res, diff; + if (model._isUTC) { + res = model.clone(); + diff = (isMoment(input) || isDate(input) ? +input : +local__createLocal(input)) - (+res); + // Use low-level api, because this fn is low-level api. + res._d.setTime(+res._d + diff); + hooks__hooks.updateOffset(res, false); + return res; + } else { + return local__createLocal(input).local(); + } + return model._isUTC ? local__createLocal(input).zone(model._offset || 0) : local__createLocal(input).local(); + } - function makeMoment(config) { - var input = config._i, - format = config._f, - res; + function getDateOffset (m) { + // On Firefox.24 Date#getTimezoneOffset returns a floating point. + // https://github.com/moment/moment/pull/1871 + return -Math.round(m._d.getTimezoneOffset() / 15) * 15; + } - config._locale = config._locale || moment.localeData(config._l); + // HOOKS - if (input === null || (format === undefined && input === '')) { - return moment.invalid({nullInput: true}); - } + // This function will be called whenever a moment is mutated. + // It is intended to keep the offset in sync with the timezone. + hooks__hooks.updateOffset = function () {}; - if (typeof input === 'string') { - config._i = input = config._locale.preparse(input); - } + // MOMENTS - if (moment.isMoment(input)) { - return new Moment(input, true); - } else if (format) { - if (isArray(format)) { - makeDateFromStringAndArray(config); - } else { - makeDateFromStringAndFormat(config); + // keepLocalTime = true means only change the timezone, without + // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> + // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset + // +0200, so we adjust the time as needed, to be valid. + // + // Keeping the time actually adds/subtracts (one hour) + // from the actual represented time. That is why we call updateOffset + // a second time. In case it wants us to change the offset again + // _changeInProgress == true case, then we have to adjust, because + // there is no such time in the given timezone. + function getSetOffset (input, keepLocalTime) { + var offset = this._offset || 0, + localAdjust; + if (input != null) { + if (typeof input === 'string') { + input = offsetFromString(input); + } + if (Math.abs(input) < 16) { + input = input * 60; + } + if (!this._isUTC && keepLocalTime) { + localAdjust = getDateOffset(this); + } + this._offset = input; + this._isUTC = true; + if (localAdjust != null) { + this.add(localAdjust, 'm'); + } + if (offset !== input) { + if (!keepLocalTime || this._changeInProgress) { + add_subtract__addSubtract(this, create__createDuration(input - offset, 'm'), 1, false); + } else if (!this._changeInProgress) { + this._changeInProgress = true; + hooks__hooks.updateOffset(this, true); + this._changeInProgress = null; + } } + return this; } else { - makeDateFromInput(config); - } - - res = new Moment(config); - if (res._nextDay) { - // Adding is smart enough around DST - res.add(1, 'd'); - res._nextDay = undefined; + return this._isUTC ? offset : getDateOffset(this); } - - return res; } - moment = function (input, format, locale, strict) { - var c; + function getSetZone (input, keepLocalTime) { + if (input != null) { + if (typeof input !== 'string') { + input = -input; + } - if (typeof(locale) === 'boolean') { - strict = locale; - locale = undefined; + this.utcOffset(input, keepLocalTime); + + return this; + } else { + return -this.utcOffset(); } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._i = input; - c._f = format; - c._l = locale; - c._strict = strict; - c._isUTC = false; - c._pf = defaultParsingFlags(); + } - return makeMoment(c); - }; + function setOffsetToUTC (keepLocalTime) { + return this.utcOffset(0, keepLocalTime); + } - moment.suppressDeprecationWarnings = false; + function setOffsetToLocal (keepLocalTime) { + if (this._isUTC) { + this.utcOffset(0, keepLocalTime); + this._isUTC = false; - moment.createFromInputFallback = deprecate( - '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 (config) { - config._d = new Date(config._i + (config._useUTC ? ' UTC' : '')); + if (keepLocalTime) { + this.subtract(getDateOffset(this), 'm'); + } } - ); + return this; + } - // Pick a moment m from moments so that m[fn](other) is true for all - // other. This relies on the function fn to be transitive. - // - // moments should either be an array of moment objects or an array, whose - // first element is an array of moment objects. - function pickBy(fn, moments) { - var res, i; - if (moments.length === 1 && isArray(moments[0])) { - moments = moments[0]; + function setOffsetToParsedOffset () { + if (this._tzm) { + this.utcOffset(this._tzm); + } else if (typeof this._i === 'string') { + this.utcOffset(offsetFromString(this._i)); } - if (!moments.length) { - return moment(); + return this; + } + + function hasAlignedHourOffset (input) { + if (!input) { + input = 0; } - res = moments[0]; - for (i = 1; i < moments.length; ++i) { - if (moments[i][fn](res)) { - res = moments[i]; - } + else { + input = local__createLocal(input).utcOffset(); } - return res; + + return (this.utcOffset() - input) % 60 === 0; } - moment.min = function () { - var args = [].slice.call(arguments, 0); + function isDaylightSavingTime () { + return ( + this.utcOffset() > this.clone().month(0).utcOffset() || + this.utcOffset() > this.clone().month(5).utcOffset() + ); + } - return pickBy('isBefore', args); - }; + function isDaylightSavingTimeShifted () { + if (this._a) { + var other = this._isUTC ? utc__createUTC(this._a) : local__createLocal(this._a); + return this.isValid() && compareArrays(this._a, other.toArray()) > 0; + } - moment.max = function () { - var args = [].slice.call(arguments, 0); + return false; + } - return pickBy('isAfter', args); - }; + function isLocal () { + return !this._isUTC; + } - // creating with utc - moment.utc = function (input, format, locale, strict) { - var c; + function isUtcOffset () { + return this._isUTC; + } - if (typeof(locale) === 'boolean') { - strict = locale; - locale = undefined; - } - // object construction must be done this way. - // https://github.com/moment/moment/issues/1423 - c = {}; - c._isAMomentObject = true; - c._useUTC = true; - c._isUTC = true; - c._l = locale; - c._i = input; - c._f = format; - c._strict = strict; - c._pf = defaultParsingFlags(); + function isUtc () { + return this._isUTC && this._offset === 0; + } - return makeMoment(c).utc(); - }; + var aspNetRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/; - // creating with unix timestamp (in seconds) - moment.unix = function (input) { - return moment(input * 1000); - }; + // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html + // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere + var create__isoRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/; - // duration - moment.duration = function (input, key) { + function create__createDuration (input, key) { var duration = input, // matching against regexp is expensive, do it on demand match = null, sign, ret, - parseIso, diffRes; - if (moment.isDuration(input)) { + if (isDuration(input)) { duration = { - ms: input._milliseconds, - d: input._days, - M: input._months + ms : input._milliseconds, + d : input._days, + M : input._months }; } else if (typeof input === 'number') { duration = {}; @@ -27282,1060 +26977,1412 @@ return /******/ (function(modules) { // webpackBootstrap } else { duration.milliseconds = input; } - } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) { + } else if (!!(match = aspNetRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; duration = { - y: 0, - d: toInt(match[DATE]) * sign, - h: toInt(match[HOUR]) * sign, - m: toInt(match[MINUTE]) * sign, - s: toInt(match[SECOND]) * sign, - ms: toInt(match[MILLISECOND]) * sign + y : 0, + d : toInt(match[DATE]) * sign, + h : toInt(match[HOUR]) * sign, + m : toInt(match[MINUTE]) * sign, + s : toInt(match[SECOND]) * sign, + ms : toInt(match[MILLISECOND]) * sign }; - } else if (!!(match = isoDurationRegex.exec(input))) { + } else if (!!(match = create__isoRegex.exec(input))) { sign = (match[1] === '-') ? -1 : 1; - parseIso = function (inp) { - // We'd normally use ~~inp for this, but unfortunately it also - // converts floats to ints. - // inp may be undefined, so careful calling replace on it. - var res = inp && parseFloat(inp.replace(',', '.')); - // apply sign while we're at it - return (isNaN(res) ? 0 : res) * sign; - }; duration = { - y: parseIso(match[2]), - M: parseIso(match[3]), - d: parseIso(match[4]), - h: parseIso(match[5]), - m: parseIso(match[6]), - s: parseIso(match[7]), - w: parseIso(match[8]) + y : parseIso(match[2], sign), + M : parseIso(match[3], sign), + d : parseIso(match[4], sign), + h : parseIso(match[5], sign), + m : parseIso(match[6], sign), + s : parseIso(match[7], sign), + w : parseIso(match[8], sign) }; } else if (duration == null) {// checks for null or undefined duration = {}; - } else if (typeof duration === 'object' && - ('from' in duration || 'to' in duration)) { - diffRes = momentsDifference(moment(duration.from), moment(duration.to)); + } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) { + diffRes = momentsDifference(local__createLocal(duration.from), local__createLocal(duration.to)); duration = {}; duration.ms = diffRes.milliseconds; duration.M = diffRes.months; } - ret = new Duration(duration); + ret = new Duration(duration); + + if (isDuration(input) && hasOwnProp(input, '_locale')) { + ret._locale = input._locale; + } + + return ret; + } + + function parseIso (inp, sign) { + // We'd normally use ~~inp for this, but unfortunately it also + // converts floats to ints. + // inp may be undefined, so careful calling replace on it. + var res = inp && parseFloat(inp.replace(',', '.')); + // apply sign while we're at it + return (isNaN(res) ? 0 : res) * sign; + } + + function positiveMomentsDifference(base, other) { + var res = {milliseconds: 0, months: 0}; + + res.months = other.month() - base.month() + + (other.year() - base.year()) * 12; + if (base.clone().add(res.months, 'M').isAfter(other)) { + --res.months; + } + + res.milliseconds = +other - +(base.clone().add(res.months, 'M')); + + return res; + } + + function momentsDifference(base, other) { + var res; + other = cloneWithOffset(other, base); + if (base.isBefore(other)) { + res = positiveMomentsDifference(base, other); + } else { + res = positiveMomentsDifference(other, base); + res.milliseconds = -res.milliseconds; + res.months = -res.months; + } + + return res; + } + + function createAdder(direction, name) { + return function (val, period) { + var dur, tmp; + //invert the arguments, but complain about it + if (period !== null && !isNaN(+period)) { + deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period).'); + tmp = val; val = period; period = tmp; + } + + val = typeof val === 'string' ? +val : val; + dur = create__createDuration(val, period); + add_subtract__addSubtract(this, dur, direction); + return this; + }; + } + + function add_subtract__addSubtract (mom, duration, isAdding, updateOffset) { + var milliseconds = duration._milliseconds, + days = duration._days, + months = duration._months; + updateOffset = updateOffset == null ? true : updateOffset; + + if (milliseconds) { + mom._d.setTime(+mom._d + milliseconds * isAdding); + } + if (days) { + get_set__set(mom, 'Date', get_set__get(mom, 'Date') + days * isAdding); + } + if (months) { + setMonth(mom, get_set__get(mom, 'Month') + months * isAdding); + } + if (updateOffset) { + hooks__hooks.updateOffset(mom, days || months); + } + } + + var add_subtract__add = createAdder(1, 'add'); + var add_subtract__subtract = createAdder(-1, 'subtract'); - if (moment.isDuration(input) && hasOwnProp(input, '_locale')) { - ret._locale = input._locale; + function calendar__calendar (time) { + // We want to compare the start of today, vs this. + // Getting start-of-today depends on whether we're local/utc/offset or not. + var now = time || local__createLocal(), + sod = cloneWithOffset(now, this).startOf('day'), + diff = this.diff(sod, 'days', true), + format = diff < -6 ? 'sameElse' : + diff < -1 ? 'lastWeek' : + diff < 0 ? 'lastDay' : + diff < 1 ? 'sameDay' : + diff < 2 ? 'nextDay' : + diff < 7 ? 'nextWeek' : 'sameElse'; + return this.format(this.localeData().calendar(format, this, local__createLocal(now))); + } + + function clone () { + return new Moment(this); + } + + function isAfter (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this > +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return inputMs < +this.clone().startOf(units); } + } - return ret; - }; + function isBefore (input, units) { + var inputMs; + units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this < +input; + } else { + inputMs = isMoment(input) ? +input : +local__createLocal(input); + return +this.clone().endOf(units) < inputMs; + } + } - // version number - moment.version = VERSION; + function isBetween (from, to, units) { + return this.isAfter(from, units) && this.isBefore(to, units); + } - // default format - moment.defaultFormat = isoFormat; + function isSame (input, units) { + var inputMs; + units = normalizeUnits(units || 'millisecond'); + if (units === 'millisecond') { + input = isMoment(input) ? input : local__createLocal(input); + return +this === +input; + } else { + inputMs = +local__createLocal(input); + return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); + } + } - // constant that refers to the ISO standard - moment.ISO_8601 = function () {}; + function absFloor (number) { + if (number < 0) { + return Math.ceil(number); + } else { + return Math.floor(number); + } + } - // Plugins that add properties should also add the key here (null value), - // so we can properly clone ourselves. - moment.momentProperties = momentProperties; + function diff (input, units, asFloat) { + var that = cloneWithOffset(input, this), + zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4, + delta, output; - // This function will be called whenever a moment is mutated. - // It is intended to keep the offset in sync with the timezone. - moment.updateOffset = function () {}; + units = normalizeUnits(units); - // This function allows you to set a threshold for relative time strings - moment.relativeTimeThreshold = function (threshold, limit) { - if (relativeTimeThresholds[threshold] === undefined) { - return false; - } - if (limit === undefined) { - return relativeTimeThresholds[threshold]; + if (units === 'year' || units === 'month' || units === 'quarter') { + output = monthDiff(this, that); + if (units === 'quarter') { + output = output / 3; + } else if (units === 'year') { + output = output / 12; + } + } else { + delta = this - that; + output = units === 'second' ? delta / 1e3 : // 1000 + units === 'minute' ? delta / 6e4 : // 1000 * 60 + units === 'hour' ? delta / 36e5 : // 1000 * 60 * 60 + units === 'day' ? (delta - zoneDelta) / 864e5 : // 1000 * 60 * 60 * 24, negate dst + units === 'week' ? (delta - zoneDelta) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst + delta; } - relativeTimeThresholds[threshold] = limit; - return true; - }; + return asFloat ? output : absFloor(output); + } + + function monthDiff (a, b) { + // difference in months + var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()), + // b is in (anchor - 1 month, anchor + 1 month) + anchor = a.clone().add(wholeMonthDiff, 'months'), + anchor2, adjust; - moment.lang = deprecate( - 'moment.lang is deprecated. Use moment.locale instead.', - function (key, value) { - return moment.locale(key, value); + if (b - anchor < 0) { + anchor2 = a.clone().add(wholeMonthDiff - 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor - anchor2); + } else { + anchor2 = a.clone().add(wholeMonthDiff + 1, 'months'); + // linear across the month + adjust = (b - anchor) / (anchor2 - anchor); } - ); - // This function will load locale and then set the global locale. If - // no arguments are passed in, it will simply return the current global - // locale key. - moment.locale = function (key, values) { - var data; - if (key) { - if (typeof(values) !== 'undefined') { - data = moment.defineLocale(key, values); - } - else { - data = moment.localeData(key); - } + return -(wholeMonthDiff + adjust); + } - if (data) { - moment.duration._locale = moment._locale = data; + hooks__hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ'; + + function toString () { + return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); + } + + function moment_format__toISOString () { + var m = this.clone().utc(); + if (0 < m.year() && m.year() <= 9999) { + if ('function' === typeof Date.prototype.toISOString) { + // native implementation is ~50x faster, use it when we can + return this.toDate().toISOString(); + } else { + return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); } + } else { + return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); } + } - return moment._locale._abbr; - }; + function format (inputString) { + var output = formatMoment(this, inputString || hooks__hooks.defaultFormat); + return this.localeData().postformat(output); + } - moment.defineLocale = function (name, values) { - if (values !== null) { - values.abbr = name; - if (!locales[name]) { - locales[name] = new Locale(); - } - locales[name].set(values); + function from (time, withoutSuffix) { + return create__createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); + } - // backwards compat for now: also set the locale - moment.locale(name); + function fromNow (withoutSuffix) { + return this.from(local__createLocal(), withoutSuffix); + } - return locales[name]; + function locale (key) { + var newLocaleData; + + if (key === undefined) { + return this._locale._abbr; } else { - // useful for testing - delete locales[name]; - return null; + newLocaleData = locales__getLocale(key); + if (newLocaleData != null) { + this._locale = newLocaleData; + } + return this; } - }; + } - moment.langData = deprecate( - 'moment.langData is deprecated. Use moment.localeData instead.', + var lang = deprecate( + 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', function (key) { - return moment.localeData(key); + if (key === undefined) { + return this.localeData(); + } else { + return this.locale(key); + } } ); - // returns locale data - moment.localeData = function (key) { - var locale; + function localeData () { + return this._locale; + } - if (key && key._locale && key._locale._abbr) { - key = key._locale._abbr; + function startOf (units) { + units = normalizeUnits(units); + // the following switch intentionally omits break keywords + // to utilize falling through the cases. + switch (units) { + case 'year': + this.month(0); + /* falls through */ + case 'quarter': + case 'month': + this.date(1); + /* falls through */ + case 'week': + case 'isoWeek': + case 'day': + this.hours(0); + /* falls through */ + case 'hour': + this.minutes(0); + /* falls through */ + case 'minute': + this.seconds(0); + /* falls through */ + case 'second': + this.milliseconds(0); + /* falls through */ } - if (!key) { - return moment._locale; + // weeks are a special case + if (units === 'week') { + this.weekday(0); + } + if (units === 'isoWeek') { + this.isoWeekday(1); } - if (!isArray(key)) { - //short-circuit everything else - locale = loadLocale(key); - if (locale) { - return locale; - } - key = [key]; + // quarters are also special + if (units === 'quarter') { + this.month(Math.floor(this.month() / 3) * 3); } - return chooseLocale(key); - }; + return this; + } - // compare moment object - moment.isMoment = function (obj) { - return obj instanceof Moment || - (obj != null && hasOwnProp(obj, '_isAMomentObject')); - }; + function endOf (units) { + units = normalizeUnits(units); + if (units === undefined || units === 'millisecond') { + return this; + } + return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); + } - // for typechecking Duration objects - moment.isDuration = function (obj) { - return obj instanceof Duration; - }; + function to_type__valueOf () { + return +this._d - ((this._offset || 0) * 60000); + } - for (i = lists.length - 1; i >= 0; --i) { - makeList(lists[i]); + function unix () { + return Math.floor(+this / 1000); } - moment.normalizeUnits = function (units) { - return normalizeUnits(units); - }; + function toDate () { + return this._offset ? new Date(+this) : this._d; + } - moment.invalid = function (flags) { - var m = moment.utc(NaN); - if (flags != null) { - extend(m._pf, flags); - } - else { - m._pf.userInvalidated = true; - } + function toArray () { + var m = this; + return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()]; + } - return m; - }; + function moment_valid__isValid () { + return valid__isValid(this); + } - moment.parseZone = function () { - return moment.apply(null, arguments).parseZone(); - }; + function parsingFlags () { + return extend({}, this._pf); + } - moment.parseTwoDigitYear = function (input) { - return toInt(input) + (toInt(input) > 68 ? 1900 : 2000); - }; + function invalidAt () { + return this._pf.overflow; + } - moment.isDate = isDate; + addFormatToken(0, ['gg', 2], 0, function () { + return this.weekYear() % 100; + }); - /************************************ - Moment Prototype - ************************************/ + addFormatToken(0, ['GG', 2], 0, function () { + return this.isoWeekYear() % 100; + }); + function addWeekYearFormatToken (token, getter) { + addFormatToken(0, [token, token.length], 0, getter); + } - extend(moment.fn = Moment.prototype, { + addWeekYearFormatToken('gggg', 'weekYear'); + addWeekYearFormatToken('ggggg', 'weekYear'); + addWeekYearFormatToken('GGGG', 'isoWeekYear'); + addWeekYearFormatToken('GGGGG', 'isoWeekYear'); - clone : function () { - return moment(this); - }, + // ALIASES - valueOf : function () { - return +this._d - ((this._offset || 0) * 60000); - }, + addUnitAlias('weekYear', 'gg'); + addUnitAlias('isoWeekYear', 'GG'); - unix : function () { - return Math.floor(+this / 1000); - }, + // PARSING - toString : function () { - return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ'); - }, + addRegexToken('G', matchSigned); + addRegexToken('g', matchSigned); + addRegexToken('GG', match1to2, match2); + addRegexToken('gg', match1to2, match2); + addRegexToken('GGGG', match1to4, match4); + addRegexToken('gggg', match1to4, match4); + addRegexToken('GGGGG', match1to6, match6); + addRegexToken('ggggg', match1to6, match6); - toDate : function () { - return this._offset ? new Date(+this) : this._d; - }, + addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) { + week[token.substr(0, 2)] = toInt(input); + }); - toISOString : function () { - var m = moment(this).utc(); - if (0 < m.year() && m.year() <= 9999) { - if ('function' === typeof Date.prototype.toISOString) { - // native implementation is ~50x faster, use it when we can - return this.toDate().toISOString(); - } else { - return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - } else { - return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'); - } - }, + addWeekParseToken(['gg', 'GG'], function (input, week, config, token) { + week[token] = hooks__hooks.parseTwoDigitYear(input); + }); - toArray : function () { - var m = this; - return [ - m.year(), - m.month(), - m.date(), - m.hours(), - m.minutes(), - m.seconds(), - m.milliseconds() - ]; - }, + // HELPERS - isValid : function () { - return isValid(this); - }, + function weeksInYear(year, dow, doy) { + return weekOfYear(local__createLocal([year, 11, 31 + dow - doy]), dow, doy).week; + } - isDSTShifted : function () { - if (this._a) { - return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0; - } + // MOMENTS - return false; - }, + function getSetWeekYear (input) { + var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; + return input == null ? year : this.add((input - year), 'y'); + } - parsingFlags : function () { - return extend({}, this._pf); - }, + function getSetISOWeekYear (input) { + var year = weekOfYear(this, 1, 4).year; + return input == null ? year : this.add((input - year), 'y'); + } - invalidAt: function () { - return this._pf.overflow; - }, + function getISOWeeksInYear () { + return weeksInYear(this.year(), 1, 4); + } - utc : function (keepLocalTime) { - return this.utcOffset(0, keepLocalTime); - }, + function getWeeksInYear () { + var weekInfo = this.localeData()._week; + return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); + } - local : function (keepLocalTime) { - if (this._isUTC) { - this.utcOffset(0, keepLocalTime); - this._isUTC = false; + addFormatToken('Q', 0, 0, 'quarter'); - if (keepLocalTime) { - this.subtract(this._dateUtcOffset(), 'm'); - } - } - return this; - }, + // ALIASES - format : function (inputString) { - var output = formatMoment(this, inputString || moment.defaultFormat); - return this.localeData().postformat(output); - }, + addUnitAlias('quarter', 'Q'); - add : createAdder(1, 'add'), + // PARSING - subtract : createAdder(-1, 'subtract'), + addRegexToken('Q', match1); + addParseToken('Q', function (input, array) { + array[MONTH] = (toInt(input) - 1) * 3; + }); - diff : function (input, units, asFloat) { - var that = makeAs(input, this), - zoneDiff = (that.utcOffset() - this.utcOffset()) * 6e4, - anchor, diff, output, daysAdjust; + // MOMENTS - units = normalizeUnits(units); + function getSetQuarter (input) { + return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); + } - if (units === 'year' || units === 'month' || units === 'quarter') { - output = monthDiff(this, that); - if (units === 'quarter') { - output = output / 3; - } else if (units === 'year') { - output = output / 12; - } - } else { - diff = this - that; - output = units === 'second' ? diff / 1e3 : // 1000 - units === 'minute' ? diff / 6e4 : // 1000 * 60 - units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60 - units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst - units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst - diff; - } - return asFloat ? output : absRound(output); - }, + addFormatToken('D', ['DD', 2], 'Do', 'date'); - from : function (time, withoutSuffix) { - return moment.duration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix); - }, + // ALIASES - fromNow : function (withoutSuffix) { - return this.from(moment(), withoutSuffix); - }, + addUnitAlias('date', 'D'); - calendar : function (time) { - // We want to compare the start of today, vs this. - // Getting start-of-today depends on whether we're locat/utc/offset - // or not. - var now = time || moment(), - sod = makeAs(now, this).startOf('day'), - diff = this.diff(sod, 'days', true), - format = diff < -6 ? 'sameElse' : - diff < -1 ? 'lastWeek' : - diff < 0 ? 'lastDay' : - diff < 1 ? 'sameDay' : - diff < 2 ? 'nextDay' : - diff < 7 ? 'nextWeek' : 'sameElse'; - return this.format(this.localeData().calendar(format, this, moment(now))); - }, + // PARSING - isLeapYear : function () { - return isLeapYear(this.year()); - }, + addRegexToken('D', match1to2); + addRegexToken('DD', match1to2, match2); + addRegexToken('Do', function (isStrict, locale) { + return isStrict ? locale._ordinalParse : locale._ordinalParseLenient; + }); - isDST : function () { - return (this.utcOffset() > this.clone().month(0).utcOffset() || - this.utcOffset() > this.clone().month(5).utcOffset()); - }, + addParseToken(['D', 'DD'], DATE); + addParseToken('Do', function (input, array) { + array[DATE] = toInt(input.match(match1to2)[0], 10); + }); - day : function (input) { - var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); - if (input != null) { - input = parseWeekday(input, this.localeData()); - return this.add(input - day, 'd'); - } else { - return day; - } - }, + // MOMENTS - month : makeAccessor('Month', true), + var getSetDayOfMonth = makeGetSet('Date', true); - startOf : function (units) { - units = normalizeUnits(units); - // the following switch intentionally omits break keywords - // to utilize falling through the cases. - switch (units) { - case 'year': - this.month(0); - /* falls through */ - case 'quarter': - case 'month': - this.date(1); - /* falls through */ - case 'week': - case 'isoWeek': - case 'day': - this.hours(0); - /* falls through */ - case 'hour': - this.minutes(0); - /* falls through */ - case 'minute': - this.seconds(0); - /* falls through */ - case 'second': - this.milliseconds(0); - /* falls through */ - } + addFormatToken('d', 0, 'do', 'day'); - // weeks are a special case - if (units === 'week') { - this.weekday(0); - } else if (units === 'isoWeek') { - this.isoWeekday(1); - } + addFormatToken('dd', 0, 0, function (format) { + return this.localeData().weekdaysMin(this, format); + }); - // quarters are also special - if (units === 'quarter') { - this.month(Math.floor(this.month() / 3) * 3); - } + addFormatToken('ddd', 0, 0, function (format) { + return this.localeData().weekdaysShort(this, format); + }); - return this; - }, + addFormatToken('dddd', 0, 0, function (format) { + return this.localeData().weekdays(this, format); + }); - endOf: function (units) { - units = normalizeUnits(units); - if (units === undefined || units === 'millisecond') { - return this; - } - return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms'); - }, + addFormatToken('e', 0, 0, 'weekday'); + addFormatToken('E', 0, 0, 'isoWeekday'); - isAfter: function (input, units) { - var inputMs; - units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); - if (units === 'millisecond') { - input = moment.isMoment(input) ? input : moment(input); - return +this > +input; - } else { - inputMs = moment.isMoment(input) ? +input : +moment(input); - return inputMs < +this.clone().startOf(units); - } - }, + // ALIASES - isBefore: function (input, units) { - var inputMs; - units = normalizeUnits(typeof units !== 'undefined' ? units : 'millisecond'); - if (units === 'millisecond') { - input = moment.isMoment(input) ? input : moment(input); - return +this < +input; - } else { - inputMs = moment.isMoment(input) ? +input : +moment(input); - return +this.clone().endOf(units) < inputMs; - } - }, + addUnitAlias('day', 'd'); + addUnitAlias('weekday', 'e'); + addUnitAlias('isoWeekday', 'E'); - isBetween: function (from, to, units) { - return this.isAfter(from, units) && this.isBefore(to, units); - }, + // PARSING - isSame: function (input, units) { - var inputMs; - units = normalizeUnits(units || 'millisecond'); - if (units === 'millisecond') { - input = moment.isMoment(input) ? input : moment(input); - return +this === +input; - } else { - inputMs = +moment(input); - return +(this.clone().startOf(units)) <= inputMs && inputMs <= +(this.clone().endOf(units)); - } - }, + addRegexToken('d', match1to2); + addRegexToken('e', match1to2); + addRegexToken('E', match1to2); + addRegexToken('dd', matchWord); + addRegexToken('ddd', matchWord); + addRegexToken('dddd', matchWord); - min: deprecate( - 'moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other < this ? this : other; - } - ), - - max: deprecate( - 'moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548', - function (other) { - other = moment.apply(null, arguments); - return other > this ? this : other; - } - ), + addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config) { + var weekday = config._locale.weekdaysParse(input); + // if we didn't get a weekday name, mark the date as invalid + if (weekday != null) { + week.d = weekday; + } else { + config._pf.invalidWeekday = input; + } + }); - zone : deprecate( - 'moment().zone is deprecated, use moment().utcOffset instead. ' + - 'https://github.com/moment/moment/issues/1779', - function (input, keepLocalTime) { - if (input != null) { - if (typeof input !== 'string') { - input = -input; - } + addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) { + week[token] = toInt(input); + }); - this.utcOffset(input, keepLocalTime); + // HELPERS - return this; - } else { - return -this.utcOffset(); - } - } - ), - - // keepLocalTime = true means only change the timezone, without - // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]--> - // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset - // +0200, so we adjust the time as needed, to be valid. - // - // Keeping the time actually adds/subtracts (one hour) - // from the actual represented time. That is why we call updateOffset - // a second time. In case it wants us to change the offset again - // _changeInProgress == true case, then we have to adjust, because - // there is no such time in the given timezone. - utcOffset : function (input, keepLocalTime) { - var offset = this._offset || 0, - localAdjust; - if (input != null) { - if (typeof input === 'string') { - input = utcOffsetFromString(input); - } - if (Math.abs(input) < 16) { - input = input * 60; - } - if (!this._isUTC && keepLocalTime) { - localAdjust = this._dateUtcOffset(); - } - this._offset = input; - this._isUTC = true; - if (localAdjust != null) { - this.add(localAdjust, 'm'); - } - if (offset !== input) { - if (!keepLocalTime || this._changeInProgress) { - addOrSubtractDurationFromMoment(this, - moment.duration(input - offset, 'm'), 1, false); - } else if (!this._changeInProgress) { - this._changeInProgress = true; - moment.updateOffset(this, true); - this._changeInProgress = null; - } + function parseWeekday(input, locale) { + if (typeof input === 'string') { + if (!isNaN(input)) { + input = parseInt(input, 10); + } + else { + input = locale.weekdaysParse(input); + if (typeof input !== 'number') { + return null; } - - return this; - } else { - return this._isUTC ? offset : this._dateUtcOffset(); } - }, + } + return input; + } - isLocal : function () { - return !this._isUTC; - }, + // LOCALES - isUtcOffset : function () { - return this._isUTC; - }, + var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'); + function localeWeekdays (m) { + return this._weekdays[m.day()]; + } - isUtc : function () { - return this._isUTC && this._offset === 0; - }, + var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'); + function localeWeekdaysShort (m) { + return this._weekdaysShort[m.day()]; + } - zoneAbbr : function () { - return this._isUTC ? 'UTC' : ''; - }, + var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'); + function localeWeekdaysMin (m) { + return this._weekdaysMin[m.day()]; + } - zoneName : function () { - return this._isUTC ? 'Coordinated Universal Time' : ''; - }, + function localeWeekdaysParse (weekdayName) { + var i, mom, regex; - parseZone : function () { - if (this._tzm) { - this.utcOffset(this._tzm); - } else if (typeof this._i === 'string') { - this.utcOffset(utcOffsetFromString(this._i)); - } - return this; - }, + if (!this._weekdaysParse) { + this._weekdaysParse = []; + } - hasAlignedHourOffset : function (input) { - if (!input) { - input = 0; + for (i = 0; i < 7; i++) { + // make the regex if we don't have it already + if (!this._weekdaysParse[i]) { + mom = local__createLocal([2000, 1]).day(i); + regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, ''); + this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i'); } - else { - input = moment(input).utcOffset(); + // test the regex + if (this._weekdaysParse[i].test(weekdayName)) { + return i; } + } + } - return (this.utcOffset() - input) % 60 === 0; - }, + // MOMENTS - daysInMonth : function () { - return daysInMonth(this.year(), this.month()); - }, + function getSetDayOfWeek (input) { + var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + if (input != null) { + input = parseWeekday(input, this.localeData()); + return this.add(input - day, 'd'); + } else { + return day; + } + } - dayOfYear : function (input) { - var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1; - return input == null ? dayOfYear : this.add((input - dayOfYear), 'd'); - }, + function getSetLocaleDayOfWeek (input) { + var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; + return input == null ? weekday : this.add(input - weekday, 'd'); + } - quarter : function (input) { - return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3); - }, + function getSetISODayOfWeek (input) { + // behaves the same as moment#day except + // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) + // as a setter, sunday should belong to the previous week. + return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); + } - weekYear : function (input) { - var year = weekOfYear(this, this.localeData()._week.dow, this.localeData()._week.doy).year; - return input == null ? year : this.add((input - year), 'y'); - }, + addFormatToken('H', ['HH', 2], 0, 'hour'); + addFormatToken('h', ['hh', 2], 0, function () { + return this.hours() % 12 || 12; + }); - isoWeekYear : function (input) { - var year = weekOfYear(this, 1, 4).year; - return input == null ? year : this.add((input - year), 'y'); - }, + function meridiem (token, lowercase) { + addFormatToken(token, 0, 0, function () { + return this.localeData().meridiem(this.hours(), this.minutes(), lowercase); + }); + } - week : function (input) { - var week = this.localeData().week(this); - return input == null ? week : this.add((input - week) * 7, 'd'); - }, + meridiem('a', true); + meridiem('A', false); - isoWeek : function (input) { - var week = weekOfYear(this, 1, 4).week; - return input == null ? week : this.add((input - week) * 7, 'd'); - }, + // ALIASES - weekday : function (input) { - var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7; - return input == null ? weekday : this.add(input - weekday, 'd'); - }, + addUnitAlias('hour', 'h'); - isoWeekday : function (input) { - // behaves the same as moment#day except - // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6) - // as a setter, sunday should belong to the previous week. - return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7); - }, + // PARSING - isoWeeksInYear : function () { - return weeksInYear(this.year(), 1, 4); - }, + function matchMeridiem (isStrict, locale) { + return locale._meridiemParse; + } - weeksInYear : function () { - var weekInfo = this.localeData()._week; - return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy); - }, + addRegexToken('a', matchMeridiem); + addRegexToken('A', matchMeridiem); + addRegexToken('H', match1to2); + addRegexToken('h', match1to2); + addRegexToken('HH', match1to2, match2); + addRegexToken('hh', match1to2, match2); - get : function (units) { - units = normalizeUnits(units); - return this[units](); - }, + addParseToken(['H', 'HH'], HOUR); + addParseToken(['a', 'A'], function (input, array, config) { + config._isPm = config._locale.isPM(input); + config._meridiem = input; + }); + addParseToken(['h', 'hh'], function (input, array, config) { + array[HOUR] = toInt(input); + config._pf.bigHour = true; + }); - set : function (units, value) { - var unit; - if (typeof units === 'object') { - for (unit in units) { - this.set(unit, units[unit]); - } - } - else { - units = normalizeUnits(units); - if (typeof this[units] === 'function') { - this[units](value); - } - } - return this; - }, + // LOCALES - // If passed a locale key, it will set the locale for this - // instance. Otherwise, it will return the locale configuration - // variables for this instance. - locale : function (key) { - var newLocaleData; + function localeIsPM (input) { + // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays + // Using charAt should be more compatible. + return ((input + '').toLowerCase().charAt(0) === 'p'); + } - if (key === undefined) { - return this._locale._abbr; - } else { - newLocaleData = moment.localeData(key); - if (newLocaleData != null) { - this._locale = newLocaleData; - } - return this; - } - }, + var defaultLocaleMeridiemParse = /[ap]\.?m?\.?/i; + function localeMeridiem (hours, minutes, isLower) { + if (hours > 11) { + return isLower ? 'pm' : 'PM'; + } else { + return isLower ? 'am' : 'AM'; + } + } - lang : deprecate( - 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.', - function (key) { - if (key === undefined) { - return this.localeData(); - } else { - return this.locale(key); - } - } - ), - localeData : function () { - return this._locale; - }, + // MOMENTS - _dateUtcOffset : function () { - // On Firefox.24 Date#getTimezoneOffset returns a floating point. - // https://github.com/moment/moment/pull/1871 - return -Math.round(this._d.getTimezoneOffset() / 15) * 15; - } + // Setting the hour should keep the time, because the user explicitly + // specified which hour he wants. So trying to maintain the same hour (in + // a new timezone) makes sense. Adding/subtracting hours does not follow + // this rule. + var getSetHour = makeGetSet('Hours', true); + + addFormatToken('m', ['mm', 2], 0, 'minute'); + + // ALIASES + + addUnitAlias('minute', 'm'); + + // PARSING + + addRegexToken('m', match1to2); + addRegexToken('mm', match1to2, match2); + addParseToken(['m', 'mm'], MINUTE); + + // MOMENTS + + var getSetMinute = makeGetSet('Minutes', false); + + addFormatToken('s', ['ss', 2], 0, 'second'); + + // ALIASES + + addUnitAlias('second', 's'); + // PARSING + + addRegexToken('s', match1to2); + addRegexToken('ss', match1to2, match2); + addParseToken(['s', 'ss'], SECOND); + + // MOMENTS + + var getSetSecond = makeGetSet('Seconds', false); + + addFormatToken('S', 0, 0, function () { + return ~~(this.millisecond() / 100); }); - function rawMonthSetter(mom, value) { - var dayOfMonth; + addFormatToken(0, ['SS', 2], 0, function () { + return ~~(this.millisecond() / 10); + }); - // TODO: Move this out of here! - if (typeof value === 'string') { - value = mom.localeData().monthsParse(value); - // TODO: Another silent failure? - if (typeof value !== 'number') { - return mom; - } + function millisecond__milliseconds (token) { + addFormatToken(0, [token, 3], 0, 'millisecond'); + } + + millisecond__milliseconds('SSS'); + millisecond__milliseconds('SSSS'); + + // ALIASES + + addUnitAlias('millisecond', 'ms'); + + // PARSING + + addRegexToken('S', match1to3, match1); + addRegexToken('SS', match1to3, match2); + addRegexToken('SSS', match1to3, match3); + addRegexToken('SSSS', matchUnsigned); + addParseToken(['S', 'SS', 'SSS', 'SSSS'], function (input, array) { + array[MILLISECOND] = toInt(('0.' + input) * 1000); + }); + + // MOMENTS + + var getSetMillisecond = makeGetSet('Milliseconds', false); + + addFormatToken('z', 0, 0, 'zoneAbbr'); + addFormatToken('zz', 0, 0, 'zoneName'); + + // MOMENTS + + function getZoneAbbr () { + return this._isUTC ? 'UTC' : ''; + } + + function getZoneName () { + return this._isUTC ? 'Coordinated Universal Time' : ''; + } + + var momentPrototype__proto = Moment.prototype; + + momentPrototype__proto.add = add_subtract__add; + momentPrototype__proto.calendar = calendar__calendar; + momentPrototype__proto.clone = clone; + momentPrototype__proto.diff = diff; + momentPrototype__proto.endOf = endOf; + momentPrototype__proto.format = format; + momentPrototype__proto.from = from; + momentPrototype__proto.fromNow = fromNow; + momentPrototype__proto.get = getSet; + momentPrototype__proto.invalidAt = invalidAt; + momentPrototype__proto.isAfter = isAfter; + momentPrototype__proto.isBefore = isBefore; + momentPrototype__proto.isBetween = isBetween; + momentPrototype__proto.isSame = isSame; + momentPrototype__proto.isValid = moment_valid__isValid; + momentPrototype__proto.lang = lang; + momentPrototype__proto.locale = locale; + momentPrototype__proto.localeData = localeData; + momentPrototype__proto.max = prototypeMax; + momentPrototype__proto.min = prototypeMin; + momentPrototype__proto.parsingFlags = parsingFlags; + momentPrototype__proto.set = getSet; + momentPrototype__proto.startOf = startOf; + momentPrototype__proto.subtract = add_subtract__subtract; + momentPrototype__proto.toArray = toArray; + momentPrototype__proto.toDate = toDate; + momentPrototype__proto.toISOString = moment_format__toISOString; + momentPrototype__proto.toJSON = moment_format__toISOString; + momentPrototype__proto.toString = toString; + momentPrototype__proto.unix = unix; + momentPrototype__proto.valueOf = to_type__valueOf; + + // Year + momentPrototype__proto.year = getSetYear; + momentPrototype__proto.isLeapYear = getIsLeapYear; + + // Week Year + momentPrototype__proto.weekYear = getSetWeekYear; + momentPrototype__proto.isoWeekYear = getSetISOWeekYear; + + // Quarter + momentPrototype__proto.quarter = momentPrototype__proto.quarters = getSetQuarter; + + // Month + momentPrototype__proto.month = getSetMonth; + momentPrototype__proto.daysInMonth = getDaysInMonth; + + // Week + momentPrototype__proto.week = momentPrototype__proto.weeks = getSetWeek; + momentPrototype__proto.isoWeek = momentPrototype__proto.isoWeeks = getSetISOWeek; + momentPrototype__proto.weeksInYear = getWeeksInYear; + momentPrototype__proto.isoWeeksInYear = getISOWeeksInYear; + + // Day + momentPrototype__proto.date = getSetDayOfMonth; + momentPrototype__proto.day = momentPrototype__proto.days = getSetDayOfWeek; + momentPrototype__proto.weekday = getSetLocaleDayOfWeek; + momentPrototype__proto.isoWeekday = getSetISODayOfWeek; + momentPrototype__proto.dayOfYear = getSetDayOfYear; + + // Hour + momentPrototype__proto.hour = momentPrototype__proto.hours = getSetHour; + + // Minute + momentPrototype__proto.minute = momentPrototype__proto.minutes = getSetMinute; + + // Second + momentPrototype__proto.second = momentPrototype__proto.seconds = getSetSecond; + + // Millisecond + momentPrototype__proto.millisecond = momentPrototype__proto.milliseconds = getSetMillisecond; + + // Offset + momentPrototype__proto.utcOffset = getSetOffset; + momentPrototype__proto.utc = setOffsetToUTC; + momentPrototype__proto.local = setOffsetToLocal; + momentPrototype__proto.parseZone = setOffsetToParsedOffset; + momentPrototype__proto.hasAlignedHourOffset = hasAlignedHourOffset; + momentPrototype__proto.isDST = isDaylightSavingTime; + momentPrototype__proto.isDSTShifted = isDaylightSavingTimeShifted; + momentPrototype__proto.isLocal = isLocal; + momentPrototype__proto.isUtcOffset = isUtcOffset; + momentPrototype__proto.isUtc = isUtc; + momentPrototype__proto.isUTC = isUtc; + + // Timezone + momentPrototype__proto.zoneAbbr = getZoneAbbr; + momentPrototype__proto.zoneName = getZoneName; + + // Deprecations + momentPrototype__proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth); + momentPrototype__proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth); + momentPrototype__proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear); + momentPrototype__proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779', getSetZone); + + var momentPrototype = momentPrototype__proto; + + function moment__createUnix (input) { + return local__createLocal(input * 1000); + } + + function moment__createInZone () { + return local__createLocal.apply(null, arguments).parseZone(); + } + + var defaultCalendar = { + sameDay : '[Today at] LT', + nextDay : '[Tomorrow at] LT', + nextWeek : 'dddd [at] LT', + lastDay : '[Yesterday at] LT', + lastWeek : '[Last] dddd [at] LT', + sameElse : 'L' + }; + + function locale_calendar__calendar (key, mom, now) { + var output = this._calendar[key]; + return typeof output === 'function' ? output.call(mom, now) : output; + } + + var defaultLongDateFormat = { + LTS : 'h:mm:ss A', + LT : 'h:mm A', + L : 'MM/DD/YYYY', + LL : 'MMMM D, YYYY', + LLL : 'MMMM D, YYYY LT', + LLLL : 'dddd, MMMM D, YYYY LT' + }; + + function longDateFormat (key) { + var output = this._longDateFormat[key]; + if (!output && this._longDateFormat[key.toUpperCase()]) { + output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) { + return val.slice(1); + }); + this._longDateFormat[key] = output; } + return output; + } - dayOfMonth = Math.min(mom.date(), - daysInMonth(mom.year(), value)); - mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth); - return mom; + var defaultInvalidDate = 'Invalid date'; + + function invalidDate () { + return this._invalidDate; } - function rawGetter(mom, unit) { - return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit](); + var defaultOrdinal = '%d'; + var defaultOrdinalParse = /\d{1,2}/; + + function ordinal (number) { + return this._ordinal.replace('%d', number); } - function rawSetter(mom, unit, value) { - if (unit === 'Month') { - return rawMonthSetter(mom, value); - } else { - return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value); - } + function preParsePostFormat (string) { + return string; } - function makeAccessor(unit, keepTime) { - return function (value) { - if (value != null) { - rawSetter(this, unit, value); - moment.updateOffset(this, keepTime); - return this; + var defaultRelativeTime = { + 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' + }; + + function relative__relativeTime (number, withoutSuffix, string, isFuture) { + var output = this._relativeTime[string]; + return (typeof output === 'function') ? + output(number, withoutSuffix, string, isFuture) : + output.replace(/%d/i, number); + } + + function pastFuture (diff, output) { + var format = this._relativeTime[diff > 0 ? 'future' : 'past']; + return typeof format === 'function' ? format(output) : format.replace(/%s/i, output); + } + + function set__set (config) { + var prop, i; + for (i in config) { + prop = config[i]; + if (typeof prop === 'function') { + this[i] = prop; } else { - return rawGetter(this, unit); + this['_' + i] = prop; } - }; + } + // Lenient ordinal parsing accepts just a number in addition to + // number + (possibly) stuff coming from _ordinalParseLenient. + this._ordinalParseLenient = new RegExp(this._ordinalParse.source + '|' + /\d{1,2}/.source); } - moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false); - moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false); - moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false); - // Setting the hour should keep the time, because the user explicitly - // specified which hour he wants. So trying to maintain the same hour (in - // a new timezone) makes sense. Adding/subtracting hours does not follow - // this rule. - moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true); - // moment.fn.month is defined separately - moment.fn.date = makeAccessor('Date', true); - moment.fn.dates = deprecate('dates accessor is deprecated. Use date instead.', makeAccessor('Date', true)); - moment.fn.year = makeAccessor('FullYear', true); - moment.fn.years = deprecate('years accessor is deprecated. Use year instead.', makeAccessor('FullYear', true)); + var prototype__proto = Locale.prototype; - // add plural methods - moment.fn.days = moment.fn.day; - moment.fn.months = moment.fn.month; - moment.fn.weeks = moment.fn.week; - moment.fn.isoWeeks = moment.fn.isoWeek; - moment.fn.quarters = moment.fn.quarter; + prototype__proto._calendar = defaultCalendar; + prototype__proto.calendar = locale_calendar__calendar; + prototype__proto._longDateFormat = defaultLongDateFormat; + prototype__proto.longDateFormat = longDateFormat; + prototype__proto._invalidDate = defaultInvalidDate; + prototype__proto.invalidDate = invalidDate; + prototype__proto._ordinal = defaultOrdinal; + prototype__proto.ordinal = ordinal; + prototype__proto._ordinalParse = defaultOrdinalParse; + prototype__proto.preparse = preParsePostFormat; + prototype__proto.postformat = preParsePostFormat; + prototype__proto._relativeTime = defaultRelativeTime; + prototype__proto.relativeTime = relative__relativeTime; + prototype__proto.pastFuture = pastFuture; + prototype__proto.set = set__set; - // add aliased format methods - moment.fn.toJSON = moment.fn.toISOString; + // Month + prototype__proto.months = localeMonths; + prototype__proto._months = defaultLocaleMonths; + prototype__proto.monthsShort = localeMonthsShort; + prototype__proto._monthsShort = defaultLocaleMonthsShort; + prototype__proto.monthsParse = localeMonthsParse; - // alias isUtc for dev-friendliness - moment.fn.isUTC = moment.fn.isUtc; + // Week + prototype__proto.week = localeWeek; + prototype__proto._week = defaultLocaleWeek; + prototype__proto.firstDayOfYear = localeFirstDayOfYear; + prototype__proto.firstDayOfWeek = localeFirstDayOfWeek; - /************************************ - Duration Prototype - ************************************/ + // Day of Week + prototype__proto.weekdays = localeWeekdays; + prototype__proto._weekdays = defaultLocaleWeekdays; + prototype__proto.weekdaysMin = localeWeekdaysMin; + prototype__proto._weekdaysMin = defaultLocaleWeekdaysMin; + prototype__proto.weekdaysShort = localeWeekdaysShort; + prototype__proto._weekdaysShort = defaultLocaleWeekdaysShort; + prototype__proto.weekdaysParse = localeWeekdaysParse; + // Hours + prototype__proto.isPM = localeIsPM; + prototype__proto._meridiemParse = defaultLocaleMeridiemParse; + prototype__proto.meridiem = localeMeridiem; - function daysToYears (days) { - // 400 years have 146097 days (taking into account leap year rules) - return days * 400 / 146097; + function lists__get (format, index, field, setter) { + var locale = locales__getLocale(); + var utc = utc__createUTC().set(setter, index); + return locale[field](utc, format); } - function yearsToDays (years) { - // years * 365 + absRound(years / 4) - - // absRound(years / 100) + absRound(years / 400); - return years * 146097 / 400; + function list (format, index, field, count, setter) { + if (typeof format === 'number') { + index = format; + format = undefined; + } + + format = format || ''; + + if (index != null) { + return lists__get(format, index, field, setter); + } + + var i; + var out = []; + for (i = 0; i < count; i++) { + out[i] = lists__get(format, i, field, setter); + } + return out; + } + + function lists__listMonths (format, index) { + return list(format, index, 'months', 12, 'month'); } - extend(moment.duration.fn = Duration.prototype, { + function lists__listMonthsShort (format, index) { + return list(format, index, 'monthsShort', 12, 'month'); + } - _bubble : function () { - var milliseconds = this._milliseconds, - days = this._days, - months = this._months, - data = this._data, - seconds, minutes, hours, years = 0; + function lists__listWeekdays (format, index) { + return list(format, index, 'weekdays', 7, 'day'); + } - // The following code bubbles up values, see the tests for - // examples of what that means. - data.milliseconds = milliseconds % 1000; + function lists__listWeekdaysShort (format, index) { + return list(format, index, 'weekdaysShort', 7, 'day'); + } - seconds = absRound(milliseconds / 1000); - data.seconds = seconds % 60; + function lists__listWeekdaysMin (format, index) { + return list(format, index, 'weekdaysMin', 7, 'day'); + } - minutes = absRound(seconds / 60); - data.minutes = minutes % 60; + locales__getSetGlobalLocale('en', { + ordinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal : function (number) { + var b = number % 10, + output = (toInt(number % 100 / 10) === 1) ? 'th' : + (b === 1) ? 'st' : + (b === 2) ? 'nd' : + (b === 3) ? 'rd' : 'th'; + return number + output; + } + }); - hours = absRound(minutes / 60); - data.hours = hours % 24; + // Side effect imports + hooks__hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', locales__getSetGlobalLocale); + hooks__hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', locales__getLocale); - days += absRound(hours / 24); + var mathAbs = Math.abs; - // Accurately convert days to years, assume start from year 0. - years = absRound(daysToYears(days)); - days -= absRound(yearsToDays(years)); + function abs__abs () { + var data = this._data; - // 30 days to a month - // TODO (iskren): Use anchor date (like 1st Jan) to compute this. - months += absRound(days / 30); - days %= 30; + this._milliseconds = mathAbs(this._milliseconds); + this._days = mathAbs(this._days); + this._months = mathAbs(this._months); - // 12 months -> 1 year - years += absRound(months / 12); - months %= 12; + data.milliseconds = mathAbs(data.milliseconds); + data.seconds = mathAbs(data.seconds); + data.minutes = mathAbs(data.minutes); + data.hours = mathAbs(data.hours); + data.months = mathAbs(data.months); + data.years = mathAbs(data.years); - data.days = days; - data.months = months; - data.years = years; - }, + return this; + } - abs : function () { - this._milliseconds = Math.abs(this._milliseconds); - this._days = Math.abs(this._days); - this._months = Math.abs(this._months); + function duration_add_subtract__addSubtract (duration, input, value, direction) { + var other = create__createDuration(input, value); - this._data.milliseconds = Math.abs(this._data.milliseconds); - this._data.seconds = Math.abs(this._data.seconds); - this._data.minutes = Math.abs(this._data.minutes); - this._data.hours = Math.abs(this._data.hours); - this._data.months = Math.abs(this._data.months); - this._data.years = Math.abs(this._data.years); + duration._milliseconds += direction * other._milliseconds; + duration._days += direction * other._days; + duration._months += direction * other._months; - return this; - }, + return duration._bubble(); + } - weeks : function () { - return absRound(this.days() / 7); - }, + // supports only 2.0-style add(1, 's') or add(duration) + function duration_add_subtract__add (input, value) { + return duration_add_subtract__addSubtract(this, input, value, 1); + } - valueOf : function () { - return this._milliseconds + - this._days * 864e5 + - (this._months % 12) * 2592e6 + - toInt(this._months / 12) * 31536e6; - }, + // supports only 2.0-style subtract(1, 's') or subtract(duration) + function duration_add_subtract__subtract (input, value) { + return duration_add_subtract__addSubtract(this, input, value, -1); + } - humanize : function (withSuffix) { - var output = relativeTime(this, !withSuffix, this.localeData()); + function bubble () { + var milliseconds = this._milliseconds; + var days = this._days; + var months = this._months; + var data = this._data; + var seconds, minutes, hours, years = 0; - if (withSuffix) { - output = this.localeData().pastFuture(+this, output); - } + // The following code bubbles up values, see the tests for + // examples of what that means. + data.milliseconds = milliseconds % 1000; - return this.localeData().postformat(output); - }, + seconds = absFloor(milliseconds / 1000); + data.seconds = seconds % 60; - add : function (input, val) { - // supports only 2.0-style add(1, 's') or add(moment) - var dur = moment.duration(input, val); + minutes = absFloor(seconds / 60); + data.minutes = minutes % 60; - this._milliseconds += dur._milliseconds; - this._days += dur._days; - this._months += dur._months; + hours = absFloor(minutes / 60); + data.hours = hours % 24; - this._bubble(); + days += absFloor(hours / 24); - return this; - }, + // Accurately convert days to years, assume start from year 0. + years = absFloor(daysToYears(days)); + days -= absFloor(yearsToDays(years)); - subtract : function (input, val) { - var dur = moment.duration(input, val); + // 30 days to a month + // TODO (iskren): Use anchor date (like 1st Jan) to compute this. + months += absFloor(days / 30); + days %= 30; - this._milliseconds -= dur._milliseconds; - this._days -= dur._days; - this._months -= dur._months; + // 12 months -> 1 year + years += absFloor(months / 12); + months %= 12; - this._bubble(); + data.days = days; + data.months = months; + data.years = years; - return this; - }, + return this; + } - get : function (units) { - units = normalizeUnits(units); - return this[units.toLowerCase() + 's'](); - }, + function daysToYears (days) { + // 400 years have 146097 days (taking into account leap year rules) + return days * 400 / 146097; + } - as : function (units) { - var days, months; - units = normalizeUnits(units); + function yearsToDays (years) { + // years * 365 + absFloor(years / 4) - + // absFloor(years / 100) + absFloor(years / 400); + return years * 146097 / 400; + } - if (units === 'month' || units === 'year') { - days = this._days + this._milliseconds / 864e5; - months = this._months + daysToYears(days) * 12; - return units === 'month' ? months : months / 12; - } else { - // handle milliseconds separately because of floating point math errors (issue #1867) - days = this._days + Math.round(yearsToDays(this._months / 12)); - switch (units) { - case 'week': return days / 7 + this._milliseconds / 6048e5; - case 'day': return days + this._milliseconds / 864e5; - case 'hour': return days * 24 + this._milliseconds / 36e5; - case 'minute': return days * 24 * 60 + this._milliseconds / 6e4; - case 'second': return days * 24 * 60 * 60 + this._milliseconds / 1000; - // Math.floor prevents floating point math errors here - case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + this._milliseconds; - default: throw new Error('Unknown unit ' + units); - } - } - }, + function as (units) { + var days; + var months; + var milliseconds = this._milliseconds; - lang : moment.fn.lang, - locale : moment.fn.locale, + units = normalizeUnits(units); - toIsoString : deprecate( - 'toIsoString() is deprecated. Please use toISOString() instead ' + - '(notice the capitals)', - function () { - return this.toISOString(); - } - ), - - toISOString : function () { - // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js - var years = Math.abs(this.years()), - months = Math.abs(this.months()), - days = Math.abs(this.days()), - hours = Math.abs(this.hours()), - minutes = Math.abs(this.minutes()), - seconds = Math.abs(this.seconds() + this.milliseconds() / 1000); - - if (!this.asSeconds()) { - // this is the same as C#'s (Noda) and python (isodate)... - // but not other JS (goog.date) - return 'P0D'; + if (units === 'month' || units === 'year') { + days = this._days + milliseconds / 864e5; + months = this._months + daysToYears(days) * 12; + return units === 'month' ? months : months / 12; + } else { + // handle milliseconds separately because of floating point math errors (issue #1867) + days = this._days + Math.round(yearsToDays(this._months / 12)); + switch (units) { + case 'week' : return days / 7 + milliseconds / 6048e5; + case 'day' : return days + milliseconds / 864e5; + case 'hour' : return days * 24 + milliseconds / 36e5; + case 'minute' : return days * 24 * 60 + milliseconds / 6e4; + case 'second' : return days * 24 * 60 * 60 + milliseconds / 1000; + // Math.floor prevents floating point math errors here + case 'millisecond': return Math.floor(days * 24 * 60 * 60 * 1000) + milliseconds; + default: throw new Error('Unknown unit ' + units); } + } + } - return (this.asSeconds() < 0 ? '-' : '') + - 'P' + - (years ? years + 'Y' : '') + - (months ? months + 'M' : '') + - (days ? days + 'D' : '') + - ((hours || minutes || seconds) ? 'T' : '') + - (hours ? hours + 'H' : '') + - (minutes ? minutes + 'M' : '') + - (seconds ? seconds + 'S' : ''); - }, + // TODO: Use this.as('ms')? + function as__valueOf () { + return ( + this._milliseconds + + this._days * 864e5 + + (this._months % 12) * 2592e6 + + toInt(this._months / 12) * 31536e6 + ); + } - localeData : function () { - return this._locale; - }, + function makeAs (alias) { + return function () { + return this.as(alias); + }; + } - toJSON : function () { - return this.toISOString(); - } - }); + var asMilliseconds = makeAs('ms'); + var asSeconds = makeAs('s'); + var asMinutes = makeAs('m'); + var asHours = makeAs('h'); + var asDays = makeAs('d'); + var asWeeks = makeAs('w'); + var asMonths = makeAs('M'); + var asYears = makeAs('y'); - moment.duration.fn.toString = moment.duration.fn.toISOString; + function get__get (units) { + units = normalizeUnits(units); + return this[units + 's'](); + } - function makeDurationGetter(name) { - moment.duration.fn[name] = function () { + function makeGetter(name) { + return function () { return this._data[name]; }; } - for (i in unitMillisecondFactors) { - if (hasOwnProp(unitMillisecondFactors, i)) { - makeDurationGetter(i.toLowerCase()); - } + var get__milliseconds = makeGetter('milliseconds'); + var seconds = makeGetter('seconds'); + var minutes = makeGetter('minutes'); + var hours = makeGetter('hours'); + var days = makeGetter('days'); + var months = makeGetter('months'); + var years = makeGetter('years'); + + function weeks () { + return absFloor(this.days() / 7); } - moment.duration.fn.asMilliseconds = function () { - return this.as('ms'); - }; - moment.duration.fn.asSeconds = function () { - return this.as('s'); - }; - moment.duration.fn.asMinutes = function () { - return this.as('m'); - }; - moment.duration.fn.asHours = function () { - return this.as('h'); - }; - moment.duration.fn.asDays = function () { - return this.as('d'); - }; - moment.duration.fn.asWeeks = function () { - return this.as('weeks'); - }; - moment.duration.fn.asMonths = function () { - return this.as('M'); - }; - moment.duration.fn.asYears = function () { - return this.as('y'); + var round = Math.round; + var thresholds = { + s: 45, // seconds to minute + m: 45, // minutes to hour + h: 22, // hours to day + d: 26, // days to month + M: 11 // months to year }; - /************************************ - Default Locale - ************************************/ + // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize + function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) { + return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture); + } + function humanize__relativeTime (posNegDuration, withoutSuffix, locale) { + var duration = create__createDuration(posNegDuration).abs(); + var seconds = round(duration.as('s')); + var minutes = round(duration.as('m')); + var hours = round(duration.as('h')); + var days = round(duration.as('d')); + var months = round(duration.as('M')); + var years = round(duration.as('y')); + + var a = seconds < thresholds.s && ['s', seconds] || + minutes === 1 && ['m'] || + minutes < thresholds.m && ['mm', minutes] || + hours === 1 && ['h'] || + hours < thresholds.h && ['hh', hours] || + days === 1 && ['d'] || + days < thresholds.d && ['dd', days] || + months === 1 && ['M'] || + months < thresholds.M && ['MM', months] || + years === 1 && ['y'] || ['yy', years]; + + a[2] = withoutSuffix; + a[3] = +posNegDuration > 0; + a[4] = locale; + return substituteTimeAgo.apply(null, a); + } - // Set default locale, other locale will inherit from English. - moment.locale('en', { - ordinalParse: /\d{1,2}(th|st|nd|rd)/, - ordinal : function (number) { - var b = number % 10, - output = (toInt(number % 100 / 10) === 1) ? 'th' : - (b === 1) ? 'st' : - (b === 2) ? 'nd' : - (b === 3) ? 'rd' : 'th'; - return number + output; + // This function allows you to set a threshold for relative time strings + function humanize__getSetRelativeTimeThreshold (threshold, limit) { + if (thresholds[threshold] === undefined) { + return false; + } + if (limit === undefined) { + return thresholds[threshold]; } + thresholds[threshold] = limit; + return true; + } + + function humanize (withSuffix) { + var locale = this.localeData(); + var output = humanize__relativeTime(this, !withSuffix, locale); + + if (withSuffix) { + output = locale.pastFuture(+this, output); + } + + return locale.postformat(output); + } + + var iso_string__abs = Math.abs; + + function iso_string__toISOString() { + // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js + var Y = iso_string__abs(this.years()); + var M = iso_string__abs(this.months()); + var D = iso_string__abs(this.days()); + var h = iso_string__abs(this.hours()); + var m = iso_string__abs(this.minutes()); + var s = iso_string__abs(this.seconds() + this.milliseconds() / 1000); + var total = this.asSeconds(); + + if (!total) { + // this is the same as C#'s (Noda) and python (isodate)... + // but not other JS (goog.date) + return 'P0D'; + } + + return (total < 0 ? '-' : '') + + 'P' + + (Y ? Y + 'Y' : '') + + (M ? M + 'M' : '') + + (D ? D + 'D' : '') + + ((h || m || s) ? 'T' : '') + + (h ? h + 'H' : '') + + (m ? m + 'M' : '') + + (s ? s + 'S' : ''); + } + + var duration_prototype__proto = Duration.prototype; + + duration_prototype__proto.abs = abs__abs; + duration_prototype__proto.add = duration_add_subtract__add; + duration_prototype__proto.subtract = duration_add_subtract__subtract; + duration_prototype__proto.as = as; + duration_prototype__proto.asMilliseconds = asMilliseconds; + duration_prototype__proto.asSeconds = asSeconds; + duration_prototype__proto.asMinutes = asMinutes; + duration_prototype__proto.asHours = asHours; + duration_prototype__proto.asDays = asDays; + duration_prototype__proto.asWeeks = asWeeks; + duration_prototype__proto.asMonths = asMonths; + duration_prototype__proto.asYears = asYears; + duration_prototype__proto.valueOf = as__valueOf; + duration_prototype__proto._bubble = bubble; + duration_prototype__proto.get = get__get; + duration_prototype__proto.milliseconds = get__milliseconds; + duration_prototype__proto.seconds = seconds; + duration_prototype__proto.minutes = minutes; + duration_prototype__proto.hours = hours; + duration_prototype__proto.days = days; + duration_prototype__proto.weeks = weeks; + duration_prototype__proto.months = months; + duration_prototype__proto.years = years; + duration_prototype__proto.humanize = humanize; + duration_prototype__proto.toISOString = iso_string__toISOString; + duration_prototype__proto.toString = iso_string__toISOString; + duration_prototype__proto.toJSON = iso_string__toISOString; + duration_prototype__proto.locale = locale; + duration_prototype__proto.localeData = localeData; + + // Deprecations + duration_prototype__proto.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', iso_string__toISOString); + duration_prototype__proto.lang = lang; + + // Side effect imports + + addFormatToken('X', 0, 0, 'unix'); + addFormatToken('x', 0, 0, 'valueOf'); + + // PARSING + + addRegexToken('x', matchSigned); + addRegexToken('X', matchTimestamp); + addParseToken('X', function (input, array, config) { + config._d = new Date(parseFloat(input, 10) * 1000); + }); + addParseToken('x', function (input, array, config) { + config._d = new Date(toInt(input)); }); - /* EMBED_LOCALES */ + // Side effect imports - /************************************ - Exposing Moment - ************************************/ - function makeGlobal(shouldDeprecate) { - /*global ender:false */ - if (typeof ender !== 'undefined') { - return; - } - oldGlobalMoment = globalScope.moment; - if (shouldDeprecate) { - globalScope.moment = deprecate( - 'Accessing Moment through the global scope is ' + - 'deprecated, and will be removed in an upcoming ' + - 'release.', - moment); - } else { - globalScope.moment = moment; - } - } + hooks__hooks.version = '2.10.0'; - // CommonJS module is defined - if (hasModule) { - module.exports = moment; - } else if (true) { - !(__WEBPACK_AMD_DEFINE_RESULT__ = function (require, exports, module) { - if (module.config && module.config() && module.config().noGlobal === true) { - // release the global variable - globalScope.moment = oldGlobalMoment; - } + setHookCallback(local__createLocal); - return moment; - }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - makeGlobal(true); - } else { - makeGlobal(); - } - }).call(this); + hooks__hooks.fn = momentPrototype; + hooks__hooks.min = min; + hooks__hooks.max = max; + hooks__hooks.utc = utc__createUTC; + hooks__hooks.unix = moment__createUnix; + hooks__hooks.months = lists__listMonths; + hooks__hooks.isDate = isDate; + hooks__hooks.locale = locales__getSetGlobalLocale; + hooks__hooks.invalid = valid__createInvalid; + hooks__hooks.duration = create__createDuration; + hooks__hooks.isMoment = isMoment; + hooks__hooks.weekdays = lists__listWeekdays; + hooks__hooks.parseZone = moment__createInZone; + hooks__hooks.localeData = locales__getLocale; + hooks__hooks.isDuration = isDuration; + hooks__hooks.monthsShort = lists__listMonthsShort; + hooks__hooks.weekdaysMin = lists__listWeekdaysMin; + hooks__hooks.defineLocale = defineLocale; + hooks__hooks.weekdaysShort = lists__listWeekdaysShort; + hooks__hooks.normalizeUnits = normalizeUnits; + hooks__hooks.relativeTimeThreshold = humanize__getSetRelativeTimeThreshold; + + var _moment = hooks__hooks; - /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(71)(module))) + return _moment; + + })); + /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(71)(module))) /***/ }, /* 59 */ @@ -30509,9 +30556,9 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { var util = __webpack_require__(1); - var RepulsionMixin = __webpack_require__(67); - var HierarchialRepulsionMixin = __webpack_require__(68); - var BarnesHutMixin = __webpack_require__(69); + var RepulsionMixin = __webpack_require__(68); + var HierarchialRepulsionMixin = __webpack_require__(69); + var BarnesHutMixin = __webpack_require__(70); /** * Toggling barnes Hut calculation on and off. @@ -34951,6 +34998,19 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 67 */ +/***/ function(module, exports, __webpack_require__) { + + function webpackContext(req) { + throw new Error("Cannot find module '" + req + "'."); + } + webpackContext.keys = function() { return []; }; + webpackContext.resolve = webpackContext; + module.exports = webpackContext; + webpackContext.id = 67; + + +/***/ }, +/* 68 */ /***/ function(module, exports, __webpack_require__) { /** @@ -35020,7 +35080,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, -/* 68 */ +/* 69 */ /***/ function(module, exports, __webpack_require__) { /** @@ -35179,7 +35239,7 @@ return /******/ (function(modules) { // webpackBootstrap }; /***/ }, -/* 69 */ +/* 70 */ /***/ function(module, exports, __webpack_require__) { /** @@ -35583,19 +35643,6 @@ return /******/ (function(modules) { // webpackBootstrap }; -/***/ }, -/* 70 */ -/***/ function(module, exports, __webpack_require__) { - - function webpackContext(req) { - throw new Error("Cannot find module '" + req + "'."); - } - webpackContext.keys = function() { return []; }; - webpackContext.resolve = webpackContext; - module.exports = webpackContext; - webpackContext.id = 70; - - /***/ }, /* 71 */ /***/ function(module, exports, __webpack_require__) { diff --git a/dist/vis.map b/dist/vis.map index f19a12ab..3a673b15 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","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","slice","parseColor","isValidRGB","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","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","f","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","labelObj","point","drawPoints","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","customTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Core","markDirty","refreshItems","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","itemFromTarget","groupFromTarget","pageX","gesture","pageY","centerContainer","snap","time","snappedTime","what","foreground","labelSet","groupId","linegraph","getLegend","isGroupVisible","visibility","yAxisLeft","yAxisRight","legendLeft","legendRight","hidden","screenToValue","convertHiddenOptions","repeat","dateItem","updateHiddenDates","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","hammerUtil","byUser","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","getLabelMajor","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","lang","toLowerCase","selected","displayed","dirty","Hammer","select","unselect","setParent","hide","show","isVisible","repositionX","repositionY","_repaintDeleteButton","anchor","editable","deleteButton","title","removeFromDataSet","stopPropagation","_updateContents","template","Element","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","box","getComputedStyle","onTop","itemSubgroup","subgroupIndex","totalHeight","newHeight","align","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","limitSize","contentLeft","parentWidth","boxWidth","updateTime","dragLeft","dragLeftItem","dragRight","dragRightItem","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","backgroundVertical","toUpperCase","substring","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","drag","prevent_default","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","marker","getLabelWidth","restack","markerHeight","lastMarkerHeight","customOrderedItems","_updateVisibleItems","_calculateHeight","offsetTop","offsetLeft","ii","resetSubgroups","orderSubgroups","_checkIfVisible","sortArray","sortField","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","groupOrder","selectable","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","initialX","itemProps","srcEvent","ctrlKey","_onDragStartAddItem","xAbs","newItem","newProps","initial","_updateItemProps","_moveToGroup","changes","shiftKey","oldSelection","newSelection","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarGraphFunctions","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","majorTexts","minorTexts","lineTop","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","cur","prevLine","xPrev","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_determineBrowserMethod","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","physicsTime","runDoubleSpeed","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","customScalingFunction","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","fontDrawThreshold","scaleFontWithValue","fontSizeMin","fontSizeMax","fontSizeMaxVisible","level","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","labelAlignment","arrowScaleFactor","dash","gap","altLength","inheritColor","useGradients","configurePhysics","physics","barnesHut","thetaInverted","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","clusterByZoom","navigation","keyboard","speed","bindToWindow","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","zoomExtentOnStabilize","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","useDefaultGroups","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","manipulationHammers","animationSpeed","animationEasingFunction","animating","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","redrawRequested","images","setOnloadCallback","_requestRedraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulationEnabled","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","browserType","requiresTimeout","_getScriptPath","scripts","getElementsByTagName","src","_getRange","specificNodes","node","minY","maxY","minX","maxX","boundingBox","nodeId","_findCenter","initialZoom","disableStart","zoomLevel","positionDefined","predefinedPosition","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","_unselectAll","_createManipulatorBar","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","_bindHammer","_markAllEdgesAsDirty","tabIndex","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","dispose","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_deleteSelected","_cleanupPhysicsConfiguration","_recursiveDOMDelete","DOMobject","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupVisible","popup","_checkHidePopup","setPosition","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","previousPopupObjId","popupObj","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","edge","connected","popupTargetType","popupTargetId","setText","pointerObj","stillOnObj","overNode","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","setProperties","properties","colorDirty","_removeFromSelection","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","valueTotal","setValueRange","requestAnimationFrame","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","_revertPhysicsState","revertPosition","_revertPhysicsTick","_doInAllActiveSectors","_doInSupportSector","mainMovingStatus","supportMovingStatus","mainMoving","_animationStep","_handleNavigation","startTime","renderStartTime","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","iterations","freezeSimulation","freeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getCenterCoordinates","getBoundingBox","getConnectedNodes","nodeList","nodeObj","toId","fromId","getEdgesFromNode","edgesList","generateColorObject","networkConstants","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","widthDiff","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","fromColor","toColor","grd","createLinearGradient","addColorStop","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","pi","originalAngle","atan2","myAngle","quadraticCurveTo","lineCount","measureText","_rotateForLabelAlignment","_drawLabelRect","_drawLabelText","angleInDegrees","rotate","lineMargin","fillRect","lineJoin","strokeText","setLineDash","pattern","lineDashOffset","lineCap","dashedLine","percentage","arrow","_pointOnBezier","_findBorderPosition","distanceToBorder","distanceToNodes","difference","threshold","arrowPos","guidePos","edgeSegmentLength","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodeFromPosition","getControlNodeToPosition","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","controlnodeFromPos","fromBorderDist","fromBorderPoint","controlnodeToPos","defaultIndex","groupsArray","groupIndex","DEFAULT","groupName","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","error","imagelist","grouplist","reroutedEdges","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","previousState","resetCluster","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawCircularImage","_resizeCircularImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_drawIcon","_resizeIcon","_reset","clearSizeCache","_setForce","_addForce","storeState","isFixed","velocity","getDistance","radiusDiff","fontDiff","_drawImageAtPosition","globalAlpha","drawImage","_drawImageLabel","getTextSize","_swapToImageResizeWhenImageLoaded","diameter","centerX","centerY","_drawRawCircle","circle","clip","textSize","clusterLineWidth","selectionLineWidth","roundRect","database","defaultSize","ellipse","_drawShape","radiusMultiplier","_icon","iconTextSpacing","relativeIconSize","iconFontFace","iconColor","baseline","labelUnderNode","relativeFontSize","strokecolor","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fontFamily","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","barId","addCustomTime","numIds","customBarId","ts","customBarIds","removeCustomTime","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","custom","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","monthDiff","anchor2","adjust","wholeMonthDiff","meridiemFixWrap","meridiem","isPm","meridiemHour","isPM","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","updateInProgress","updateOffset","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","_milliseconds","_days","_months","_locale","_bubble","val","_isAMomentObject","_i","_f","_l","_strict","_tzm","_isUTC","_offset","_pf","momentProperties","absRound","number","targetLength","forceSign","output","positiveMomentsDifference","base","res","isAfter","momentsDifference","makeAs","isBefore","createAdder","dur","tmp","addOrSubtractDurationFromMoment","mom","isAdding","setTime","rawSetter","rawGetter","rawMonthSetter","input","compareArrays","dontConvert","lengthDiff","diffs","toInt","normalizeUnits","units","lowered","unitAliases","camelFunctions","inputObject","normalizedProp","makeList","setter","getter","results","utc","set","argumentForCoercion","coercedNumber","isFinite","daysInMonth","UTC","getUTCDate","weeksInYear","dow","doy","weekOfYear","daysInYear","isLeapYear","_a","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","isValid","_isValid","getTime","bigHour","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","hasModule","model","local","removeFormattingTokens","makeFormatFunction","formattingTokens","formatTokenFunctions","formatMoment","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","getParseRegexForToken","parseTokenOneDigit","parseTokenThreeDigits","parseTokenFourDigits","parseTokenOneToFourDigits","parseTokenSignedNumber","parseTokenSixDigits","parseTokenOneToSixDigits","parseTokenTwoDigits","parseTokenOneToThreeDigits","parseTokenWord","_meridiemParse","parseTokenOffsetMs","parseTokenTimestampMs","parseTokenTimezone","parseTokenT","parseTokenDigits","parseTokenOneOrTwoDigits","_ordinalParse","_ordinalParseLenient","RegExp","regexpEscape","unescapeFormat","utcOffsetFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_meridiem","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","temp","GG","W","E","_week","gg","dayOfYearFromWeeks","dateFromConfig","currentDate","yearToUse","currentDateArray","makeUTCDate","getUTCMonth","_nextDay","makeDate","setUTCMinutes","getUTCMinutes","dateFromObject","getUTCFullYear","makeDateFromStringAndFormat","ISO_8601","parseISO","parsedInput","tokens","skipped","stringLength","totalParsedInputLength","matched","p4","makeDateFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","NaN","score","l","isoRegex","isoDates","isoTimes","makeDateFromString","createFromInputFallback","makeDateFromInput","aspNetJsonRegex","ms","setUTCFullYear","parseWeekday","substituteTimeAgo","withoutSuffix","isFuture","relativeTime","posNegDuration","relativeTimeThresholds","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","daysToAdd","getUTCDay","makeMoment","invalid","preparse","pickBy","moments","dayOfMonth","unit","makeAccessor","keepTime","daysToYears","yearsToDays","makeDurationGetter","makeGlobal","shouldDeprecate","ender","oldGlobalMoment","globalScope","VERSION","aspNetTimeSpanJsonRegex","isoDurationRegex","isoFormat","unitMillisecondFactors","Milliseconds","Seconds","Minutes","Hours","Days","Months","Years","D","Q","DDD","dayofyear","isoweekday","isoweek","weekyear","isoweekyear","ordinalizeTokens","paddedTokens","MMM","monthsShort","MMMM","dd","weekdaysMin","ddd","weekdaysShort","dddd","weekdays","isoWeek","YY","YYYY","YYYYY","YYYYYY","gggg","ggggg","isoWeekYear","GGGG","GGGGG","isoWeekday","SS","SSS","SSSS","Z","utcOffset","ZZ","zoneAbbr","zz","zoneName","unix","lists","DDDD","_monthsShort","monthName","regex","_monthsParse","_longMonthsParse","_shortMonthsParse","_weekdays","_weekdaysShort","_weekdaysMin","weekdayName","_weekdaysParse","_longDateFormat","LTS","LT","L","LL","LLL","LLLL","isLower","_calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","calendar","_relativeTime","future","past","mm","hh","MM","yy","pastFuture","_ordinal","postformat","firstDayOfYear","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","relativeTimeThreshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateUtcOffset","inputString","asFloat","that","zoneDiff","humanize","fromNow","sod","startOf","isDST","getDay","endOf","inputMs","isBetween","zone","localAdjust","_changeInProgress","isLocal","isUtcOffset","isUtc","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","isUTC","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","setup","READY","Event","determineEventTypes","Utils","each","gestures","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","Instance","defaults","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","HAS_POINTEREVENTS","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","dest","handler","iterator","inStr","find","inArray","getCenter","getVelocity","deltaTime","getAngle","touch1","touch2","getDirection","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","touchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","identifiers","identifier","pointerType","timeStamp","preventManipulation","stopDetect","pointers","touchlist","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","recalc","calcEv","calcData","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","state","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","holdTimeout","holdThreshold","Hold","Release","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","repositionNodes","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","_restoreNodes","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","clusterToFit","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodes","supportNodeId","gravity","gravityForce","_sector","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","maxGravitational","maxSpring","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_addSector","decreaseClusterLevel","_expandClusterNode","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","detectedZoomingIn","detectedZoomingOut","_collapseSector","_formClusters","_openClusters","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","_openClustersBySize","openAll","containedNodeId","childNode","_expelChildFromParent","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","children","childrenIds","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_cleanManipulatorHammers","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","_bindHammerToDiv","boundFunction","edgeBeingEdited","selectedControlNode","domElement","funct","_createAddNodeToolbar","_addNode","_createAddEdgeToolbar","_handleConnect","_finishConnect","_createEditEdgeToolbar","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","_editNode","selectedNodes","selectedEdges","navigationDOM","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","firstNode","_setLevelDirected","parentId","parentLevel","nodeMoved","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackContext","req","resolve","webpackPolyfill","paths"],"mappings":"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AQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aAExIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aAExIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,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"} \ No newline at end of file +{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","giveRange","min","max","total","value","scale","Math","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","floor","random","toString","extend","a","b","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","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","slice","parseColor","isValidRGB","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","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","f","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","labelObj","point","drawPoints","setAttributeNS","size","label","xOffset","yOffset","content","textContent","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","args","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","refresh","newIds","added","removed","viewOptions","getArguments","defaultFilter","dataSet","updated","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","boundingRect","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","getScale","timeAxis","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis2","currentTime","customTime","itemSet","itemsData","groupsData","getEventProperties","oncontextmenu","setGroups","setItems","_redraw","Core","markDirty","refreshItems","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","itemFromTarget","groupFromTarget","pageX","gesture","pageY","centerContainer","snap","time","snappedTime","what","foreground","labelSet","groupId","linegraph","getLegend","isGroupVisible","visibility","yAxisLeft","yAxisRight","legendLeft","legendRight","hidden","screenToValue","convertHiddenOptions","repeat","dateItem","updateHiddenDates","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","hammerUtil","byUser","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","format","FORMAT","minorLabels","millisecond","second","minute","hour","weekday","majorLabels","setFormat","defaultFormat","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","getLabelMajor","getClassName","even","today","isSame","currentWeek","currentMonth","currentYear","locale","lang","toLowerCase","selected","displayed","dirty","Hammer","select","unselect","groupChanged","_moveToGroup","setParent","hide","show","isVisible","repositionX","repositionY","_repaintDeleteButton","anchor","editable","deleteButton","title","stopPropagation","removeFromDataSet","_updateContents","template","Element","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","box","getComputedStyle","onTop","itemSubgroup","subgroupIndex","totalHeight","newHeight","align","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","limitSize","contentLeft","parentWidth","boxWidth","updateTime","dragLeft","dragLeftItem","dragRight","dragRightItem","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","backgroundVertical","toUpperCase","substring","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","drag","prevent_default","setCustomTime","getCustomTime","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","marker","getLabelWidth","restack","markerHeight","lastMarkerHeight","customOrderedItems","_updateVisibleItems","_calculateHeight","offsetTop","offsetLeft","ii","resetSubgroups","orderSubgroups","_checkIfVisible","sortArray","sortField","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","initialPos","breakCondition","groupOrder","selectable","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","initialX","itemProps","srcEvent","ctrlKey","_onDragStartAddItem","xAbs","newItem","initial","initialStart","initialEnd","changes","shiftKey","oldSelection","newSelection","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","updateSVGheight","updateSVGheightOnResize","lastStart","COUNTER","BarGraphFunctions","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","changeCalled","minDate","maxDate","_getRelevantData","_applySampling","_convertXcoordinates","_getYRanges","_updateYAxis","MAX_CYCLES","_convertYcoordinates","dataContainer","guess","increment","amountOfPoints","xDistance","pointsPerPixel","ceil","sampledData","barCombinedDataLeft","barCombinedDataRight","getStackedBarYRange","minVal","maxVal","yAxisLeftUsed","yAxisRightUsed","minLeft","minRight","maxLeft","maxRight","ignore","_toggleAxisVisiblity","drawIcons","axisUsed","datapoints","xValue","yValue","extractedData","svgHeight","labelValue","majorTexts","minorTexts","lineTop","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","cur","prevLine","xPrev","xFirstMajorLabel","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_determineBrowserMethod","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","physicsTime","runDoubleSpeed","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","customScalingFunction","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","fontDrawThreshold","scaleFontWithValue","fontSizeMin","fontSizeMax","fontSizeMaxVisible","level","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","labelAlignment","arrowScaleFactor","dash","gap","altLength","inheritColor","useGradients","configurePhysics","physics","barnesHut","thetaInverted","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","clusterByZoom","navigation","keyboard","speed","bindToWindow","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","zoomExtentOnStabilize","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","useDefaultGroups","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","manipulationHammers","animationSpeed","animationEasingFunction","animating","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","redrawRequested","images","setOnloadCallback","status","_requestRedraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulationEnabled","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","browserType","requiresTimeout","_getScriptPath","scripts","getElementsByTagName","src","_getRange","specificNodes","node","minY","maxY","minX","maxX","boundingBox","nodeId","_findCenter","initialZoom","disableStart","zoomLevel","positionDefined","predefinedPosition","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","_unselectAll","_createManipulatorBar","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","_bindHammer","_markAllEdgesAsDirty","tabIndex","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","dispose","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_deleteSelected","_cleanupPhysicsConfiguration","_recursiveDOMDelete","DOMobject","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupVisible","popup","_checkHidePopup","setPosition","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","previousPopupObjId","popupObj","nodeUnderCursor","popupType","overlappingNodes","isOverlappingWith","getTitle","overlappingEdges","edge","connected","popupTargetType","popupTargetId","setText","pointerObj","stillOnObj","overNode","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","setProperties","properties","colorDirty","_removeFromSelection","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","valueTotal","setValueRange","requestAnimationFrame","requested","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","_revertPhysicsState","revertPosition","_revertPhysicsTick","_doInAllActiveSectors","_doInSupportSector","mainMovingStatus","supportMovingStatus","mainMoving","_animationStep","_handleNavigation","startTime","renderStartTime","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","iterations","freezeSimulation","freeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getCenterCoordinates","getBoundingBox","getConnectedNodes","nodeList","nodeObj","toId","fromId","getEdgesFromNode","edgesList","generateColorObject","networkConstants","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","widthDiff","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","fromColor","toColor","grd","createLinearGradient","addColorStop","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","pi","originalAngle","atan2","myAngle","quadraticCurveTo","lineCount","measureText","_rotateForLabelAlignment","_drawLabelRect","_drawLabelText","angleInDegrees","rotate","lineMargin","fillRect","lineJoin","strokeText","setLineDash","pattern","lineDashOffset","lineCap","dashedLine","percentage","arrow","_pointOnBezier","_findBorderPosition","distanceToBorder","distanceToNodes","difference","threshold","arrowPos","guidePos","edgeSegmentLength","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodeFromPosition","getControlNodeToPosition","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","controlnodeFromPos","fromBorderDist","fromBorderPoint","controlnodeToPos","defaultIndex","groupsArray","groupIndex","DEFAULT","groupName","imageBroken","load","url","brokenUrl","img","Image","onload","onerror","error","imagelist","grouplist","reroutedEdges","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","previousState","resetCluster","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawCircularImage","_resizeCircularImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_drawIcon","_resizeIcon","_reset","clearSizeCache","_setForce","_addForce","storeState","isFixed","velocity","getDistance","radiusDiff","fontDiff","_drawImageAtPosition","globalAlpha","drawImage","_drawImageLabel","getTextSize","_swapToImageResizeWhenImageLoaded","diameter","centerX","centerY","_drawRawCircle","circle","clip","textSize","clusterLineWidth","selectionLineWidth","roundRect","database","defaultSize","ellipse","_drawShape","radiusMultiplier","_icon","iconTextSpacing","relativeIconSize","iconFontFace","iconColor","baseline","labelUnderNode","relativeFontSize","strokecolor","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","fontFamily","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","barId","addCustomTime","numIds","customBarId","ts","customBarIds","removeCustomTime","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","hooks__hooks","hookCallback","setHookCallback","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","input","res","hasOwnProp","utc__createUTC","createLocalOrUTC","utc","valid__isValid","_isValid","getTime","_pf","_strict","bigHour","valid__createInvalid","flags","NaN","copyConfig","val","_isAMomentObject","_i","_f","_l","_tzm","_isUTC","_offset","_locale","momentProperties","Moment","config","updateInProgress","updateOffset","toInt","argumentForCoercion","coercedNumber","isFinite","compareArrays","dontConvert","lengthDiff","diffs","Locale","normalizeLocale","chooseLocale","names","loadLocale","oldLocale","globalLocale","_abbr","locales__getSetGlobalLocale","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","number","targetLength","forceSign","output","addFormatToken","padded","ordinal","func","formatTokenFunctions","localeData","removeFormattingTokens","makeFormatFunction","formattingTokens","formatMoment","isValid","expandFormat","formatFunctions","invalidDate","replaceLongDateFormatTokens","longDateFormat","localFormattingTokens","lastIndex","addRegexToken","regex","strictRegex","regexes","isStrict","getParseRegexForToken","RegExp","unescapeFormat","matched","p4","addParseToken","tokens","addWeekParseToken","_w","addTimeToArrayFromToken","_a","daysInMonth","UTC","getUTCDate","localeMonths","_months","localeMonthsShort","_monthsShort","localeMonthsParse","monthName","_monthsParse","_longMonthsParse","_shortMonthsParse","months","monthsShort","dayOfMonth","monthsParse","getSetMonth","getDaysInMonth","checkOverflow","MONTH","DATE","YEAR","HOUR","MINUTE","SECOND","MILLISECOND","_overflowDayOfYear","warn","msg","suppressDeprecationWarnings","deprecate","firstTime","deprecateSimple","deprecations","configFromISO","l","string","from_string__isoRegex","isoDates","isoTimes","matchOffset","configFromStringAndFormat","configFromString","aspNetJsonRegex","createFromInputFallback","createDate","ms","createUTCDate","setUTCFullYear","daysInYear","isLeapYear","getIsLeapYear","weekOfYear","firstDayOfWeek","firstDayOfWeekOfYear","adjustedMoment","daysToDayOfWeek","local__createLocal","week","localeWeek","_week","dow","doy","localeFirstDayOfWeek","localeFirstDayOfYear","getSetWeek","getSetISOWeek","dayOfYearFromWeeks","daysToAdd","getUTCDay","getSetDayOfYear","startOf","defaults","currentDateArray","_useUTC","getUTCFullYear","getUTCMonth","configFromArray","currentDate","yearToUse","dayOfYearFromWeekInfo","_dayOfYear","_nextDay","setUTCMinutes","getUTCMinutes","weekYear","temp","GG","W","E","gg","ISO_8601","parsedInput","skipped","stringLength","totalParsedInputLength","meridiemFixWrap","_meridiem","meridiem","isPm","meridiemHour","isPM","configFromStringAndArray","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromObject","createFromConfig","preparse","configFromInput","isUTC","pickBy","moments","Duration","years","quarters","quarter","weeks","days","_milliseconds","_days","_bubble","isDuration","separator","utcOffset","offsetFromString","matches","chunk","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","getTimezoneOffset","getSetOffset","keepLocalTime","localAdjust","_changeInProgress","add_subtract__addSubtract","create__createDuration","getSetZone","setOffsetToUTC","setOffsetToLocal","setOffsetToParsedOffset","hasAlignedHourOffset","isDaylightSavingTime","isDaylightSavingTimeShifted","isLocal","isUtcOffset","isUtc","ret","diffRes","aspNetRegex","create__isoRegex","parseIso","momentsDifference","inp","positiveMomentsDifference","base","isAfter","isBefore","createAdder","period","dur","tmp","isAdding","calendar__calendar","sod","calendar","inputMs","endOf","isBetween","absFloor","asFloat","that","zoneDelta","monthDiff","anchor2","adjust","wholeMonthDiff","moment_format__toISOString","inputString","postformat","withoutSuffix","humanize","fromNow","newLocaleData","isoWeekday","to_type__valueOf","unix","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","localeMeridiem","isLower","millisecond__milliseconds","getZoneAbbr","getZoneName","moment__createUnix","moment__createInZone","parseZone","locale_calendar__calendar","_calendar","_longDateFormat","_invalidDate","_ordinal","preParsePostFormat","relative__relativeTime","isFuture","_relativeTime","pastFuture","set__set","_ordinalParseLenient","_ordinalParse","lists__get","setter","list","out","lists__listMonths","lists__listMonthsShort","lists__listWeekdays","lists__listWeekdaysShort","lists__listWeekdaysMin","abs__abs","mathAbs","duration_add_subtract__addSubtract","duration_add_subtract__add","duration_add_subtract__subtract","bubble","daysToYears","yearsToDays","as__valueOf","makeAs","alias","get__get","makeGetter","substituteTimeAgo","relativeTime","humanize__relativeTime","posNegDuration","thresholds","humanize__getSetRelativeTimeThreshold","limit","withSuffix","iso_string__toISOString","Y","iso_string__abs","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","isoWeekYear","getSetDayOfMonth","invalidWeekday","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","_isPm","defaultLocaleMeridiemParse","getSetHour","getSetMinute","getSetSecond","getSetMillisecond","momentPrototype__proto","toJSON","isoWeek","isoWeeks","isoWeeksInYear","isDST","isDSTShifted","zoneAbbr","zoneName","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","get__milliseconds","duration_prototype__proto","toIsoString","version","invalid","relativeTimeThreshold","_moment","setup","READY","Event","determineEventTypes","Utils","each","gestures","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","Instance","VERSION","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","HAS_POINTEREVENTS","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","dest","handler","iterator","inStr","find","inArray","getCenter","getVelocity","deltaTime","getAngle","touch1","touch2","getDirection","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","touchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","identifiers","identifier","pointerType","timeStamp","preventManipulation","stopDetect","pointers","touchlist","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","recalc","calcEv","calcData","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","state","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","holdTimeout","holdThreshold","Hold","Release","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","repositionNodes","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","_restoreNodes","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","clusterToFit","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodes","supportNodeId","gravity","gravityForce","_sector","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","maxGravitational","maxSpring","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_addSector","decreaseClusterLevel","_expandClusterNode","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","detectedZoomingIn","detectedZoomingOut","_collapseSector","_formClusters","_openClusters","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","_openClustersBySize","openAll","containedNodeId","childNode","_expelChildFromParent","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","children","childrenIds","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_cleanManipulatorHammers","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","_bindHammerToDiv","boundFunction","edgeBeingEdited","selectedControlNode","domElement","funct","_createAddNodeToolbar","_addNode","_createAddEdgeToolbar","_handleConnect","_finishConnect","_createEditEdgeToolbar","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","_editNode","selectedNodes","selectedEdges","navigationDOM","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","firstNode","_setLevelDirected","parentId","parentLevel","nodeMoved","webpackContext","req","resolve","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackPolyfill","paths"],"mappings":"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OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aAExIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aAExIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY,UAAWE,WAAYD,OAAQ,UAAWD,WAAY,WAAYG,OAAQF,OAAQ,UAAWD,WAAY,aACxIC,OAAQ,UAAWD,WAAY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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index c385c14a..9a3af43e 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -4,8 +4,8 @@ * * A dynamic, browser-based visualization library. * - * @version 3.11.0 - * @date 2015-03-05 + * @version 3.12.0 + * @date 2015-04-07 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -22,18 +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(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return t[s].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(2),e.DataSet=i(3),e.DataView=i(4),e.Queue=i(5),e.Graph3d=i(6),e.graph3d={Camera:i(7),Filter:i(8),Point2d:i(9),Point3d:i(10),Slider:i(11),StepNumber:i(12)},e.Timeline=i(13),e.Graph2d=i(14),e.timeline={DateUtil:i(15),DataStep:i(16),Range:i(17),stack:i(18),TimeStep:i(19),components:{items:{Item:i(20),BackgroundItem:i(21),BoxItem:i(22),PointItem:i(23),RangeItem:i(24)},Component:i(25),CurrentTime:i(26),CustomTime:i(27),DataAxis:i(28),GraphGroup:i(29),Group:i(30),BackgroundGroup:i(31),ItemSet:i(32),Legend:i(33),LineGraph:i(34),TimeAxis:i(35)}},e.Network=i(36),e.network={Edge:i(37),Groups:i(38),Images:i(39),Node:i(40),Popup:i(41),dotparser:i(42),gephiParser:i(43)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(44),e.hammer=i(45)},function(t,e,i){var s=i(44);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.giveRange=function(t,e,i,s){if(e==t)return.5;var o=1/(e-t);return Math.max(0,(s-t)*o)},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=o.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},e.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},e.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var s=arguments[e];for(var o in s)s.hasOwnProperty(o)&&(t[o]=s[o])}return t},e.selectiveExtend=function(t,e){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var i=2;ii;i++)if(t[i]!=e[i])return!1;return!0},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(s.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=o.exec(t),n?new Date(Number(n[1])):s(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return s(t);if(t instanceof Date)return s(t.valueOf());if(s.isMoment(t))return s(t);if(e.isString(t))return n=o.exec(t),s(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(s.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=o.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=o.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 o=/^\/?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":e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left+window.pageXOffset},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top+window.pageYOffset},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,s;if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},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.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},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,s){return e+e+i+i+s+s});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("rgb")){var s=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+s[0]+","+s[1]+","+s[2]+","+i+")"}var s=e.hexToRGB(t);return null==s?t:"rgba("+s.r+","+s.g+","+s.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)){if(e.isValidRGB(t)){var s=t.substr(4).substr(0,t.length-5).split(",");t=e.RGBToHex(s[0],s[1],s[2])}if(e.isValidHex(t)){var o=e.hexToHSV(t),n={h:o.h,s:.45*o.s,v:Math.min(1,1.05*o.v)},r={h:o.h,s:Math.min(1,1.25*o.v),v:.6*o.v},a=e.HSVToHex(r.h,r.h,r.v),h=e.HSVToHex(n.h,n.s,n.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||"white",i.border=t.border||i.background,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||i.background,i.highlight.border=t.highlight&&t.highlight.border||i.border),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||i.background,i.hover.border=t.hover&&t.hover.border||i.border);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));if(s==o)return{h:0,s:0,v:s};var n=t==s?e-i:i==s?t-e:i-t,r=t==s?3:i==s?1:5,a=60*(r-n/(o-s))/360,h=(o-s)/o,d=o;return{h:a,s:h,v:d}};var n={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),s=i[0].trim(),o=i[1].trim();e[s]=o}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var s=n.split(t.style.cssText),o=n.split(i),r=e.extend(s,o);t.style.cssText=n.join(r)},e.removeCssText=function(t,e){var i=n.split(t.style.cssText),s=n.split(e);for(var o in s)s.hasOwnProperty(o)&&delete i[o];t.style.cssText=n.join(i)},e.HSVToRGB=function(t,e,i){var s,o,n,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:s=i,o=l,n=h;break;case 1:s=d,o=i,n=h;break;case 2:s=h,o=i,n=l;break;case 3:s=h,o=d,n=i;break;case 4:s=l,o=h,n=i;break;case 5:s=i,o=h,n=d}return{r:Math.floor(255*s),g:Math.floor(255*o),b:Math.floor(255*n)}},e.HSVToHex=function(t,i,s){var o=e.HSVToRGB(t,i,s);return e.RGBToHex(o.r,o.g,o.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.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var s=Object.create(i),o=0;o=r&&o>n;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===s?d[i]:d[i][s],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,n++}return-1},e.binarySearchValue=function(t,e,i,s){for(var o,n,r,a,h=1e4,d=0,l=0,c=t.length-1;c>=l&&h>d;){if(a=Math.floor(.5*(c+l)),o=t[Math.max(0,a-1)][i],n=t[a][i],r=t[Math.min(t.length-1,a+1)][i],n==e)return a;if(e>o&&n>e)return"before"==s?Math.max(0,a-1):a;if(e>n&&r>e)return"before"==s?a:Math.min(t.length-1,a+1);e>n?l=a+1:c=a-1,d++}return-1},e.easeInOutQuad=function(t,e,i,s){var o=i-e;return t/=s/2,1>t?o/2*t*t+e:(t--,-o/2*(t*(t-2)-1)+e)},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){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(s)):(s=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(s)),e[t].used.push(s),s},e.getDOMElement=function(t,e,i,s){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==s?i.insertBefore(o,s):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==s?i.insertBefore(o,s):i.appendChild(o)),e[t].used.push(o),o},e.drawPoint=function(t,i,s,o,n,r){var a;"circle"==s.options.drawPoints.style?(a=e.getSVGElement("circle",o,n),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*s.options.drawPoints.size)):(a=e.getSVGElement("rect",o,n),a.setAttributeNS(null,"x",t-.5*s.options.drawPoints.size),a.setAttributeNS(null,"y",i-.5*s.options.drawPoints.size),a.setAttributeNS(null,"width",s.options.drawPoints.size),a.setAttributeNS(null,"height",s.options.drawPoints.size)),void 0!==s.options.drawPoints.styles&&a.setAttributeNS(null,"style",s.group.options.drawPoints.styles),a.setAttributeNS(null,"class",s.className+" point");var h=e.getSVGElement("text",o,n);return r&&(r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" label")),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i),a},e.drawBar=function(t,i,s,o,n,r,a){if(0!=o){0>o&&(o*=-1,i-=o);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*s),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",s),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",n)}}},function(t,e,i){function s(t,e){if(!t||Array.isArray(t)||o.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},this.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 s=this._options.type[i];this._type[i]="Date"==s||"ISODate"==s||"ASPDate"==s?"Date":s}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var o=i(1),n=i(5);s.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=n.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},s.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},s.prototype.subscribe=s.prototype.on,s.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},s.prototype.unsubscribe=s.prototype.off,s.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this._subscribers&&(s=s.concat(this._subscribers[t])),"*"in this._subscribers&&(s=s.concat(this._subscribers["*"]));for(var o=0;or;r++)i=n._addItem(t[r]),s.push(i);else if(o.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var c={},p=0,u=h.length;u>p;p++){var m=h[p];c[m]=t.getValue(d,p)}i=n._addItem(c),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},s.prototype.update=function(t,e){var i=[],s=[],n=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),s.push(e),n.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(o.isDataTable(t))for(var c=this._getColumnNames(t),p=0,u=t.getNumberOfRows();u>p;p++){for(var m={},f=0,g=c.length;g>f;f++){var v=c[f];m[v]=t.getValue(p,f)}h(m)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s,data:n},e),i.concat(s)},s.prototype.get=function(){var t,e,i,s,n=this,r=o.getType(arguments[0]);"String"==r||"Number"==r?(t=arguments[0],i=arguments[1],s=arguments[2]):"Array"==r?(e=arguments[0],i=arguments[1],s=arguments[2]):(i=arguments[0],s=arguments[1]);var a;if(i&&i.returnType){var h=["DataTable","Array","Object"];if(a=-1==h.indexOf(i.returnType)?"Array":i.returnType,s&&a!=o.getType(s))throw new Error('Type of parameter "data" ('+o.getType(s)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==a&&!o.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else a=s&&"DataTable"==o.getType(s)?"DataTable":"Array";var d,l,c,p,u=i&&i.type||this._options.type,m=i&&i.filter,f=[];if(void 0!=t)d=n._getItem(t,u),m&&!m(d)&&(d=null);else if(void 0!=e)for(c=0,p=e.length;p>c;c++)d=n._getItem(e[c],u),(!m||m(d))&&f.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=n._getItem(l,u),(!m||m(d))&&f.push(d));if(i&&i.order&&void 0==t&&this._sort(f,i.order),i&&i.fields){var g=i.fields;if(void 0!=t)d=this._filterFields(d,g);else for(c=0,p=f.length;p>c;c++)f[c]=this._filterFields(f[c],g)}if("DataTable"==a){var v=this._getColumnNames(s);if(void 0!=t)n._appendRow(s,v,d);else for(c=0;cc;c++)s.push(f[c]);return s}return f},s.prototype.getIds=function(t){var e,i,s,o,n,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){n=[];for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&n.push(o));for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&l.push(o[this._fieldId]));else if(h){n=[];for(s in r)r.hasOwnProperty(s)&&n.push(r[s]);for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=r[s],l.push(o[this._fieldId]));return l},s.prototype.getDataSet=function(){return this},s.prototype.forEach=function(t,e){var i,s,o=e&&e.filter,n=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],s=i[this._fieldId],t(i,s);else for(s in r)r.hasOwnProperty(s)&&(i=this._getItem(s,n),(!o||o(i))&&t(i,s))},s.prototype.map=function(t,e){var i,s=e&&e.filter,o=e&&e.type||this._options.type,n=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,o),(!s||s(i))&&n.push(t(i,a)));return e&&e.order&&this._sort(n,e.order),n},s.prototype._filterFields=function(t,e){if(!t)return t;var i={};if(Array.isArray(e))for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);else for(var s in t)t.hasOwnProperty(s)&&e.hasOwnProperty(s)&&(i[e[s]]=t[s]);return i},s.prototype._sort=function(t,e){if(o.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],o=e[i];return s>o?1:o>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},s.prototype.remove=function(t,e){var i,s,o,n=[];if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)o=this._remove(t[i]),null!=o&&n.push(o);else o=this._remove(t),null!=o&&n.push(o);return n.length&&this._trigger("remove",{items:n},e),n},s.prototype._remove=function(t){if(o.isNumber(t)||o.isString(t)){if(this._data[t])return delete this._data[t],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},s.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},s.prototype.max=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||r>s)&&(i=n,s=r)}return i},s.prototype.min=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||s>r)&&(i=n,s=r)}return i},s.prototype.distinct=function(t){var e,i=this._data,s=[],n=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(s[e]==d){l=!0;break}l||void 0===d||(s[r]=d,r++)}if(n)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},s.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),o=0,n=e.length;n>o;o++){var r=e[o];t.setValue(s,o,i[r])}},t.exports=s},function(t,e,i){function s(t,e){this._data=null,this._ids={},this.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 o=i(1),n=i(3);s.prototype.setData=function(t){var e,i,s;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var o in this._ids)this._ids.hasOwnProperty(o)&&e.push(o);this._ids={},this.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,s=e.length;s>i;i++)o=e[i],this._ids[o]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},s.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},s=[],o=[],n=0;ns;s++)n=a[s],r=this.get(n),r&&(this._ids[n]=!0,l.push(n));break;case"update":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r?this._ids[n]?(c.push(n),d.push(e.data[s])):(this._ids[n]=!0,l.push(n)):this._ids[n]&&(delete this._ids[n],p.push(n));break;case"remove":for(s=0,o=a.length;o>s;s++)n=a[s],this._ids[n]&&(delete this._ids[n],p.push(n))}this.length+=l.length-p.length,l.length&&this._trigger("add",{items:l},i),c.length&&this._trigger("update",{items:c,data:d},i),p.length&&this._trigger("remove",{items:p},i)}},s.prototype.on=n.prototype.on,s.prototype.off=n.prototype.off,s.prototype._trigger=n.prototype._trigger,s.prototype.subscribe=s.prototype.on,s.prototype.unsubscribe=s.prototype.off,t.exports=s},function(t){function e(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}e.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},e.extend=function(t,i){var s=new e(i);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){s.flush()};var o=[{name:"flush",original:void 0}];if(i&&i.replace)for(var n=0;nthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},e.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=e},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var o=function(t){return t};this.xValueLabel=o,this.yValueLabel=o,this.zValueLabel=o,this.filterLabel="time",this.legendLabel="value",this.style=s.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new p,this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.colorAxis="#4D4D4D",this.colorGrid="#D3D3D3",this.colorDot="#7DC1FF",this.colorDotBorder="#3267D2",this.create(),this.setOptions(i),e&&this.setData(e)}function o(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function n(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(56),a=i(3),h=i(4),d=i(1),l=i(10),c=i(9),p=i(7),u=i(8),m=i(11),f=i(12);r(s.prototype),s.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==s.STYLE.DOTCOLOR&&this.style!==s.STYLE.DOTSIZE&&this.style!==s.STYLE.BARCOLOR&&this.style!==s.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},s.prototype.getNumberOfRows=function(t){return t.length},s.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},s.prototype.getDistinctValues=function(t,e){for(var i=[],s=0;st[s][e]&&(i.min=t[s][e]),i.maxt;t++){var m=(t-p)/(u-p),g=240*m,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===s.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===s.STYLE.DOTCOLOR||this.style===s.STYLE.DOTSIZE){var y=5,b=new f(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",o.x,o.y),i.next()}for(g.lineWidth=1,s=void 0===this.defaultYStep,i=new f(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",o.x,o.y),i.next();for(g.lineWidth=1,s=void 0===this.defaultZStep,i=new f(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,p=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),p=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var w=this.xLabel;w.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(_)>0?this.yMin-c:this.yMax+c,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(w,o.x,o.y));var S=this.yLabel;S.length>0&&(d=.1/this.scale.x,n=Math.sin(_)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(S,o.x,o.y));var D=this.zLabel;D.length>0&&(h=30,n=Math.cos(_)>0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,o=this._convert3Dto2D(new l(n,r,a)),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(D,o.x-h,o.y))},s.prototype._hsv2rgb=function(t,e,i){var s,o,n,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:s=r,o=h,n=0;break;case 1:s=h,o=r,n=0;break;case 2:s=0,o=r,n=h;break;case 3:s=0,o=h,n=r;break;case 4:s=h,o=0,n=r;break;case 5:s=r,o=0,n=h;break;default:s=0,o=0,n=0}return"RGB("+parseInt(255*s)+","+parseInt(255*o)+","+parseInt(255*n)+")"},s.prototype._redrawDataGrid=function(){var t,e,i,o,n,r,a,h,d,c,p,u,m,f=this.frame.canvas,g=f.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(m=(t.point.z+e.point.z+i.point.z+o.point.z)/4,c=240*(1-(m-this.zMin)*this.scale.z/this.verticalRatio),p=1,this.showShadow?(u=Math.min(1+S.x/D/2,1),a=this._hsv2rgb(c,p,u),h=a):(u=1,a=this._hsv2rgb(c,p,u),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,g.lineWidth=d,g.fillStyle=a,g.strokeStyle=h,g.beginPath(),g.moveTo(t.screen.x,t.screen.y),g.lineTo(e.screen.x,e.screen.y),g.lineTo(o.screen.x,o.screen.y),g.lineTo(i.screen.x,i.screen.y),g.closePath(),g.fill(),g.stroke()}}else for(n=0;np&&(p=0);var u,m,f;this.style===s.STYLE.DOTCOLOR?(u=240*(1-(d.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)):this.style===s.STYLE.DOTSIZE?(m=this.colorDot,f=this.colorDotBorder):(u=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=f,i.fillStyle=m,i.beginPath(),i.arc(d.screen.x,d.screen.y,p,0,2*Math.PI,!0),i.fill(),i.stroke()}}},s.prototype._redrawDataBar=function(){var t,e,i,o,n=this.frame.canvas,r=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],s.lineWidth=1,s.strokeStyle="blue",s.beginPath(),s.moveTo(t.screen.x,t.screen.y)),e=1;e0&&s.stroke()}},s.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=o(t),this.startMouseY=n(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},s.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(o(t))-this.startMouseX,i=parseFloat(n(t))-this.startMouseY,s=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(s))0?1:0>t?-1:0}var s=e[0],o=e[1],n=e[2],r=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x)),a=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),h=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},s.prototype._dataPointFromXY=function(t,e){var i,o=100,n=null,r=null,a=null,h=new c(t,e);if(this.style===s.STYLE.BAR||this.style===s.STYLE.BARCOLOR||this.style===s.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var d=n.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var p=d[l],u=p.corners,m=[u[0].screen,u[1].screen,u[2].screen],f=[u[2].screen,u[3].screen,u[0].screen];if(this._insideTriangle(h,m)||this._insideTriangle(h,f))return n}}else for(i=0;ib)&&o>b&&(a=b,r=n)}}return r},s.prototype._showTooltip=function(t){var e,i,s;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,s=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",s=document.createElement("div"),s.style.position="absolute",s.style.height="0",s.style.width="0",s.style.border="5px solid #4d4d4d",s.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:s}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(s);var o=e.offsetWidth,n=e.offsetHeight,r=i.offsetHeight,a=s.offsetWidth,h=s.offsetHeight,d=t.screen.x-o/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-o),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-n+"px",s.style.left=t.screen.x-a/2+"px",s.style.top=t.screen.y-h/2+"px"},s.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=s},function(t,e,i){function s(){this.armLocation=new o,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new o,this.cameraRotation=new o(.5*Math.PI,0,0),this.calculateCameraOrientation()}var o=i(10);s.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},s.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},s.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},s.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},s.prototype.getArmLength=function(){return this.armLength},s.prototype.getCameraLocation=function(){return this.cameraLocation},s.prototype.getCameraRotation=function(){return this.cameraRotation},s.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=s},function(t,e,i){function s(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var o=i(4);s.prototype.isLoaded=function(){return this.loaded},s.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},s.prototype.getLabel=function(){return this.graph.filterLabel},s.prototype.getColumn=function(){return this.column},s.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index] -},s.prototype.getValues=function(){return this.values},s.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},s.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var s=new o(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(s),this.dataPoints[t]=e}return e},s.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},s.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},s.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},s.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},s.prototype.setIndex=function(t){if(!(ts&&(s=0),s>this.values.length-1&&(s=this.values.length-1),s},s.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,s=i+3;return s},s.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,s=this.leftToIndex(i);this.setIndex(s),o.preventDefault()},s.prototype._onMouseUp=function(){this.frame.style.cursor="auto",o.removeEventListener(document,"mousemove",this.onmousemove),o.removeEventListener(document,"mouseup",this.onmouseup),o.preventDefault()},t.exports=s},function(t){function e(t,e,i,s){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,s)}e.prototype.setRange=function(t,e,i,s){this._start=t?t:0,this._end=e?e:0,this.setStep(i,s)},e.prototype.setStep=function(t,i){void 0===t||0>=t||(void 0!==i&&(this.prettyStep=i),this._step=this.prettyStep===!0?e.calculatePrettyStep(t):t)},e.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),s=2*Math.pow(10,Math.round(e(t/2))),o=5*Math.pow(10,Math.round(e(t/5))),n=i;return Math.abs(s-t)<=Math.abs(n-t)&&(n=s),Math.abs(o-t)<=Math.abs(n-t)&&(n=o),0>=n&&(n=1),n},e.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},e.prototype.getStep=function(){return this._step},e.prototype.start=function(){this._current=this._start-this._start%this._step},e.prototype.next=function(){this._current+=this._step},e.prototype.end=function(){return this._current>this._end},t.exports=e},function(t,e,i){function s(t,e,i,h){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n||i instanceof r)&&i instanceof Object){var u=h;h=i,i=u}var m=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return m.timeAxis.step.scale},getStep:function(){return m.timeAxis.step.step},toScreen:m._toScreen.bind(m),toGlobalScreen:m._toGlobalScreen.bind(m),toTime:m._toTime.bind(m),toGlobalTime:m._toGlobalTime.bind(m)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){m.emit("click",m.getEventProperties(t))}),this.on("doubletap",function(t){m.emit("doubleClick",m.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){m.emit("contextmenu",m.getEventProperties(t))},h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),p=i(32);s.prototype=new h,s.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var s=this._getDataRange();var o=void 0!=this.options.start?this.options.start:s.start,a=void 0!=this.options.end?this.options.end:s.end;this.setWindow(o,a,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},s.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],s=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),o=null,n=null;if(s.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===o||o>e)&&(o=e),(null===n||i>n)&&(n=i)}),null!==o&&null!==n){var r=(o+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-o)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},s.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var s=t.min("start");e=s?o.convert(s.start,"Date").valueOf():null;var n=t.max("start");n&&(i=o.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?o.convert(r.end,"Date").valueOf():Math.max(i,o.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},s.prototype.getEventProperties=function(t){var e=this.itemSet.itemFromTarget(t),i=this.itemSet.groupFromTarget(t),s=t.gesture?t.gesture.center.pageX:t.pageX,n=t.gesture?t.gesture.center.pageY:t.pageY,r=s-o.getAbsoluteLeft(this.dom.centerContainer),a=n-o.getAbsoluteTop(this.dom.centerContainer),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),l=this.body.util.getStep(),c=this._toTime(r),p=h?h(c,d,l):c,u=o.getTarget(t),m=null;return null!=e?m="item":o.hasParent(u,this.timeAxis.dom.foreground)?m="axis":this.timeAxis2&&o.hasParent(u,this.timeAxis2.dom.foreground)?m="axis":o.hasParent(u,this.itemSet.dom.labelSet)?m="group-label":o.hasParent(u,this.customTime.bar)?m="custom-time":o.hasParent(u,this.currentTime.bar)?m="current-time":o.hasParent(u,this.dom.center)&&(m="background"),{event:t,item:e?e.id:null,group:i?i.groupId:null,what:m,pageX:s,pageY:n,x:r,y:a,time:c,snappedTime:p}},t.exports=s},function(t,e,i){function s(t,e,i,s){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=s;s=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){h.emit("click",h.getEventProperties(t))}),this.on("doubletap",function(t){h.emit("doubleClick",h.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){h.emit("contextmenu",h.getEventProperties(t))},s&&this.setOptions(s),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),p=i(34);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var s=void 0!=this.options.start?this.options.start:null,o=void 0!=this.options.end?this.options.end:null;this.setWindow(s,o,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},s.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},s.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},s.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var s=0;sr?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},s.prototype.getEventProperties=function(t){var e=t.gesture?t.gesture.center.pageX:t.pageX,i=t.gesture?t.gesture.center.pageY:t.pageY,s=e-o.getAbsoluteLeft(this.dom.centerContainer),n=i-o.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(s),a=o.getTarget(t),h=null;o.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&o.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":o.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":o.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":o.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":o.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":o.hasParent(a,this.customTime.bar)?h="custom-time":o.hasParent(a,this.currentTime.bar)?h="current-time":o.hasParent(a,this.dom.center)&&(h="background");var d=[],l=this.linegraph.yAxisLeft,c=this.linegraph.yAxisRight;return l.hidden||d.push(l.screenToValue(n)),c.hidden||d.push(c.screenToValue(n)),{event:t,what:h,pageX:e,pageY:i,x:s,y:n,time:r,value:d}},t.exports=s},function(t,e,i){var s=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var p=0,u=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(o.dayOfYear()),d.year(o.year()),d.subtract(7,"days"),l.dayOfYear(o.dayOfYear()),l.year(o.year()),l.subtract(7-p,"days"),u.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(o.date()),d.month(o.month()),d.year(o.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),u.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(o.month()),d.year(o.year()),d.subtract(1,"months"),l.month(o.month()),l.year(o.year()),l.subtract(1,"months"),l.add(p,"months"),u.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(o.year()),d.subtract(1,"years"),l.year(o.year()),l.subtract(1,"years"),l.add(p,"years"),u.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;u>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],s=0;s=e[s].start&&e[o].end<=e[s].end?e[o].remove=!0:e[o].start>=e[s].start&&e[o].start<=e[s].end?(e[s].end=e[o].end,e[o].remove=!0):e[o].end>=e[s].start&&e[o].end<=e[s].end&&(e[s].start=e[o].start,e[o].remove=!0));for(var s=0;s=r&&a>o){i=!0;break}}if(1==i&&o=e&&i>r&&(s+=r-n)}return s},e.correctTimeForHidden=function(t,i,o){return o=s(o).toDate().valueOf(),o-=e.getHiddenDurationBefore(t,i,o)},e.getHiddenDurationBefore=function(t,e,i){var o=0;i=s(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(o+=a-r)}return o},e.getAccumulatedHiddenDuration=function(t,e,i){for(var s=0,o=0,n=e.start,r=0;r=e.start&&h=i)break;s+=h-a}}return s},e.snapAwayFromHidden=function(t,i,s,o){var n=e.isHidden(i,t);return 1==n.hidden?0>s?1==o?n.startDate-(n.endDate-i)-1:n.startDate-1:1==o?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=s&&o>t)return{hidden:!0,startDate:s,endDate:o}}return{hidden:!1,startDate:s,endDate:o}}},function(t){function e(t,e,i,s,o,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,s,o)}e.prototype.setRange=function(t,e,i,s,o){this._start=void 0===o.min?t:o.min,this._end=void 0===o.max?e:o.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,s),this.setFirst(o)},e.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,s=1.2*i,o=t*(s/e),n=Math.round(Math.log(s)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=o){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},e.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},e.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},e.prototype.hasNext=function(){return this.current>=this.marginStart},e.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},e.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},e.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;s--){if("0"!=i[s]){if("."==i[s]||","==i[s]){i=i.slice(0,s);break}break}i=i.slice(0,s)}}else{var o="",n=i.indexOf("e");if(-1!=n&&(o=i.slice(n),i=i.slice(0,n)),n=Math.max(i.indexOf(","),i.indexOf(".")),-1===n?(0!==t&&(i+="."),n=i.length+t):0!==t&&(n+=t+1),n>i.length)for(var r=n-i.length;r>0;r--)i+="0";else i=i.slice(0,n);i+=o}return i},e.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=e},function(t,e,i){function s(t,e){var i=h().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("dragstart",this._onDragStart.bind(this)),this.body.emitter.on("drag",this._onDrag.bind(this)),this.body.emitter.on("dragend",this._onDragEnd.bind(this)),this.body.emitter.on("hold",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("DOMMouseScroll",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function o(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.pageX-r.getAbsoluteLeft(e),y:t.pageY-r.getAbsoluteTop(e)}}var r=i(1),a=i(47),h=i(44),d=i(25),l=i(15);s.prototype=new d,s.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},s.prototype.setRange=function(t,e,i,s){s!==!0&&(s=!1);var o=void 0!=t?r.convert(t,"Date").valueOf():null,n=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,d=this.end,c="number"==typeof i?i:500,p=(new Date).valueOf(),u=!1,m=function(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-p,i=e>c,g=i||null===o?o:r.easeInOutQuad(e,h,o,c),v=i||null===n?n:r.easeInOutQuad(e,d,n,c);f=a._applyRange(g,v),l.updateHiddenDates(a.body,a.options.hiddenDates),u=u||f,f&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:s}),i?u&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:s}):a.animateTimer=setTimeout(m,20)}};return m()}var f=this._applyRange(o,n);if(l.updateHiddenDates(this.body,this.options.hiddenDates),f){var g={start:new Date(this.start),end:new Date(this.end),byUser:s};this.body.emitter.emit("rangechange",g),this.body.emitter.emit("rangechanged",g)}},s.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},s.prototype._applyRange=function(t,e){var i,s=null!=t?r.convert(t,"Date").valueOf():this.start,o=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(o)||null===o)throw new Error('Invalid end "'+e+'"');if(s>o&&(o=s),null!==a&&a>s&&(i=a-s,s+=i,o+=i,null!=n&&o>n&&(o=n)),null!==n&&o>n&&(i=o-n,s-=i,o-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>o-s&&(this.end-this.start===h&&s>this.start&&od&&(d=0),o-s>d&&(this.end-this.start===d&&sthis.end?(s=this.start,o=this.end):(i=o-s-d,s+=i/2,o-=i/2))}var l=this.start!=s||this.end!=o;return s>=this.start&&s<=this.end||o>=this.start&&o<=this.end||this.start>=s&&this.start<=o||this.end>=s&&this.end<=o||this.body.emitter.emit("checkRangedItems"),this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t,e){return s.conversion(this.start,this.end,t,e)},s.conversion=function(t,e,i,s){return void 0===s&&(s=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-s)}:{offset:0,scale:1}},s.prototype._onDragStart=function(){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},s.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;o(e);var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY;i-=this.deltaDifference;var s=this.props.touch.end-this.props.touch.start,n=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);s-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*s,h=this.props.touch.start+a,d=this.props.touch.end+a,c=l.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=l.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(c!=h||p!=d)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},s.prototype._onDragEnd=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},s.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=a.fakeGesture(this,t),o=n(s.center,this.body.dom.center),r=this._pointerToDate(o);this.zoom(i,r,e)}t.preventDefault()}},s.prototype._onTouch=function(){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},s.prototype._onHold=function(){this.props.touch.allowDragging=!1},s.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable&&(this.props.touch.allowDragging=!1,t.gesture.touches.length>1)){this.props.touch.center||(this.props.touch.center=n(t.gesture.center,this.body.dom.center));var e=1/(t.gesture.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=s-o,a=i-o+(this.props.touch.start-(i-o))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=1-e>0?!1:!0,this.endToFront=e-1>0?!1:!0;var d=l.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=l.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(d!=a||c!=h)&&(this.props.touch.start=d,this.props.touch.end=c,this.scaleOffset=1-t.gesture.scale,a=d,h=c),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var s=this.body.domProps.center.height;return e=this.conversion(s),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=s-o,r=e-o+(this.start-(e-o))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=l.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),d=l.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||d!=a)&&(r=h,a=d),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},s.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},s.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,o=this.end-i;this.setRange(s,o)},t.exports=s},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start -})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},e.stack=function(t,i,s){var o,n;if(s)for(o=0,n=t.length;n>o;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var s,o,n;for(s=0,o=t.length;o>s;s++)if(void 0!==t[s].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-s.vertical+ie.top}},function(t,e,i){function s(t,e,i,o){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,this.hiddenDates=o,void 0===o&&(this.hiddenDates=[]),this.format=s.FORMAT}var o=i(44),n=i(15),r=i(1);s.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},s.prototype.setFormat=function(t){var e=r.deepExtend({},s.FORMAT);this.format=r.deepExtend(e,t)},s.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},s.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},s.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case"month":this.current.setDate(1);case"day":case"weekday":this.current.setHours(0);case"hour":this.current.setMinutes(0);case"minute":this.current.setSeconds(0);case"second":this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case"hour":this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case"month":this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},s.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},s.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current=new Date(this.current.valueOf()+1e3*this.step);break;case"minute":this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case"hour":this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()+this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()+this.step);break;case"hour":this.current.setHours(this.current.getHours()+this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.getMilliseconds()0?t.step:1,this.autoScale=!1)},s.prototype.setAutoScale=function(t){this.autoScale=t},s.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,o=36e5,n=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*s>t&&(this.scale="day",this.step=5),2*s>t&&(this.scale="day",this.step=2),s>t&&(this.scale="day",this.step=1),s/2>t&&(this.scale="weekday",this.step=1),4*o>t&&(this.scale="hour",this.step=4),o>t&&(this.scale="hour",this.step=1),15*n>t&&(this.scale="minute",this.step=15),10*n>t&&(this.scale="minute",this.step=10),5*n>t&&(this.scale="minute",this.step=5),n>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},s.snap=function(t,e,i){var s=new Date(t.valueOf());if("year"==e){var o=s.getFullYear()+Math.round(s.getMonth()/12);s.setFullYear(Math.round(o/i)*i),s.setMonth(0),s.setDate(0),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("month"==e)s.getDate()>15?(s.setDate(1),s.setMonth(s.getMonth()+1)):s.setDate(1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0);else if("day"==e){switch(i){case 5:case 2:s.setHours(24*Math.round(s.getHours()/24));break;default:s.setHours(12*Math.round(s.getHours()/12))}s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:s.setHours(12*Math.round(s.getHours()/12));break;default:s.setHours(6*Math.round(s.getHours()/6))}s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("hour"==e){switch(i){case 4:s.setMinutes(60*Math.round(s.getMinutes()/60));break;default:s.setMinutes(30*Math.round(s.getMinutes()/30))}s.setSeconds(0),s.setMilliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:s.setMinutes(5*Math.round(s.getMinutes()/5)),s.setSeconds(0);break;case 5:s.setSeconds(60*Math.round(s.getSeconds()/60));break;default:s.setSeconds(30*Math.round(s.getSeconds()/30))}s.setMilliseconds(0)}else if("second"==e)switch(i){case 15:case 10:s.setSeconds(5*Math.round(s.getSeconds()/5)),s.setMilliseconds(0);break;case 5:s.setMilliseconds(1e3*Math.round(s.getMilliseconds()/1e3));break;default:s.setMilliseconds(500*Math.round(s.getMilliseconds()/500))}else if("millisecond"==e){var n=i>5?i/2:1;s.setMilliseconds(Math.round(s.getMilliseconds()/n)*n)}return s},s.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}switch(this.scale){case"millisecond":return 0==this.current.getMilliseconds();case"second":return 0==this.current.getSeconds();case"minute":return 0==this.current.getHours()&&0==this.current.getMinutes();case"hour":return 0==this.current.getHours();case"weekday":case"day":return 1==this.current.getDate();case"month":return 0==this.current.getMonth();case"year":return!1;default:return!1}},s.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(o().add(1,"day"),"day")?" tomorrow":t.isSame(o().add(-1,"day"),"day")?" yesterday":""}function i(t){return t.isSame(new Date,"week")?" current-week":""}function s(t){return t.isSame(new Date,"month")?" current-month":""}function n(t){return t.isSame(new Date,"year")?" current-year":""}var r=o(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-"+(d+4)),d+"h"+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"day"+l+" "+c+s(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+s(a)+t(a.month());case"year":var p=a.year();return"year"+p+n(a)+t(p);default:return""}},t.exports=s},function(t,e,i){function s(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null}var o=i(45),n=i(1);s.prototype.stack=!0,s.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setData=function(t){this.data=t,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},s.prototype.isVisible=function(){return!1},s.prototype.show=function(){return!1},s.prototype.hide=function(){return!1},s.prototype.redraw=function(){},s.prototype.repositionX=function(){},s.prototype.repositionY=function(){},s.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",o(i,{preventDefault:!0}).on("tap",function(t){e.parent.removeFromDataSet(e),t.stopPropagation()}),t.appendChild(i),this.dom.deleteButton=i}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},s.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},s.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},s.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;it.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},s.prototype.show=r.prototype.show,s.prototype.hide=r.prototype.hide,s.prototype.repositionX=r.prototype.repositionX,s.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var s=this.data.subgroup,o=this.parent.subgroups,r=o[s].index;if(1==e){i=this.parent.subgroups[s].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in o)o.hasOwnProperty(h)&&1==o[h].visible&&o[h].indexr&&(a+=l)}i=this.parent.subgroups[s].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=s},function(t,e,i){function s(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);o.call(this,t,e,i)}{var o=i(20);i(1)}s.prototype=new o(null,null,null),s.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},s.prototype.show=function(){this.displayed||this.redraw()},s.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},s.prototype.repositionX=function(t){var e,i,s=this.parent.width,o=this.conversion.toScreen(this.data.start),n=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-s>o&&(o=-s),n>2*s&&(n=2*s));var r=Math.max(n-o,1);switch(this.overflow?(this.left=o,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=o,this.width=r,i=Math.min(n-o-2*this.options.padding,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-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i-2*this.options.padding)/2,0)+"px";break;default:e=this.overflow?n>0?Math.max(-o,0):-i:0>o?Math.min(-o,n-o-i-2*this.options.padding):0,this.dom.content.style.left=e+"px"}},s.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},s.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},s.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=s},function(t){function e(){this.options=null,this.props=null}e.prototype.setOptions=function(t){t&&util.extend(this.options,t)},e.prototype.redraw=function(){return!1},e.prototype.destroy=function(){},e.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=e},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=o.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var o=i(1),n=i(25),r=i(44),a=i(48);s.prototype=new n,s.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},s.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},s.prototype.setOptions=function(t){t&&o.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},s.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=new Date((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),s=this.options.locales[this.options.locale],o=s.current+" "+s.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=i+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},s.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},s.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},s.prototype.setCurrentTime=function(t){var e=o.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},s.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en",id:0},this.options=n.extend({},this.defaultOptions),this.customTime=e&&e.time?e.time:new Date,this.eventParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(25),a=i(44),h=i(48);s.prototype=new r,s.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showCustomTime","locale","locales","id"],this.options,t),this.options.id&&this.redraw())},s.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=o(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},s.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},s.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],s=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=e+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},s.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},s.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},s.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},s.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.body.util.toScreen(this.eventParams.customTime)+e,s=this.body.util.toTime(i);this.setCustomTime(s),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},s.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=s},function(t,e,i){function s(t,e,i,s){this.id=o.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=o.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var o=i(1),n=i(2),r=i(25),a=i(16);s.prototype=new r,s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];o.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg) -},s.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,s=4,o=s+.5*i;t="left"==this.options.orientation?s:this.width-e-s;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,o,this.svgElements,this.svg,e,i),o+=i+s));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},s.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},s.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},s.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},s.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n)}return t},s.prototype._redrawLabels=function(){var t=!1;n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var e=this.options.orientation,i=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,s=new a(this.range.start,this.range.end,i,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=s;var o=(this.dom.frame.offsetHeight-s.deadSpace*(this.dom.frame.offsetHeight/s.marginRange))/((s.marginRange-s.deadSpace)/s.step);this.stepPixels=o;var r=this.height/o,h=0;if(0==this.master){o=this.stepPixelsForced,h=Math.round(this.dom.frame.offsetHeight/o-r);for(var d=0;.5*h>d;d++)s.previous();if(r=this.height/o,-1!=this.zeroCrossing&&1==this.options.alignZeros){var l=s.marginEnd/s.step-this.zeroCrossing;if(l>0)for(var d=0;l>d;d++)s.next();else if(0>l)for(var d=0;-l>d;d++)s.previous()}}else r+=.25;this.valueAtZero=s.marginEnd;var c,p=0,u=1;void 0!==this.options.format[e]&&(c=this.options.format[e].decimals),this.maxLabelSize=0;for(var m=0;u=0&&this._redrawLabel(m-2,s.getCurrent(c),e,"yAxis major",this.props.majorCharHeight),this._redrawLine(m,e,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(m,e,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==s.current&&(this.zeroCrossing=u),u++}this.conversionFactor=0==this.master?m/(this.valueAtZero-s.current):this.dom.frame.offsetHeight/s.marginRange;var g=0;void 0!==this.options.title[e]&&void 0!==this.options.title[e].text&&(g=this.props.titleCharHeight);var v=1==this.options.icons?Math.max(this.options.iconWidth,g)+this.options.labelOffsetX+15:g+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-v&&1==this.options.visible?(this.width=this.maxLabelSize+v,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+v),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),t=!1),t},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype.screenToValue=function(t){return this.valueAtZero-t/this.conversionFactor},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizep;p++){var m=this.visibleItems[p];m.repositionY(e)}return s},s.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var s=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(o.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(s.subgroups[t.data.subgroup].height=Math.max(s.subgroups[t.data.subgroup].height,t.height),s.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,o.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=t.axis+t.item.vertical;return e=Math.max(e,this.props.label.height)},s.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},s.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},s.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},s.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!o(n));r--)void 0===s[n.id]&&(s[n.id]=!0,i.push(n));for(r=t+1;rs;s++){var n=this.visibleItems[s];n.repositionY(e)}return i},s.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},snap:h.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(3),a=i(4),h=i(19),d=i(25),l=i(30),c=i(31),p=i(22),u=i(23),m=i(24),f=i(21),g="__ungrouped__",v="__background__";s.prototype=new d,s.types={background:f,box:p,range:m,point:u},s.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new c(v,null,this);r.show(),this.groups[v]=r,this.hammer=o(this.body.dom.centerContainer,{preventDefault:!0}),this.hammer.on("touch",this._onTouch.bind(this)),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("hold",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},s.prototype.setOptions=function(t){if(t){var e=["type","align","orientation","order","padding","stack","selectable","groupOrder","dataAttributes","template","hide","snap"];n.selectiveExtend(e,this.options,t),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},s.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},s.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},s.prototype.setSelection=function(t){var e,i,s,o;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)s=this.selection[e],o=this.items[s],o&&o.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],o=this.items[s],o&&(this.selection.push(s),o.select())},s.prototype.getSelection=function(){return this.selection.concat([])},s.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),s=[];for(var o in this.groups)if(this.groups.hasOwnProperty(o))for(var n=this.groups[o],r=n.visibleItems,a=0;ae&&s.push(h.id)}return s},s.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},s.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,s=this.options,o=s.orientation,r=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,p=this._firstGroup(),u={item:t.item,axis:t.axis},m={item:t.item,axis:t.item.vertical/2},f=0,g=t.axis+t.item.vertical;return this.groups[v].redraw(e,m,c),n.forEach(this.groups,function(t){var i=t==p?u:m,s=t.redraw(e,i,c);r=s||r,f+=t.height}),f=Math.max(f,g),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==o?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},s.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[g];return i||null},s.prototype._updateUngrouped=function(){{var t,e,i=this.groups[g];this.groups[v]}if(this.groupsData){if(i){i.hide(),delete this.groups[g];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var s=this._getGroupId(t.data),o=this.groups[s];o&&o.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new l(n,r,this),this.groups[g]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},s.prototype.getLabelSet=function(){return this.dom.labelSet},s.prototype.setItems=function(t){var e,i=this,s=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(n.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,o)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},s.prototype.getItems=function(){return this.itemsData},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},s.prototype.getGroups=function(){return this.groupsData},s.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},s.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},s.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?v:this.groupsData?t.group:g},s.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=e._getType(i),r=s.types[n];if(o&&(r&&o instanceof r?e._updateItem(o,i):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');o=new r(i,e.conversion,e.options),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},s.prototype._onAdd=s.prototype._onUpdate,s.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},s.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},s.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},s.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==g||t==v)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);n.extend(o,{height:null}),s=new l(t,i,e),e.groups[t]=s;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change",{queue:!0})},s.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},s.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)}},s.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||s.length>0)&&this.body.emitter.emit("select",{items:r})}},s.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,s=this.itemFromTarget(t);if(s){var o=e.itemsData.get(s.id);this.options.onUpdate(o,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=n.getAbsoluteLeft(this.dom.frame),a=t.gesture.center.pageX-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),c={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var p=this.body.util.toTime(a+this.props.width/5);c.end=i?i(p,d,l):p}c[this.itemsData._fieldId]=n.randomUUID();var u=this.groupFromTarget(t);u&&(c.group=u.groupId),this.options.onAdd(c,function(t){t&&e.itemsData.getDataSet().add(t)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=this.itemFromTarget(t);if(i){e=this.getSelection();var o=t.gesture.touches[0]&&t.gesture.touches[0].shiftKey||!1;if(o){e.push(i.id);var n=s._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},s._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},s.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},s.prototype.groupFromTarget=function(t){for(var e=t.gesture?t.gesture.center.clientY:t.clientY,i=0;ia&&ea)return o}else if(0===i&&e"));this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},s.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,s=this.options.iconSize,o=.75*this.options.iconSize,r=e+.5*o+3;this.svg.style.width=s+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,s,o),r+=o+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=s},function(t,e,i){function s(t,e){this.id=o.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=o.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var o=i(1),n=i(2),r=i(3),a=i(4),h=i(25),d=i(28),l=i(29),c=i(33),p=i(50),u="__ungrouped__";s.prototype=new h,s.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},s.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;eu&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;rs){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var s=0;s0){var n=1,r=o.length,a=this.body.util.toGlobalScreen(o[o.length-1].x)-this.body.util.toGlobalScreen(o[0].x),h=r/a;n=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=n)d.push(o[l]);e[t[s]]=d}}},s.prototype._getYRanges=function(t,e,i){var s,o,n,r,a=[],h=[];if(t.length>0){for(n=0;n0&&(o=this.groups[t[n]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(o.getYRange(s)):h=h.concat(o.getYRange(s)):i[t[n]]=o.getYRange(s,t[n]));p.getStackedBarYRange(a,i,t,"__barchartLeft","left"),p.getStackedBarYRange(h,i,t,"__barchartRight","right")}},s.prototype._updateYAxis=function(t,e){var i,s,o=!1,n=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=s>d?s:d):(r=!0,h=h>i?i:h,l=s>l?s:l));1==n&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return o=this._toggleAxisVisiblity(n,this.yAxisLeft)||o,o=this._toggleAxisVisiblity(r,this.yAxisRight)||o,1==r&&1==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,o=this.yAxisLeft.redraw()||o,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,o=this.yAxisRight.redraw()||o):o=this.yAxisRight.redraw()||o,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),o},s.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},s.prototype._convertXcoordinates=function(t){for(var e,i,s=[],o=this.body.util.toScreen,n=0;ny;)y++,l=h.getCurrent(),c=h.isMajor(),u=h.getClassName(),f=m,m=this.body.util.toScreen(l),g=m-f,p&&(p.style.width=g+"px"),this.options.showMinorLabels&&this._repaintMinorText(m,h.getLabelMinor(),t,u),c&&this.options.showMajorLabels?(m>0&&(void 0==v&&(v=m),this._repaintMajorText(m,h.getLabelMajor(),t,u)),p=this._repaintMajorLine(m,t,u)):p=this._repaintMinorLine(m,t,u),h.next();if(this.options.showMajorLabels){var b=this.body.util.toTime(0),_=h.getLabelMajor(b),x=_.length*(this.props.majorCharWidth||10)+10;(void 0==v||v>x)&&this._repaintMajorText(0,_,t,u)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i,s){var o=this.dom.redundant.minorTexts.shift();if(!o){var n=document.createTextNode("");o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.minorTexts.push(o),o.childNodes[0].nodeValue=e,o.style.top="top"==i?this.props.majorLabelHeight+"px":"0",o.style.left=t+"px",o.className="text minor "+s},s.prototype._repaintMajorText=function(t,e,i,s){var o=this.dom.redundant.majorTexts.shift();if(!o){var n=document.createTextNode(e);o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.majorTexts.push(o),o.childNodes[0].nodeValue=e,o.className="text major "+s,o.style.top="top"==i?"0":this.props.minorLabelHeight+"px",o.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?o.majorLabelHeight+"px":this.body.domProps.top.height+"px",s.style.height=o.minorLineHeight+"px",s.style.left=t-o.minorLineWidth/2+"px",s.className="grid vertical minor "+i,s},s.prototype._repaintMajorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?"0":this.body.domProps.top.height+"px",s.style.left=t-o.majorLineWidth/2+"px",s.style.height=o.majorLineHeight+"px",s.className="grid vertical major "+i,s},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._determineBrowserMethod(),this._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=0,this.physicsTime=0,this.runDoubleSpeed=!1,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null};var o=function(t,e,i,s){if(e==t)return.5;var o=1/(e-t);return Math.max(0,(s-t)*o)};this.defaultOptions={nodes:{customScalingFunction:o,mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,fontStrokeWidth:0,fontStrokeColor:"#ffffff",fontDrawThreshold:3,scaleFontWithValue:!1,fontSizeMin:14,fontSizeMax:30,fontSizeMaxVisible:30,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{customScalingFunction:o,widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},opacity:1,fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",fontStrokeWidth:0,fontStrokeColor:"white",labelAlignment:"horizontal",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from",useGradients:!1},configurePhysics:!1,physics:{barnesHut:{enabled:!0,thetaInverted:2,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{enabled:!1,centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},damping:null,centralGravity:null,springLength:null,springConstant:null},clustering:{enabled:!1,initialMaxNodes:100,clusterThreshold:500,reduceToNodes:300,chainThreshold:.4,clusterEdgeThreshold:20,sectorThreshold:100,screenSizeThreshold:.2,fontSizeMultiplier:4,maxFontSize:1e3,forceAmplification:.1,distanceAmplification:.1,edgeGrowth:20,nodeScaling:{width:1,height:1,radius:1},maxNodeSizeIncrements:600,activeAreaBoxSize:80,clusterLevelDifference:2,clusterByZoom:!0},navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150,nodeSpacing:100,direction:"UD",layout:"hubsize"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},maxVelocity:50,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,zoomExtentOnStabilize:!0,locale:"en",locales:_,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0,useDefaultGroups:!0},this.constants=a.extend({},this.defaultOptions),this.pixelRatio=1,this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers=[],this.manipulationHammers=[],this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.animating=!1,this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0,this.redrawRequested=!1; -var n=this;this.groups=new u,this.images=new m,this.images.setOnloadCallback(function(){n._requestRedraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadPhysicsSystem(),this._create(),this._loadSectorSystem(),this._loadClusterSystem(),this._loadSelectionSystem(),this._loadHierarchySystem(),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1),this.setOptions(i),this.freezeSimulationEnabled=!1,this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.calculationNodes={},this.calculationNodeIndices=[],this.nodeIndices=[],this.nodes={},this.edges={},this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.pointerPosition={x:0,y:0},this.areaCenter={},this.scale=1,this.previousScale=this.scale,this.nodesData=null,this.edgesData=null,this.nodesListeners={add:function(t,e){n._addNodes(e.items),n.start()},update:function(t,e){n._updateNodes(e.items),n.start()},remove:function(t,e){n._removeNodes(e.items),n.start()}},this.edgesListeners={add:function(t,e){n._addEdges(e.items),n.start()},update:function(t,e){n._updateEdges(e.items),n.start()},remove:function(t,e){n._removeEdges(e.items),n.start()}},this.moving=!0,this.timer=void 0,this.setData(e,this.constants.clustering.enabled||this.constants.hierarchicalLayout.enabled),this.initializing=!1,1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent({duration:0},!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(56),n=i(45),r=i(57),a=i(1),h=i(47),d=i(3),l=i(4),c=i(42),p=i(43),u=i(38),m=i(39),f=i(40),g=i(37),v=i(41),y=i(52),b=i(53),_=i(54);i(55),o(s.prototype),s.prototype._determineBrowserMethod=function(){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)},s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;e0)for(var r=0;re.boundingBox.left&&(o=e.boundingBox.left),ne.boundingBox.bottom&&(i=e.boundingBox.top),se.boundingBox.left&&(o=e.boundingBox.left),ne.boundingBox.bottom&&(i=e.boundingBox.top),s.5*this.nodeIndices.length)return void this.zoomExtent(t,!1,i);s=this._getRange(t.nodes);var h=this.nodeIndices.length;o=1==this.constants.smoothCurves?1==this.constants.clustering.enabled&&h>=this.constants.clustering.initialMaxNodes?49.07548/(h+142.05338)+91444e-8:12.662/(h+7.4147)+.0964822:1==this.constants.clustering.enabled&&h>=this.constants.clustering.initialMaxNodes?77.5271985/(h+187.266146)+476710517e-13:30.5062972/(h+19.93597763)+.08413486;var d=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);o*=d}else{s=this._getRange(t.nodes);var l=1.1*Math.abs(s.maxX-s.minX),c=1.1*Math.abs(s.maxY-s.minY),p=this.frame.canvas.clientWidth/l,u=this.frame.canvas.clientHeight/c;o=u>=p?p:u}o>1&&(o=1);var m=this._findCenter(s);if(0==i){var t={position:m,scale:o,animation:t};this.moveTo(t),this.moving=!0,this.start()}else m.x*=o,m.y*=o,m.x-=.5*this.frame.canvas.clientWidth,m.y-=.5*this.frame.canvas.clientHeight,this._setScale(o),this._setTranslation(-m.x,-m.y)},s.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},s.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this._unselectAll(!0),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(1==this.constants.dataManipulation.enabled&&this._createManipulatorBar(),this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=c.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var s=p.parseGephi(t.gephi);return void this.setData(s)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this._putDataInSector(),0==e&&(1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):1==this.constants.stabilize&&this._stabilize(),this.start()),this.initializing=!1},s.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","clustering","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(a.selectiveNotDeepExtend(i,this.constants,t),a.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),a.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),this.groups.useDefaultGroups=this.constants.useDefaultGroups,t.physics&&(a.mergeOptions(this.constants.physics,t.physics,"barnesHut"),a.mergeOptions(this.constants.physics,t.physics,"repulsion"),t.physics.hierarchicalRepulsion)){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),a.mergeOptions(this.constants,t,"smoothCurves"),a.mergeOptions(this.constants,t,"hierarchicalLayout"),a.mergeOptions(this.constants,t,"clustering"),a.mergeOptions(this.constants,t,"navigation"),a.mergeOptions(this.constants,t,"keyboard"),a.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(a.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover)),this.constants.edges.inheritColor=!1),t.edges.fontColor||void 0!==t.edges.color&&(a.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var s=a.parseColor(t.nodes.color);this.constants.nodes.color.background=s.background,this.constants.nodes.color.border=s.border,this.constants.nodes.color.highlight.background=s.highlight.background,this.constants.nodes.color.highlight.border=s.highlight.border,this.constants.nodes.color.hover.background=s.hover.background,this.constants.nodes.color.hover.border=s.hover.border}if(t.groups)for(var o in t.groups)if(t.groups.hasOwnProperty(o)){var n=t.groups[o];this.groups.add(o,n)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=a.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new b(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.');this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._bindHammer(),this._createKeyBinds(),this._markAllEdgesAsDirty(),this.setSize(this.constants.width,this.constants.height),this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.start()}},s.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.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._bindHammer()},s.prototype._bindHammer=function(){var t=this;void 0!==this.hammer&&this.hammer.dispose(),this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",t._onTap.bind(t)),this.hammer.on("doubletap",t._onDoubleTap.bind(t)),this.hammer.on("hold",t._onHold.bind(t)),this.hammer.on("touch",t._onTouch.bind(t)),this.hammer.on("dragstart",t._onDragStart.bind(t)),this.hammer.on("drag",t._onDrag.bind(t)),this.hammer.on("dragend",t._onDragEnd.bind(t)),1==this.constants.zoomable&&(this.hammer.on("mousewheel",t._onMouseWheel.bind(t)),this.hammer.on("DOMMouseScroll",t._onMouseWheel.bind(t)),this.hammer.on("pinch",t._onPinch.bind(t))),this.hammer.on("mousemove",t._onMouseMoveTitle.bind(t)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",t._onRelease.bind(t)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=r(1==this.constants.keyboard.bindToWindow?{container:window,preventDefault:!1}:{container:this.frame,preventDefault:!1}),this.keycharm.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.keycharm.bind("up",this._moveUp.bind(t),"keydown"),this.keycharm.bind("up",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("down",this._moveDown.bind(t),"keydown"),this.keycharm.bind("down",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("left",this._moveLeft.bind(t),"keydown"),this.keycharm.bind("left",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("right",this._moveRight.bind(t),"keydown"),this.keycharm.bind("right",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("=",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("=",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num+",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("num+",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("num-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("[",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("[",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("]",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("]",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pageup",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("pageup",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.keycharm.bind("esc",this._createManipulatorBar.bind(t)),this.keycharm.bind("delete",this._deleteSelected.bind(t)))},s.prototype.destroy=function(){this.start=function(){},this.redraw=function(){},this.timer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off(),this._recursiveDOMDelete(this.containerElement)},s.prototype._recursiveDOMDelete=function(t){for(;1==t.hasChildNodes();)this._recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},s.prototype._getPointer=function(t){return{x:t.pageX-a.getAbsoluteLeft(this.frame.canvas),y:t.pageY-a.getAbsoluteTop(this.frame.canvas)}},s.prototype._onTouch=function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this.touchTime=(new Date).valueOf(),this._handleTouch(this.drag.pointer))},s.prototype._onDragStart=function(t){this._handleDragStart(t)},s.prototype._handleDragStart=function(t){void 0===this.drag.pointer&&this._onTouch(t);var e=this._getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=this._getTranslation(),this.drag.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,this.drag.nodeId=e.id,e.isSelected()||this._selectObject(e,!1),this.emit("dragStart",{nodeIds:this.getSelection().nodes});for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],o={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,this.drag.selection.push(o)}}},s.prototype._onDrag=function(t){this._handleOnDrag(t)},s.prototype._handleOnDrag=function(t){if(!this.drag.pinched){this.releaseNode();var e=this._getPointer(t.gesture.center),i=this,s=this.drag,o=s.selection;if(o&&o.length&&1==this.constants.dragNodes){var n=e.x-s.pointer.x,r=e.y-s.pointer.y;o.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+n)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.dragNetwork){if(void 0===this.drag.pointer)return void this._handleDragStart(t);var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw()}}},s.prototype._onDragEnd=function(t){this._handleDragEnd(t)},s.prototype._handleDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.length?(t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed}),this.moving=!0,this.start()):this._redraw(),0==this.draggingNodes?this.emit("dragEnd",{nodeIds:[]}):this.emit("dragEnd",{nodeIds:this.getSelection().nodes})},s.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},s.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},s.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},s.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},s.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},s.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=null;void 0!==this.drag&&1==this.drag.dragging&&(s=this.DOMtoCanvas(this.drag.pointer));var o=this._getTranslation(),n=t/i,r=(1-n)*e.x+o.x*n,a=(1-n)*e.y+o.y*n;if(this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(r,a),this.updateClustersDefault(),null!=s){var h=this.canvasToDOM(s);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}return this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},s.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var o=h.fakeGesture(this,t),n=this._getPointer(o.center);this._zoom(i,n)}t.preventDefault()},s.prototype._onMouseMoveTitle=function(t){var e=h.fakeGesture(this,t),i=this._getPointer(e.center),s=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(s=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),0==this.constants.keyboard.bindToWindow&&1==this.constants.keyboard.enabled&&this.frame.focus(),s===!1){var o=this,n=function(){o._checkShowPopup(i)};this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(n,this.constants.tooltip.delay))}if(1==this.constants.hover){for(var r in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(r)&&(this.hoverObj.edges[r].hover=!1,delete this.hoverObj.edges[r]);var a=this._getNodeAt(i);null==a&&(a=this._getEdgeAt(i)),null!=a&&this._hoverObject(a);for(var d in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(d)&&(a instanceof f&&a.id!=d||a instanceof g||null==a)&&(this._blurObject(this.hoverObj.nodes[d]),delete this.hoverObj.nodes[d]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=void 0===this.popupObj?"":this.popupObj.id,o=!1,n="node";if(void 0==this.popupObj){var r=this.nodes,a=[];for(e in r)if(r.hasOwnProperty(e)){var h=r[e];h.isOverlappingWith(i)&&void 0!==h.getTitle()&&a.push(e)}a.length>0&&(this.popupObj=this.nodes[a[a.length-1]],o=!0)}if(void 0===this.popupObj&&0==o){var d=this.edges,l=[];for(e in d)if(d.hasOwnProperty(e)){var c=d[e];c.connected&&void 0!==c.getTitle()&&c.isOverlappingWith(i)&&l.push(e)}l.length>0&&(this.popupObj=this.edges[l[l.length-1]],n="edge")}this.popupObj?this.popupObj.id!=s&&(void 0===this.popup&&(this.popup=new v(this.frame,this.constants.tooltip)),this.popup.popupTargetType=n,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.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){var e={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},i=!1;if("node"==this.popup.popupTargetType){if(i=this.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0){var s=this._getNodeAt(t);i=s.id==this.popup.popupTargetId}}else null===this._getNodeAt(t)&&(i=this.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide())},s.prototype.setSize=function(t,e){var i=!1,s=this.frame.canvas.width,o=this.frame.canvas.height;t!=this.constants.width||e!=this.constants.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.constants.width=t,this.constants.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),1==i&&this.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:s*this.pixelRatio,oldHeight:o*this.pixelRatio})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(Array.isArray(t))this.nodesData=new d,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new d}if(e&&a.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;a.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},s.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var o=this.nodesData.get(e),n=new f(o,this.images,this.groups,this.constants);if(this.nodes[e]=n,!(0!=n.xFixed&&0!=n.yFixed||null!==n.x&&null!==n.y)){var r=1*t.length+10,a=2*Math.PI*Math.random();0==n.xFixed&&(n.x=r*Math.cos(a)),0==n.yFixed&&(n.y=r*Math.sin(a))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},s.prototype._updateNodes=function(t){for(var e=this.nodesData.get(t),i=this.nodes,s=0,o=t.length;o>s;s++){var n=t[s],r=i[n],a=e[s];r?r.setProperties(a,this.constants):(r=new f(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i),this._markAllEdgesAsDirty()},s.prototype._markAllEdgesAsDirty=function(){for(var t in this.edges)this.edges[t].colorDirty=!0},s.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++)void 0!==this.selectionObj.nodes[t[i]]&&(this.nodes[t[i]].unselect(),this._removeFromSelection(this.nodes[t[i]]));for(var i=0,s=t.length;s>i;i++){var o=t[i];delete e[o]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},s.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof d||t instanceof l)this.edgesData=t;else if(Array.isArray(t))this.edgesData=new d,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new d}if(e&&a.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;a.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},s.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n];r&&r.disconnect();var a=i.get(n,{showInternalIds:!0});e[n]=new g(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},s.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new g(r,this,this.constants),this.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},s.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++)void 0!==this.selectionObj.edges[t[i]]&&(e[t[i]].unselect(),this._removeFromSelection(e[t[i]]));for(var i=0,s=t.length;s>i;i++){var o=t[i],n=e[o];n&&(null!=n.via&&delete this.sectors.support.nodes[n.via.id],n.disconnect(),delete e[o])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},s.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[],e[t].dynamicEdges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},s.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0,o=0;for(e in t)if(t.hasOwnProperty(e)){var n=t[e].getValue();void 0!==n&&(i=void 0===i?n:Math.min(n,i),s=void 0===s?n:Math.max(n,s),o+=n)}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s,o)},s.prototype.redraw=function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},s.prototype._requestRedraw=function(t){this.redrawRequested!==!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(this._redraw.bind(this,t),0):window.requestAnimationFrame(this._redraw.bind(this,t,!0)))},s.prototype._redraw=function(t){void 0===t&&(t=!1),this.redrawRequested=!1;var e=this.frame.canvas.getContext("2d");e.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var i=this.frame.canvas.clientWidth,s=this.frame.canvas.clientHeight;e.clearRect(0,0,i,s),e.save(),e.translate(this.translation.x,this.translation.y),e.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},t===!1&&(this._doInAllSectors("_drawAllSectorNodes",e),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",e)),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",e,!1),t===!1&&1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",e),e.restore(),t===!0&&e.clearRect(0,0,i,s)},s.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},s.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},s.prototype._setScale=function(t){this.scale=t},s.prototype._getScale=function(){return this.scale},s.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},s.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},s.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},s.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},s.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},s.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},s.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var o in i)i.hasOwnProperty(o)&&(i[o].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[o].isSelected()?s.push(o):(i[o].inArea()||e)&&i[o].draw(t));for(var n=0,r=s.length;r>n;n++)(i[s[n]].inArea()||e)&&i[s[n]].draw(t)},s.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},s.prototype._drawControlNodes=function(t){var e=this.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},s.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var o=this.constants.minVelocity/Math.max(this.scale,.05);return o>.5*this.constants.maxVelocity?!0:this._isMoving(o)}return!1},s.prototype._revertPhysicsState=function(){var t=this.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].revertPosition()},s.prototype._revertPhysicsTick=function(){this._doInAllActiveSectors("_revertPhysicsState"),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&this._doInSupportSector("_revertPhysicsState")},s.prototype._physicsTick=function(){if(!this.freezeSimulationEnabled&&1==this.moving){var t=!1,e=!1;this._doInAllActiveSectors("_initializeForceCalculation");var i=this._doInAllActiveSectors("_discreteStepNodes");1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&(e=this._doInSupportSector("_discreteStepNodes"));for(var s=0;s2*e||1==this.runDoubleSpeed)&&1==this.moving&&(this._physicsTick(),0!=this.renderTime&&(this.runDoubleSpeed=!0))}var i=Date.now();this._redraw(),this.renderTime=Date.now()-i,0==this.requiresTimeout&&this.start()},"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),s.prototype.start=function(){if(1==this.freezeSimulationEnabled&&(this.moving=!1),1==this.moving||0!=this.xIncrement||0!=this.yIncrement||0!=this.zoomIncrement||1==this.animating)this.timer||(this.timer=1==this.requiresTimeout?window.setTimeout(this._animationStep.bind(this),this.renderTimestep):window.requestAnimationFrame(this._animationStep.bind(this)));else if(this._requestRedraw(),this.stabilizationIterations>1){var t=this,e={iterations:t.stabilizationIterations};this.stabilizationIterations=0,this.startedStabilization=!1,setTimeout(function(){t.emit("stabilized",e)},0)}else this.stabilizationIterations=0},s.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},s.prototype.freezeSimulation=function(t){1==t?(this.freezeSimulationEnabled=!0,this.moving=!1):(this.freezeSimulationEnabled=!1,this.moving=!0,this.start())},s.prototype._configureSmoothCurves=function(t){if(void 0===t&&(t=!0),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes(); -for(var e in this.sectors.support.nodes)this.sectors.support.nodes.hasOwnProperty(e)&&void 0===this.edges[this.sectors.support.nodes[e].parentEdgeId]&&delete this.sectors.support.nodes[e]}else{this.sectors.support.nodes={};for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.edges[i].via=null)}this._updateCalculationNodes(),t||(this.moving=!0,this.start())},s.prototype._createBezierNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic)for(var t in this.edges)if(this.edges.hasOwnProperty(t)){var e=this.edges[t];if(null==e.via){var i="edgeId:".concat(e.id);this.sectors.support.nodes[i]=new f({id:i,mass:1,shape:"circle",image:"",internalMultiplier:1},{},{},this.constants),e.via=this.sectors.support.nodes[i],e.via.parentEdgeId=e.id,e.positionBezierNode()}}},s.prototype._initializeMixinLoaders=function(){for(var t in y)y.hasOwnProperty(t)&&(s.prototype[t]=y[t])},s.prototype.storePosition=function(){console.log("storePosition is depricated: use .storePositions() from now on."),this.storePositions()},s.prototype.storePositions=function(){var t=[];for(var e in this.nodes)if(this.nodes.hasOwnProperty(e)){var i=this.nodes[e],s=!this.nodes.xFixed,o=!this.nodes.yFixed;(this.nodesData._data[e].x!=Math.round(i.x)||this.nodesData._data[e].y!=Math.round(i.y))&&t.push({id:e,x:Math.round(i.x),y:Math.round(i.y),allowedToMoveX:s,allowedToMoveY:o})}this.nodesData.update(t)},s.prototype.getPositions=function(t){var e={};if(void 0!==t){if(1==Array.isArray(t)){for(var i=0;i=1&&(this.animating=!1,this.easingTime=0,this._redraw=null!=this.lockedOnNodeId?this._lockedRedraw:this._classicRedraw,this.emit("animationFinished"))},s.prototype._classicRedraw=function(){},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.setScale=function(){return this._setScale()},s.prototype.getScale=function(){return this._getScale()},s.prototype.getCenterCoordinates=function(){return this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight})},s.prototype.getBoundingBox=function(t){return void 0!==this.nodes[t]?this.nodes[t].boundingBox:void 0},s.prototype.getConnectedNodes=function(t){var e=[];if(void 0!==this.nodes[t])for(var i=this.nodes[t],s={nodeId:!0},o=0;oh}return!1},s.prototype._getColor=function(t){var e=this.options.color;if(1==this.options.useGradients){var i,s,n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);return i=this.from.options.color.highlight.border,s=this.to.options.color.highlight.border,0==this.from.selected&&0==this.to.selected?(i=o.overrideOpacity(this.from.options.color.border,this.options.opacity),s=o.overrideOpacity(this.to.options.color.border,this.options.opacity)):1==this.from.selected&&0==this.to.selected?s=this.to.options.color.border:0==this.from.selected&&1==this.to.selected&&(i=this.from.options.color.border),n.addColorStop(0,i),n.addColorStop(1,s),n}return this.colorDirty===!0&&("to"==this.options.inheritColor?e={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:o.overrideOpacity(this.from.options.color.border,this.options.opacity)}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(e={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:o.overrideOpacity(this.from.options.color.border,this.options.opacity)}),this.options.color=e,this.colorDirty=!1),1==this.selected?e.highlight:1==this.hover?e.hover:e.color},s.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var s=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),o=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:s,y:o}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},s.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},s.prototype._getViaCoordinates=function(){if(1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled)return this.via;if(0==this.options.smoothCurves.enabled)return{x:0,y:0};var t=null,e=null,i=this.options.smoothCurves.roundness,s=this.options.smoothCurves.type,o=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);if("discrete"==s||"diagonalCross"==s)Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==s&&(t=i*n>o?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o)),"discrete"==s&&(e=i*o>n?this.from.y:e));else if("straightCross"==s)Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,p=i-h/2,u=s-c/2;this.labelDimensions={top:u,left:p,width:h,height:c,yLine:o}}var o=this.labelDimensions.yLine;t.save(),"horizontal"!=this.options.labelAlignment&&(t.translate(i,o),this._rotateForLabelAlignment(t),i=0,o=0),this._drawLabelRect(t),this._drawLabelText(t,i,o,n,r,a),t.restore()}},s.prototype._rotateForLabelAlignment=function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,s=Math.atan2(e,i);(-1>s&&0>i||s>0&&0>i)&&(s+=Math.PI),t.rotate(s)},s.prototype._drawLabelRect=function(t){if(void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill){t.fillStyle=this.options.fontFill;var e=2;"line-center"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,.5*-this.labelDimensions.height,this.labelDimensions.width,this.labelDimensions.height):"line-above"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,-(this.labelDimensions.height+e),this.labelDimensions.width,this.labelDimensions.height):"line-below"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,e,this.labelDimensions.width,this.labelDimensions.height):t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)}},s.prototype._drawLabelText=function(t,e,i,s,o,n){if(t.fillStyle=this.options.fontColor||"black",t.textAlign="center","horizontal"!=this.options.labelAlignment){var r=2;"line-above"==this.options.labelAlignment?(t.textBaseline="alphabetic",i-=2*r):"line-below"==this.options.labelAlignment?(t.textBaseline="hanging",i+=2*r):t.textBaseline="middle"}else t.textBaseline="middle";this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=this.options.fontStrokeColor,t.lineJoin="round");for(var a=0;o>a;a++)this.options.fontStrokeWidth>0&&t.strokeText(s[a],e,i),t.fillText(s[a],e,i),i+=n},s.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.setLineDash){t.save();var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],t.setLineDash(i),t.lineDashOffset=0,e=this._line(t),t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var s;if(1==this.options.smoothCurves.enabled&&null!=e){var o=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));s={x:o,y:n}}else s=this._pointOnLine(.5);this._label(t,this.label,s.x,s.y)}},s.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},s.prototype._pointOnCircle=function(t,e,i,s){var o=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}},s.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),s=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var s=.2*Math.PI,o=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},s.prototype._pointOnBezier=function(t){var e=this._getViaCoordinates(),i=Math.pow(1-t,2)*this.from.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.to.x,s=Math.pow(1-t,2)*this.from.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.to.y;return{x:i,y:s}},s.prototype._findBorderPosition=function(t,e){var i,s,o,n,r,a=10,h=0,d=0,l=1,c=.2,p=this.to;for(1==t&&(p=this.from);l>=d&&a>h;){var u=.5*(d+l);if(i=this._pointOnBezier(u),s=Math.atan2(p.y-i.y,p.x-i.x),o=p.distanceToBorder(e,s),n=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=o-n,Math.abs(r)r?0==t?d=u:l=u:0==t?l=u:d=u,h++}return i.t=u,i},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i,s;if(this.from!=this.to){if(this._line(t),1==this.options.smoothCurves.enabled){var o=this._getViaCoordinates();s=this._findBorderPosition(!1,t);var n=this._pointOnBezier(Math.max(0,s.t-.1));e=Math.atan2(s.y-n.y,s.x-n.x)}else{e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var r=this.to.x-this.from.x,a=this.to.y-this.from.y,h=Math.sqrt(r*r+a*a),d=this.to.distanceToBorder(t,e),l=(h-d)/h;s={},s.x=(1-l)*this.from.x+l*this.to.x,s.y=(1-l)*this.from.y+l*this.to.y}if(i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(s.x,s.y,e,i),t.fill(),t.stroke(),this.label){var c;c=1==this.options.smoothCurves.enabled&&null!=o?this._pointOnBezier(.5):this._pointOnLine(.5),this._label(t,this.label,c.x,c.y)}}else{var p,u,m,f=this.from,g=.25*Math.max(100,this.physics.springLength);f.width||f.resize(t),f.width>f.height?(p=f.x+.5*f.width,u=f.y-g,m={x:p,y:f.y,angle:.9*Math.PI}):(p=f.x+g,u=f.y-.5*f.height,m={x:f.x,y:u,angle:.6*Math.PI}),t.beginPath(),t.arc(p,u,g,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(m.x,m.y,m.angle,i),t.fill(),t.stroke(),this.label&&(c=this._pointOnCircle(p,u,g,.5),this._label(t,this.label,c.x,c.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,p,u,m,f,g,v=1e9;for(c=0;10>c;c++)p=.1*c,u=Math.pow(1-p,2)*t+2*p*(1-p)*a+Math.pow(p,2)*i,m=Math.pow(1-p,2)*e+2*p*(1-p)*h+Math.pow(p,2)*s,c>0&&(l=this._getDistanceToLine(f,g,u,m,o,n),v=v>l?l:v),f=u,g=m;r=v}else r=this._getDistanceToLine(t,e,i,s,o,n);else{var u,m,y,b,_=.25*this.physics.springLength,x=this.from;x.width>x.height?(u=x.x+.5*x.width,m=x.y-_):(u=x.x+_,m=x.y-.5*x.height),y=u-o,b=m-n,r=Math.abs(Math.sqrt(y*y+b*b)-_)}return this.labelDimensions.lefto&&this.labelDimensions.topn?0:r},s.prototype._getDistanceToLine=function(t,e,i,s,o,n){var r=i-t,a=s-e,h=r*r+a*a,d=((o-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,p=l-o,u=c-n;return Math.sqrt(p*p+u*u)},s.prototype.setScale=function(t){this.networkScaleInv=1/t},s.prototype.select=function(){this.selected=!0},s.prototype.unselect=function(){this.selected=!1},s.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):null!==this.via&&(this.via.x=0,this.via.y=0)},s.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),s={nodes:{group:"",radius:7,borderWidth:2,borderWidthSelected:2},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s)}this.controlNodes.positions={},0==this.controlNodes.from.selected&&(this.controlNodes.positions.from=this.getControlNodeFromPosition(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y),0==this.controlNodes.to.selected&&(this.controlNodes.positions.to=this.getControlNodeToPosition(t),this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},s.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},s.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,s=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),o=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>s?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>o?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},s.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},s.prototype.getControlNodeFromPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!0,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n;e={},e.x=a*this.from.x+(1-a)*this.to.x,e.y=a*this.from.y+(1-a)*this.to.y}return e},s.prototype.getControlNodeToPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!1,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.to.distanceToBorder(t,i),a=(n-r)/n;e={},e.x=(1-a)*this.from.x+a*this.to.x,e.y=(1-a)*this.from.y+a*this.to.y}return e},t.exports=s},function(t,e,i){function s(){this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.useDefaultGroups=!0}i(1);s.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],s.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},s.prototype.get=function(t){var e=this.groups[t];if(void 0==e)if(this.useDefaultGroups===!1&&this.groupsArray.length>0){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%s.DEFAULT.length;this.defaultIndex++,e={},e.color=s.DEFAULT[i],this.groups[t]=e}return e},s.prototype.add=function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e},t.exports=s},function(t){function e(){this.images={},this.imageBroken={},this.callback=void 0}e.prototype.setOnloadCallback=function(t){this.callback=t},e.prototype.load=function(t,e){var i=this.images[t];if(void 0===i){var s=this;i=new Image,i.onload=function(){0==this.width&&(document.body.appendChild(this),this.width=this.offsetWidth,this.height=this.offsetHeight,document.body.removeChild(this)),s.callback&&(s.images[t]=i,s.callback(this))},i.onerror=function(){void 0===e?(console.error("Could not load image:",t),delete this.src,s.callback&&s.callback(this)):s.imageBroken[t]===!0?this.src==e?(console.error("Could not load brokenImage:",e),delete this.src,s.callback&&s.callback(this)):(console.error("Could not load image:",t),this.src=e):(console.error("Could not load image:",t),this.src=e,s.imageBroken[t]=!0)},i.src=t}return i},t.exports=e},function(t,e,i){function s(t,e,i,s){var n=o.selectiveBridgeObject(["nodes"],s);this.options=n.nodes,this.selected=!1,this.hover=!1,this.edges=[],this.dynamicEdges=[],this.reroutedEdges={},this.id=void 0,this.allowedToMoveX=!1,this.allowedToMoveY=!1,this.xFixed=!1,this.yFixed=!1,this.horizontalAlignLeft=!0,this.verticalAlignTop=!0,this.baseRadiusValue=s.nodes.radius,this.radiusFixed=!1,this.level=-1,this.preassignedLevel=!1,this.hierarchyEnumerated=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.boundingBox={top:0,left:0,right:0,bottom:0},this.imagelist=e,this.grouplist=i,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.x=null,this.y=null,this.predefinedPosition=!1,this.previousState={vx:0,vy:0,x:0,y:0},this.damping=s.physics.damping,this.fixedData={x:null,y:null},this.setProperties(t,n),this.resetCluster(),this.clusterSession=0,this.clusterSizeWidthFactor=s.clustering.nodeScaling.width,this.clusterSizeHeightFactor=s.clustering.nodeScaling.height,this.clusterSizeRadiusFactor=s.clustering.nodeScaling.radius,this.maxNodeSizeIncrements=s.clustering.maxNodeSizeIncrements,this.growthIndicator=0,this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var o=i(1);s.prototype.revertPosition=function(){this.x=this.previousState.x,this.y=this.previousState.y,this.vx=this.previousState.vx,this.vy=this.previousState.vy -},s.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},s.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t)},s.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),e=this.dynamicEdges.indexOf(t),-1!=e&&this.dynamicEdges.splice(e,1)},s.prototype.setProperties=function(t,e){if(t){var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","group","mass","fontDrawThreshold","scaleFontWithValue","fontSizeMaxVisible","customScalingFunction","iconFontFace","icon","iconColor","iconSize"];if(o.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x,this.predefinedPosition=!0),void 0!==t.y&&(this.y=t.y,this.predefinedPosition=!0),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof t.group||"string"==typeof t.group&&""!=t.group){var s=this.grouplist.get(t.group);o.deepExtend(this.options,s),this.options.color=o.parseColor(this.options.color)}if(void 0!==t.radius&&(this.baseRadiusValue=this.options.radius),void 0!==t.color&&(this.options.color=o.parseColor(t.color)),void 0!==this.options.image&&""!=this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage)}switch(void 0!==t.allowedToMoveX?(this.xFixed=!t.allowedToMoveX,this.allowedToMoveX=t.allowedToMoveX):void 0!==t.x&&0==this.allowedToMoveX&&(this.xFixed=!0),void 0!==t.allowedToMoveY?(this.yFixed=!t.allowedToMoveY,this.allowedToMoveY=t.allowedToMoveY):void 0!==t.y&&0==this.allowedToMoveY&&(this.yFixed=!0),this.radiusFixed=this.radiusFixed||void 0!==t.radius,("image"===this.options.shape||"circularImage"===this.options.shape)&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"circularImage":this.draw=this._drawCircularImage,this.resize=this._resizeCircularImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;case"icon":this.draw=this._drawIcon,this.resize=this._resizeIcon;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},s.prototype.select=function(){this.selected=!0,this._reset()},s.prototype.unselect=function(){this.selected=!1,this._reset()},s.prototype.clearSizeCache=function(){this._reset()},s.prototype._reset=function(){this.width=void 0,this.height=void 0},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var s=this.width/2,o=this.height/2,n=Math.sin(e)*s,r=Math.cos(e)*o;return s*o/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},s.prototype._setForce=function(t,e){this.fx=t,this.fy=e},s.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},s.prototype.storeState=function(){this.previousState.x=this.x,this.previousState.y=this.y,this.previousState.vx=this.vx,this.previousState.vy=this.vy},s.prototype.discreteStep=function(t){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var e=this.damping*this.vx,i=(this.fx-e)/this.options.mass;this.vx+=i*t,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var s=this.damping*this.vy,o=(this.fy-s)/this.options.mass;this.vy+=o*t,this.y+=this.vy*t}},s.prototype.discreteStepLimited=function(t,e){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.options.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e,i){if(!this.radiusFixed&&void 0!==this.value){var s=this.options.customScalingFunction(t,e,i,this.value),o=this.options.radiusMax-this.options.radiusMin;if(1==this.options.scaleFontWithValue){var n=this.options.fontSizeMax-this.options.fontSizeMin;this.options.fontSize=this.options.fontSizeMin+s*n}this.options.radius=this.options.radiusMin+s*o}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImageAtPosition=function(t){if(0!=this.imageObj.width){if(this.clusterSize>1){var e=this.clusterSize>1?10:0;e*=this.networkScaleInv,e=Math.min(.2*this.width,e),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-e,this.top-e,this.width+2*e,this.height+2*e)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height)}},s.prototype._drawImageLabel=function(t){var e,i=0;if(this.height){i=this.height/2;var s=this.getTextSize(t);s.lineCount>=1&&(i+=s.height/2,i+=3)}e=this.y+i,this._label(t,this.label,this.x,e,void 0)},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawImageAtPosition(t),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeCircularImage=function(t){if(this.imageObj.src&&this.imageObj.width&&this.imageObj.height)this._swapToImageResizeWhenImageLoaded&&(this.width=0,this.height=0,delete this._swapToImageResizeWhenImageLoaded),this._resizeImage(t);else if(!this.width){var e=2*this.options.radius;this.width=e,this.height=e,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*e,this._swapToImageResizeWhenImageLoaded=!0}},s.prototype._drawCircularImage=function(t){this._resizeCircularImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.left+this.width/2,i=this.top+this.height/2,s=Math.abs(this.height/2);this._drawRawCircle(t,e,i,s),t.save(),t.circle(this.x,this.y,s),t.stroke(),t.clip(),this._drawImageAtPosition(t),t.restore(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.options.radius),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},s.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawRawCircle=function(t,e,i,s){var o=2.5,n=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(e,i,s+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,s),t.fill(),t.stroke()},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawRawCircle(t,this.x,this.y,this.options.radius),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},s.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._drawDot=function(t){this._drawShape(t,"circle")},s.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},s.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},s.prototype._drawSquare=function(t){this._drawShape(t,"square")},s.prototype._drawStar=function(t){this._drawShape(t,"star")},s.prototype._resizeShape=function(){if(!this.width){this.options.radius=this.baseRadiusValue;var t=2*this.options.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},s.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=this.options.borderWidth,o=this.options.borderWidthSelected||2*this.options.borderWidth,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t[e](this.x,this.y,this.options.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t[e](this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this.label&&(this._label(t,this.label,this.x,this.y+this.height/2,void 0,"hanging",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height))},s.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height},s.prototype._resizeIcon=function(){if(!this.width){var t=5,e={width:Number(this.options.iconSize),height:Number(this.options.iconSize)};this.width=e.width+2*t,this.height=e.height+2*t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(e.width+2*t)}},s.prototype._drawIcon=function(t){if(this._resizeIcon(t),this.options.iconSize=this.options.iconSize||50,this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._icon(t),this.boundingBox.top=this.y-this.options.iconSize/2,this.boundingBox.left=this.x-this.options.iconSize/2,this.boundingBox.right=this.x+this.options.iconSize/2,this.boundingBox.bottom=this.y+this.options.iconSize/2,this.label){var e=5;this._label(t,this.label,this.x,this.y+this.height/2+e,"top",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)}},s.prototype._icon=function(t){var e=Number(this.options.iconSize)*this.networkScale;if(this.options.icon&&e>this.options.fontDrawThreshold-1){var i=Number(this.options.iconSize);t.font=(this.selected?"bold ":"")+i+"px "+this.options.iconFontFace,t.fillStyle=this.options.iconColor||"black",t.textAlign="center",t.textBaseline="middle",t.fillText(this.options.icon,this.x,this.y)}},s.prototype._label=function(t,e,i,s,n,r,a){var h=Number(this.options.fontSize)*this.networkScale;if(e&&h>=this.options.fontDrawThreshold-1){var d=Number(this.options.fontSize);h>=this.options.fontSizeMaxVisible&&(d=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv);var l=this.options.fontColor||"#000000",c=this.options.fontStrokeColor;if(h<=this.options.fontDrawThreshold){var p=Math.max(0,Math.min(1,1-(this.options.fontDrawThreshold-h)));l=o.overrideOpacity(l,p),c=o.overrideOpacity(c,p)}t.font=(this.selected?"bold ":"")+d+"px "+this.options.fontFace;var u=e.split("\n"),m=u.length,f=s+(1-m)/2*d;1==a&&(f=s+(1-m)/(2*d));for(var g=t.measureText(u[0]).width,v=1;m>v;v++){var y=t.measureText(u[v]).width;g=y>g?y:g}var b=d*m,_=i-g/2,x=s-b/2;"hanging"==r&&(x+=.5*d,x+=4,f+=4),this.labelDimensions={top:x,left:_,width:g,height:b,yLine:f},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(_,x,g,b)),t.fillStyle=l,t.textAlign=n||"center",t.textBaseline=r||"middle",this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var v=0;m>v;v++)this.options.fontStrokeWidth&&t.strokeText(u[v],i,f),t.fillText(u[v],i,f),f+=d}},s.prototype.getTextSize=function(t){if(void 0!==this.label){var e=Number(this.options.fontSize);e*this.networkScale>this.options.fontSizeMaxVisible&&(e=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv),t.font=(this.selected?"bold ":"")+e+"px "+this.options.fontFace;for(var i=this.label.split("\n"),s=(e+4)*i.length,o=0,n=0,r=i.length;r>n;n++)o=Math.max(o,t.measureText(i[n]).width);return{width:o,height:s,lineCount:i.length}}return{width:0,height:0,lineCount:0}},s.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.ys&&(n=s-e-this.padding),no&&(r=o-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){o=r.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=a(o.attr,t.node))),i=n.length-1;i>=0;i--){var h=n[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(o)&&h.nodes.push(o)}e.attr&&(o.attr=a(o.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,s,o){var n={from:e,to:i,type:s};return t.edge&&(n.attr=a({},t.edge)),n.attr=a(n.attr||{},o),n}function p(){for(N=M.NULL,k="";" "==E||" "==E||"\n"==E||"\r"==E;)o();do{var t=!1;if("#"==E){for(var e=O-1;" "==T.charAt(e)||" "==T.charAt(e);)e--;if("\n"==T.charAt(e)||""==T.charAt(e)){for(;""!=E&&"\n"!=E;)o();t=!0}}if("/"==E&&"/"==n()){for(;""!=E&&"\n"!=E;)o();t=!0}if("/"==E&&"*"==n()){for(;""!=E;){if("*"==E&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==E||" "==E||"\n"==E||"\r"==E;)o()}while(t);if(""==E)return void(N=M.DELIMITER);var i=E+n();if(C[i])return N=M.DELIMITER,k=i,o(),void o();if(C[E])return N=M.DELIMITER,k=E,void o();if(r(E)||"-"==E){for(k+=E,o();r(E);)k+=E,o();return"false"==k?k=!1:"true"==k?k=!0:isNaN(Number(k))||(k=Number(k)),void(N=M.IDENTIFIER)}if('"'==E){for(o();""!=E&&('"'!=E||'"'==E&&'"'==n());)k+=E,'"'==E&&o(),o();if('"'!=E)throw x('End of string " expected');return o(),void(N=M.IDENTIFIER)}for(N=M.UNKNOWN;""!=E;)k+=E,o();throw new SyntaxError('Syntax error in part "'+w(k,30)+'"')}function u(){var t={};if(s(),p(),"strict"==k&&(t.strict=!0,p()),("graph"==k||"digraph"==k)&&(t.type=k,p()),N==M.IDENTIFIER&&(t.id=k,p()),"{"!=k)throw x("Angle bracket { expected");if(p(),m(t),"}"!=k)throw x("Angle bracket } expected");if(p(),""!==k)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==k&&"}"!=k;)f(t),";"==k&&p()}function f(t){var e=g(t);if(e)return void b(t,e);var i=v(t);if(!i){if(N!=M.IDENTIFIER)throw x("Identifier expected");var s=k;if(p(),"="==k){if(p(),N!=M.IDENTIFIER)throw x("Identifier expected");t[s]=k,p()}else y(t,s)}}function g(t){var e=null;if("subgraph"==k&&(e={},e.type="subgraph",p(),N==M.IDENTIFIER&&(e.id=k,p())),"{"==k){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=k)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function v(t){return"node"==k?(p(),t.node=_(),"node"):"edge"==k?(p(),t.edge=_(),"edge"):"graph"==k?(p(),t.graph=_(),"graph"):null}function y(t,e){var i={id:e},s=_();s&&(i.attr=s),d(t,i),b(t,e)}function b(t,e){for(;"->"==k||"--"==k;){var i,s=k;p();var o=g(t);if(o)i=o;else{if(N!=M.IDENTIFIER)throw x("Identifier or subgraph expected");i=k,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==k;){for(p(),t={};""!==k&&"]"!=k;){if(N!=M.IDENTIFIER)throw x("Attribute name expected");var e=k;if(p(),"="!=k)throw x("Equal sign = expected");if(p(),N!=M.IDENTIFIER)throw x("Attribute value expected");var i=k;h(t,e,i),p(),","==k&&p()}if("]"!=k)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(k,30)+'" (char '+O+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function D(t){var e=i(t),s={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};a(e,t.attr),e.image&&(e.shape="image"),s.nodes.push(e)}),e.edges){var o=function(t){var e={from:t.from,to:t.to};return a(e,t.attr),e.style="->"==t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,i;e=t.from instanceof Object?t.from.nodes:{id:t.from},i=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=o(t);s.edges.push(e)}),S(e,i,function(e,i){var n=c(s,e.id,i.id,t.type,t.attr),r=o(n);s.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=o(t);s.edges.push(e)})})}return e.attr&&(s.options=e.attr),s}var M={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},C={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},T="",O=0,E="",k="",N=M.NULL,I=/[a-zA-Z_0-9.:#]/;e.parseDOT=i,e.DOTToGraph=D},function(t,e){function i(t,e){var i=[],s=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var o=t.edges,n=t.nodes,r=0;r0?Math.max.apply(null,i)+1:1):(this.customBarIds.forEach(function(t){if(t===e)throw new Error("Custom time ID already exists")}),o=e),this.customBarIds.push(o),s=new l(this.body,{showCustomTime:!0,time:n,id:o}),this.components.push(s),this.redraw(),o},s.prototype.removeCustomTime=function(t){var e=this;this.components.forEach(function(i,s,o){i instanceof l&&i.options.id===t&&0!==i.options.id&&(e.customBarIds.splice(e.customBarIds.indexOf(t),1),o.splice(s,1),i.destroy())})},s.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},s.prototype.clear=function(t){(!t||t.items)&&this.setItems(null),(!t||t.groups)&&this.setGroups(null),(!t||t.options)&&(this.components.forEach(function(t){t.setOptions(t.defaultOptions)}),this.setOptions(this.defaultOptions))},s.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animate?t.animate:!0;this.range.setRange(e.start,e.end,i)}},s.prototype._getDataRange=function(){var t=this.getItemRange(),e=t.min,i=t.max;if(null!=e&&null!=i){var s=i.valueOf()-e.valueOf();0>=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}return{start:e,end:i}},s.prototype.setWindow=function(t,e,i){var s;if(1==arguments.length){var o=arguments[0];s=void 0!==o.animate?o.animate:!0,this.range.setRange(o.start,o.end,s)}else s=i&&void 0!==i.animate?i.animate:!0,this.range.setRange(t,e,s)},s.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,s=r.convert(t,"Date").valueOf(),o=s-i/2,n=s+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(o,n,a)},s.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},s.prototype.redraw=function(){this._redraw()},s.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,s=this.dom;if(s){d.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(s.root,"top"),r.removeClassName(s.root,"bottom")):(r.removeClassName(s.root,"top"),r.addClassName(s.root,"bottom")),s.root.style.maxHeight=r.option.asSize(e.maxHeight,""),s.root.style.minHeight=r.option.asSize(e.minHeight,""),s.root.style.width=r.option.asSize(e.width,""),i.border.left=(s.centerContainer.offsetWidth-s.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(s.centerContainer.offsetHeight-s.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var o=s.root.offsetHeight-s.root.clientHeight,n=s.root.offsetWidth-s.root.clientWidth;0===s.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===s.root.clientHeight&&(n=o),i.center.height=s.center.offsetHeight,i.left.height=s.left.offsetHeight,i.right.height=s.right.offsetHeight,i.top.height=s.top.clientHeight||-i.border.top,i.bottom.height=s.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom;s.root.style.height=r.option.asSize(e.height,h+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var l=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=s.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=s.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=s.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,s.background.style.height=i.background.height+"px",s.backgroundVertical.style.height=i.background.height+"px",s.backgroundHorizontal.style.height=i.centerContainer.height+"px",s.centerContainer.style.height=i.centerContainer.height+"px",s.leftContainer.style.height=i.leftContainer.height+"px",s.rightContainer.style.height=i.rightContainer.height+"px",s.background.style.width=i.background.width+"px",s.backgroundVertical.style.width=i.centerContainer.width+"px",s.backgroundHorizontal.style.width=i.background.width+"px",s.centerContainer.style.width=i.center.width+"px",s.top.style.width=i.top.width+"px",s.bottom.style.width=i.bottom.width+"px",s.background.style.left="0",s.background.style.top="0",s.backgroundVertical.style.left=i.left.width+i.border.left+"px",s.backgroundVertical.style.top="0",s.backgroundHorizontal.style.left="0",s.backgroundHorizontal.style.top=i.top.height+"px",s.centerContainer.style.left=i.left.width+"px",s.centerContainer.style.top=i.top.height+"px",s.leftContainer.style.left="0",s.leftContainer.style.top=i.top.height+"px",s.rightContainer.style.left=i.left.width+i.center.width+"px",s.rightContainer.style.top=i.top.height+"px",s.top.style.left=i.left.width+"px",s.top.style.top="0",s.bottom.style.left=i.left.width+"px",s.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"bottom"==e.orientation&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=p+"px",s.left.style.left="0",s.left.style.top=p+"px",s.right.style.left="0",s.right.style.top=p+"px";var u=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(s.shadowTop.style.visibility=u,s.shadowBottom.style.visibility=m,s.shadowTopLeft.style.visibility=u,s.shadowBottomLeft.style.visibility=m,s.shadowTopRight.style.visibility=u,s.shadowBottomRight.style.visibility=m,this.components.forEach(function(e){t=e.redraw()||t}),t){var f=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTopt[s].y?t[s].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=o.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?s._catmullRom(t,e):s._linear(t),1==e.options.shaded.enabled){var d,l=o.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},s._catmullRomUniform=function(t){for(var e,i,s,o,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],s=t[l+1],o=d>l+2?t[l+2]:s,n={x:(-e.x+6*i.x+s.x)*h,y:(-e.y+6*i.y+s.y)*h},r={x:(i.x+6*s.x-o.x)*h,y:(i.y+6*s.y-o.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+s.x+","+s.y+" ";return a},s._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var s,o,n,r,a,h,d,l,c,p,u,m,f,g,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",S=t.length,D=0;S-1>D;D++)s=0==D?t[0]:t[D-1],o=t[D],n=t[D+1],r=S>D+2?t[D+2]:n,d=Math.sqrt(Math.pow(s.x-o.x,2)+Math.pow(s.y-o.y,2)),l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),c=Math.sqrt(Math.pow(n.x-r.x,2)+Math.pow(n.y-r.y,2)),g=Math.pow(c,i),y=Math.pow(c,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),x=Math.pow(d,i),_=Math.pow(d,2*i),p=2*_+3*x*v+b,u=2*y+3*g*v+b,m=3*x*(x+v),m>0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={x:(-b*s.x+p*o.x+_*n.x)*m,y:(-b*s.y+p*o.y+_*n.y)*m},h={x:(y*o.x+u*n.x-b*r.x)*f,y:(y*o.y+u*n.y-b*r.y)*f},0==a.x&&0==a.y&&(a=o),0==h.x&&0==h.y&&(h=n),w+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+n.x+","+n.y+" ";return w},s._linear=function(t){for(var e="",i=0;it[s].y?t[s].y:e,i=i0&&(n=Math.min(n,Math.abs(c[d-1].x-r))),a=s._getSafeDrawData(n,h,m);else{var g=d+(p[r].amount-p[r].resolved),v=d-(p[r].resolved+1);g0&&(n=Math.min(n,Math.abs(c[v].x-r))),a=s._getSafeDrawData(n,h,m),p[r].resolved+=1,"stack"==h.options.barChart.handleOverlap?(f=p[r].accumulated,p[r].accumulated+=h.zeroPosition-c[d].y):"sideBySide"==h.options.barChart.handleOverlap&&(a.width=a.width/p[r].amount,a.offset+=p[r].resolved*a.width-.5*a.width*(p[r].amount+1),"left"==h.options.barChart.align?a.offset-=.5*a.width:"right"==h.options.barChart.align&&(a.offset+=.5*a.width))}o.drawBar(c[d].x+a.offset,c[d].y-f,a.width,h.zeroPosition-c[d].y,h.className+" bar",i.svgElements,i.svg),1==h.options.drawPoints.enabled&&o.drawPoint(c[d].x+a.offset,c[d].y,h,i.svgElements,i.svg)}},s._getDataIntersections=function(t,e){for(var i,s=0;s0&&(i=Math.min(i,Math.abs(e[s-1].x-e[s].x))),0==i&&(void 0===t[e[s].x]&&(t[e[s].x]={amount:0,resolved:0,accumulated:0}),t[e[s].x].amount+=1)},s._getSafeDrawData=function(t,e,i){var s,o;return t0?(s=i>t?i:t,o=0,"left"==e.options.barChart.align?o-=.5*t:"right"==e.options.barChart.align&&(o+=.5*t)):(s=e.options.barChart.width,o=0,"left"==e.options.barChart.align?o-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(o+=.5*e.options.barChart.width)),{width:s,offset:o}},s.getStackedBarYRange=function(t,e,i,o,n){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};s._getDataIntersections(r,t),e[o]=s._getStackedBarYRange(r,t),e[o].yAxisOrientation=n,i.push(o)}},s._getStackedBarYRange=function(t,e){for(var i,s=e[0].y,o=e[0].y,n=0;ne[n].y?e[n].y:s,o=ot[r].accumulated?t[r].accumulated:s,o=ot[s].y?t[s].y:e,i=is;s++){var o=s%2===0?1.3*i:.5*i;this.lineTo(t+o*Math.sin(2*s*Math.PI/10),e-o*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,o){var n=Math.PI/180;0>i-2*o&&(o=i/2),0>s-2*o&&(o=s/2),this.beginPath(),this.moveTo(t+o,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,270*n,360*n,!1),this.lineTo(t+i,e+s-o),this.arc(t+i-o,e+s-o,o,0,90*n,!1),this.lineTo(t+o,e+s),this.arc(t+o,e+s-o,o,90*n,180*n,!1),this.lineTo(t,e+o),this.arc(t+o,e+o,o,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var o=.5522848,n=i/2*o,r=s/2*o,a=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var o=1/3,n=i,r=s*o,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,p=t+n/2,u=e+r/2,m=e+(s-r/2),f=e+s;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,p+h,c,p,c),this.bezierCurveTo(p-h,c,t,u+d,t,u),this.bezierCurveTo(t,u-d,p-h,e,p,e),this.bezierCurveTo(p+h,e,l,u-d,l,u),this.lineTo(l,m),this.bezierCurveTo(l,m+d,p+h,f,p,f),this.bezierCurveTo(p-h,f,t,m+d,t,m),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var o=t-s*Math.cos(i),n=e-s*Math.sin(i),r=t-.9*s*Math.cos(i),a=e-.9*s*Math.sin(i),h=o+s/3*Math.cos(i+.5*Math.PI),d=n+s/3*Math.sin(i+.5*Math.PI),l=o+s/3*Math.cos(i-.5*Math.PI),c=n+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,o){o||(o=[10,5]),0==p&&(p=.001);var n=o.length;this.moveTo(t,e);for(var r=i-t,a=s-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var p=o[l++%n];p>d&&(p=d);var u=Math.sqrt(p*p/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[c?"lineTo":"moveTo"](t,e),d-=p,c=!c}})},function(t){function e(t){return t?i(t):void 0}function i(t){for(var i in e.prototype)t[i]=e.prototype[i];return t}t.exports=e,e.prototype.on=e.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},e.prototype.once=function(t,e){function i(){s.off(t,i),e.apply(this,arguments)}var s=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},e.prototype.off=e.prototype.removeListener=e.prototype.removeAllListeners=e.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var s,o=0;os;++s)i[s].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){var i,s,o;!function(n,r){s=[],i=r,o="function"==typeof i?i.apply(e,s):i,!(void 0!==o&&(t.exports=o))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,s=t&&t.container||window,o={},n={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==n[e][t.keyCode]){for(var s=n[e][t.keyCode],o=0;oe-n?(i=t.clone().add(o-1,"months"),s=(e-n)/(n-i)):(i=t.clone().add(o+1,"months"),s=(e-n)/(i-n)),-(o+s)}function f(t,e,i){var s;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(s=t.isPM(i),s&&12>e&&(e+=12),s||12!==e||(e=0),e):e}function g(){}function v(t,e){e!==!1&&R(t),_(this,t),this._d=new Date(+t._d),Mi===!1&&(Mi=!0,Ce.updateOffset(this),Mi=!1)}function y(t){var e=N(t),i=e.year||0,s=e.quarter||0,o=e.month||0,n=e.week||0,r=e.day||0,a=e.hour||0,h=e.minute||0,d=e.second||0,l=e.millisecond||0;this._milliseconds=+l+1e3*d+6e4*h+36e5*a,this._days=+r+7*n,this._months=+o+3*s+12*i,this._data={},this._locale=Ce.localeData(),this._bubble()}function b(t,e){for(var i in e)a(e,i)&&(t[i]=e[i]);return a(e,"toString")&&(t.toString=e.toString),a(e,"valueOf")&&(t.valueOf=e.valueOf),t}function _(t,e){var i,s,o;if("undefined"!=typeof e._isAMomentObject&&(t._isAMomentObject=e._isAMomentObject),"undefined"!=typeof e._i&&(t._i=e._i),"undefined"!=typeof e._f&&(t._f=e._f),"undefined"!=typeof e._l&&(t._l=e._l),"undefined"!=typeof e._strict&&(t._strict=e._strict),"undefined"!=typeof e._tzm&&(t._tzm=e._tzm),"undefined"!=typeof e._isUTC&&(t._isUTC=e._isUTC),"undefined"!=typeof e._offset&&(t._offset=e._offset),"undefined"!=typeof e._pf&&(t._pf=e._pf),"undefined"!=typeof e._locale&&(t._locale=e._locale),Ye.length>0)for(i in Ye)s=Ye[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function x(t){return 0>t?Math.ceil(t):Math.floor(t)}function w(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&L(t[s])!==L(e[s]))&&r++;return r+n}function k(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=gi[t]||vi[e]||e}return t}function N(t){var e,i,s={};for(i in t)a(t,i)&&(e=k(i),e&&(s[e]=t[i]));return s}function I(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}Ce[t]=function(s,o){var r,a,h=Ce._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=Ce().utc().set(i,t);return h.call(Ce._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function L(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function z(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function A(t,e,i){return me(Ce([t,11,31+e-i]),e,i).week}function P(t){return F(t)?366:365}function F(t){return t%4===0&&t%100!==0||t%400===0}function R(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[ze]<0||t._a[ze]>11?ze:t._a[Ae]<1||t._a[Ae]>z(t._a[Le],t._a[ze])?Ae:t._a[Pe]<0||t._a[Pe]>24||24===t._a[Pe]&&(0!==t._a[Fe]||0!==t._a[Re]||0!==t._a[He])?Pe:t._a[Fe]<0||t._a[Fe]>59?Fe:t._a[Re]<0||t._a[Re]>59?Re:t._a[He]<0||t._a[He]>999?He:-1,t._pf._overflowDayOfYear&&(Le>e||e>Ae)&&(e=Ae),t._pf.overflow=e)}function H(t){return null==t._isValid&&(t._isValid=!isNaN(t._d.getTime())&&t._pf.overflow<0&&!t._pf.empty&&!t._pf.invalidMonth&&!t._pf.nullInput&&!t._pf.invalidFormat&&!t._pf.userInvalidated,t._strict&&(t._isValid=t._isValid&&0===t._pf.charsLeftOver&&0===t._pf.unusedTokens.length&&t._pf.bigHour===n)),t._isValid}function B(t){return t?t.toLowerCase().replace("_","-"):t}function Y(t){for(var e,i,s,o,n=0;n0;){if(s=W(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&E(o,i,!0)>=e-1)break;e--}n++}return null}function W(t){var e=null;if(!Be[t]&&We)try{e=Ce.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),Ce.locale(e)}catch(i){}return Be[t]}function G(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(Ce.isMoment(t)||O(t)?+t:+Ce(t))-+i,i._d.setTime(+i._d+s),Ce.updateOffset(i,!1),i):Ce(t).local()}function j(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function V(t){var e,i,s=t.match(Ue);for(e=0,i=s.length;i>e;e++)s[e]=wi[s[e]]?wi[s[e]]:j(s[e]);return function(o){var n="";for(e=0;i>e;e++)n+=s[e]instanceof Function?s[e].call(o,t):s[e];return n}}function U(t,e){return t.isValid()?(e=X(e,t.localeData()),yi[e]||(yi[e]=V(e)),yi[e](t)):t.localeData().invalidDate()}function X(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Xe.lastIndex=0;s>=0&&Xe.test(t);)t=t.replace(Xe,i),Xe.lastIndex=0,s-=1;return t}function q(t,e){var i,s=e._strict;switch(t){case"Q":return oi;case"DDDD":return ri;case"YYYY":case"GGGG":case"gggg":return s?ai:Qe;case"Y":case"G":case"g":return di;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?hi:Ke;case"S":if(s)return oi;case"SS":if(s)return ni;case"SSS":if(s)return ri;case"DDD":return Ze;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Je;case"a":case"A":return e._locale._meridiemParse;case"x":return ii;case"X":return si;case"Z":case"ZZ":return ti;case"T":return ei;case"SSSS":return $e;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?ni:qe;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return qe;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(se(ie(t.replace("\\","")),"i"))}}function Z(t){t=t||"";var e=t.match(ti)||[],i=e[e.length-1]||[],s=(i+"").match(mi)||["-",0,0],o=+(60*s[1])+L(s[2]);return"+"===s[0]?o:-o}function Q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[ze]=3*(L(e)-1));break;case"M":case"MM":null!=e&&(o[ze]=L(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[ze]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ae]=L(e));break;case"Do":null!=e&&(o[Ae]=L(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=L(e));break;case"YY":o[Le]=Ce.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[Le]=L(e);break;case"a":case"A":i._meridiem=e;break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[Pe]=L(e);break;case"m":case"mm":o[Fe]=L(e);break;case"s":case"ss":o[Re]=L(e);break;case"S":case"SS":case"SSS":case"SSSS":o[He]=L(1e3*("0."+e));break;case"x":i._d=new Date(L(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=Z(e);break;case"dd":case"ddd":case"dddd":s=i._locale.weekdaysParse(e),null!=s?(i._w=i._w||{},i._w.d=s):i._pf.invalidWeekday=e;break;case"w":case"ww":case"W":case"WW":case"d":case"e":case"E":t=t.substr(0,1);case"gggg":case"GGGG":case"GGGGG":t=t.substr(0,2),e&&(i._w=i._w||{},i._w[t]=L(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=Ce.parseTwoDigitYear(e)}}function K(t){var e,i,s,o,n,a,h;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,a=4,i=r(e.GG,t._a[Le],me(Ce(),1,4).year),s=r(e.W,1),o=r(e.E,1)):(n=t._locale._week.dow,a=t._locale._week.doy,i=r(e.gg,t._a[Le],me(Ce(),n,a).year),s=r(e.w,1),null!=e.d?(o=e.d,n>o&&++s):o=null!=e.e?e.e+n:n),h=fe(i,s,o,a,n),t._a[Le]=h.year,t._dayOfYear=h.dayOfYear}function $(t){var e,i,s,o,n=[];if(!t._d){for(s=te(t),t._w&&null==t._a[Ae]&&null==t._a[ze]&&K(t),t._dayOfYear&&(o=r(t._a[Le],s[Le]),t._dayOfYear>P(o)&&(t._pf._overflowDayOfYear=!0),i=le(o,0,t._dayOfYear),t._a[ze]=i.getUTCMonth(),t._a[Ae]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Pe]&&0===t._a[Fe]&&0===t._a[Re]&&0===t._a[He]&&(t._nextDay=!0,t._a[Pe]=0),t._d=(t._useUTC?le:de).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[Pe]=24)}}function J(t){var e;t._d||(e=N(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],$(t))}function te(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function ee(t){if(t._f===Ce.ISO_8601)return void ne(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=X(t._f,t._locale).match(Ue)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),wi[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),Q(o,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(o);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[Pe]<=12&&(t._pf.bigHour=n),t._a[Pe]=f(t._locale,t._a[Pe],t._meridiem),$(t),R(t)}function ie(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function se(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function oe(t){var e,i,s,o,n;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(o=0;on)&&(s=n,i=e));b(t,i||e)}function ne(t){var e,i,s=t._i,o=li.exec(s);if(o){for(t._pf.iso=!0,e=0,i=pi.length;i>e;e++)if(pi[e][1].exec(s)){t._f=pi[e][0]+(o[6]||" ");break}for(e=0,i=ui.length;i>e;e++)if(ui[e][1].exec(s)){t._f+=ui[e][0];break}s.match(ti)&&(t._f+="Z"),ee(t)}else t._isValid=!1}function re(t){ne(t),t._isValid===!1&&(delete t._isValid,Ce.createFromInputFallback(t))}function ae(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function le(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function ce(t,e){if("string"==typeof t)if(isNaN(t)){if(t=e.weekdaysParse(t),"number"!=typeof t)return null}else t=parseInt(t,10);return t}function pe(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ue(t,e,i){var s=Ce.duration(t).abs(),o=Ne(s.as("s")),n=Ne(s.as("m")),r=Ne(s.as("h")),a=Ne(s.as("d")),h=Ne(s.as("M")),d=Ne(s.as("y")),l=o0,l[4]=i,pe.apply({},l)}function me(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=Ce(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function fe(t,e,i,s,o){var n,r,a=le(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:P(t-1)+r}}function ge(t){var e,i=t._i,s=t._f;return t._locale=t._locale||Ce.localeData(t._l),null===i||s===n&&""===i?Ce.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),Ce.isMoment(i)?new v(i,!0):(s?T(s)?oe(t):ee(t):he(t),e=new v(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function ve(t,e){var i,s;if(1===e.length&&T(e[0])&&(e=e[0]),!e.length)return Ce();for(i=e[0],s=1;s=0?"+":"-";return e+w(Math.abs(t),6)},gg:function(){return w(this.weekYear()%100,2)},gggg:function(){return w(this.weekYear(),4)},ggggg:function(){return w(this.weekYear(),5)},GG:function(){return w(this.isoWeekYear()%100,2)},GGGG:function(){return w(this.isoWeekYear(),4)},GGGGG:function(){return w(this.isoWeekYear(),5)},e:function(){return this.weekday()},E:function(){return this.isoWeekday()},a:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!0)},A:function(){return this.localeData().meridiem(this.hours(),this.minutes(),!1)},H:function(){return this.hours()},h:function(){return this.hours()%12||12},m:function(){return this.minutes()},s:function(){return this.seconds()},S:function(){return L(this.milliseconds()/100)},SS:function(){return w(L(this.milliseconds()/10),2)},SSS:function(){return w(this.milliseconds(),3)},SSSS:function(){return w(this.milliseconds(),3)},Z:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(L(t/60),2)+":"+w(L(t)%60,2)},ZZ:function(){var t=this.utcOffset(),e="+";return 0>t&&(t=-t,e="-"),e+w(L(t/60),2)+w(L(t)%60,2)},z:function(){return this.zoneAbbr()},zz:function(){return this.zoneName()},x:function(){return this.valueOf()},X:function(){return this.unix()},Q:function(){return this.quarter()}},Si={},Di=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"],Mi=!1;_i.length;)Oe=_i.pop(),wi[Oe+"o"]=u(wi[Oe],Oe);for(;xi.length;)Oe=xi.pop(),wi[Oe+Oe]=p(wi[Oe],2);wi.DDDD=p(wi.DDD,3),b(g.prototype,{set:function(t){var e,i;for(i in t)e=t[i],"function"==typeof e?this[i]=e:this["_"+i]=e;this._ordinalParseLenient=new RegExp(this._ordinalParse.source+"|"+/\d{1,2}/.source)},_months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),months:function(t){return this._months[t.month()]},_monthsShort:"Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),monthsShort:function(t){return this._monthsShort[t.month()]},monthsParse:function(t,e,i){var s,o,n;for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;12>s;s++){if(o=Ce.utc([2e3,s]),i&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),i||this._monthsParse[s]||(n="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[s]=new RegExp(n.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[s].test(t))return s;if(i&&"MMM"===e&&this._shortMonthsParse[s].test(t))return s;if(!i&&this._monthsParse[s].test(t))return s}},_weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),weekdays:function(t){return this._weekdays[t.day()]},_weekdaysShort:"Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),weekdaysShort:function(t){return this._weekdaysShort[t.day()]},_weekdaysMin:"Su_Mo_Tu_We_Th_Fr_Sa".split("_"),weekdaysMin:function(t){return this._weekdaysMin[t.day()]},weekdaysParse:function(t){var e,i,s;for(this._weekdaysParse||(this._weekdaysParse=[]),e=0;7>e;e++)if(this._weekdaysParse[e]||(i=Ce([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e},_longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},longDateFormat:function(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e},isPM:function(t){return"p"===(t+"").toLowerCase().charAt(0)},_meridiemParse:/[ap]\.?m?\.?/i,meridiem:function(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"},_calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},calendar:function(t,e,i){var s=this._calendar[t];return"function"==typeof s?s.apply(e,[i]):s},_relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},relativeTime:function(t,e,i,s){var o=this._relativeTime[i];return"function"==typeof o?o(t,e,i,s):o.replace(/%d/i,t)},pastFuture:function(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)},ordinal:function(t){return this._ordinal.replace("%d",t)},_ordinal:"%d",_ordinalParse:/\d{1,2}/,preparse:function(t){return t},postformat:function(t){return t},week:function(t){return me(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},firstDayOfWeek:function(){return this._week.dow},firstDayOfYear:function(){return this._week.doy},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),Ce=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._i=t,o._f=e,o._l=i,o._strict=s,o._isUTC=!1,o._pf=h(),ge(o)},Ce.suppressDeprecationWarnings=!1,Ce.createFromInputFallback=l("moment construction falls back to js Date. This is discouraged and will be removed in upcoming major release. Please refer to https://github.com/moment/moment/issues/1407 for more info.",function(t){t._d=new Date(t._i+(t._useUTC?" UTC":""))}),Ce.min=function(){var t=[].slice.call(arguments,0);return ve("isBefore",t)},Ce.max=function(){var t=[].slice.call(arguments,0);return ve("isAfter",t)},Ce.utc=function(t,e,i,s){var o;return"boolean"==typeof i&&(s=i,i=n),o={},o._isAMomentObject=!0,o._useUTC=!0,o._isUTC=!0,o._l=i,o._i=t,o._f=e,o._strict=s,o._pf=h(),ge(o).utc()},Ce.unix=function(t){return Ce(1e3*t)},Ce.duration=function(t,e){var i,s,o,n,r=t,h=null;return Ce.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=je.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:L(h[Ae])*i,h:L(h[Pe])*i,m:L(h[Fe])*i,s:L(h[Re])*i,ms:L(h[He])*i}):(h=Ve.exec(t))?(i="-"===h[1]?-1:1,o=function(t){var e=t&&parseFloat(t.replace(",","."));return(isNaN(e)?0:e)*i},r={y:o(h[2]),M:o(h[3]),d:o(h[4]),h:o(h[5]),m:o(h[6]),s:o(h[7]),w:o(h[8])}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(n=D(Ce(r.from),Ce(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new y(r),Ce.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},Ce.version=Ee,Ce.defaultFormat=ci,Ce.ISO_8601=function(){},Ce.momentProperties=Ye,Ce.updateOffset=function(){},Ce.relativeTimeThreshold=function(t,e){return bi[t]===n?!1:e===n?bi[t]:(bi[t]=e,!0)},Ce.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return Ce.locale(t,e)}),Ce.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?Ce.defineLocale(t,e):Ce.localeData(t),i&&(Ce.duration._locale=Ce._locale=i)),Ce._locale._abbr},Ce.defineLocale=function(t,e){return null!==e?(e.abbr=t,Be[t]||(Be[t]=new g),Be[t].set(e),Ce.locale(t),Be[t]):(delete Be[t],null)},Ce.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return Ce.localeData(t)}),Ce.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Ce._locale;if(!T(t)){if(e=W(t))return e;t=[t]}return Y(t)},Ce.isMoment=function(t){return t instanceof v||null!=t&&a(t,"_isAMomentObject")},Ce.isDuration=function(t){return t instanceof y};for(Oe=Di.length-1;Oe>=0;--Oe)I(Di[Oe]);Ce.normalizeUnits=function(t){return k(t)},Ce.invalid=function(t){var e=Ce.utc(0/0);return null!=t?b(e._pf,t):e._pf.userInvalidated=!0,e},Ce.parseZone=function(){return Ce.apply(null,arguments).parseZone()},Ce.parseTwoDigitYear=function(t){return L(t)+(L(t)>68?1900:2e3)},Ce.isDate=O,b(Ce.fn=v.prototype,{clone:function(){return Ce(this)},valueOf:function(){return+this._d-6e4*(this._offset||0)},unix:function(){return Math.floor(+this/1e3)},toString:function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},toDate:function(){return this._offset?new Date(+this):this._d},toISOString:function(){var t=Ce(this).utc();return 00:!1},parsingFlags:function(){return b({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.utcOffset(0,t)},local:function(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(this._dateUtcOffset(),"m")),this},format:function(t){var e=U(this,t||Ce.defaultFormat);return this.localeData().postformat(e)},add:M(1,"add"),subtract:M(-1,"subtract"),diff:function(t,e,i){var s,o,n=G(t,this),r=6e4*(n.utcOffset()-this.utcOffset());return e=k(e),"year"===e||"month"===e||"quarter"===e?(o=m(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:x(o)},from:function(t,e){return Ce.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(Ce(),t)},calendar:function(t){var e=t||Ce(),i=G(e,this).startOf("day"),s=this.diff(i,"days",!0),o=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse";return this.format(this.localeData().calendar(o,this,Ce(e)))},isLeapYear:function(){return F(this.year())},isDST:function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},day:function(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=ce(t,this.localeData()),this.add(t-e,"d")):e},month:xe("Month",!0),startOf:function(t){switch(t=k(t)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===t?this.weekday(0):"isoWeek"===t&&this.isoWeekday(1),"quarter"===t&&this.month(3*Math.floor(this.month()/3)),this},endOf:function(t){return t=k(t),t===n||"millisecond"===t?this:this.startOf(t).add(1,"isoWeek"===t?"week":t).subtract(1,"ms")},isAfter:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+this>+t):(i=Ce.isMoment(t)?+t:+Ce(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=k("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=Ce.isMoment(t)?t:Ce(t),+t>+this):(i=Ce.isMoment(t)?+t:+Ce(t),+this.clone().endOf(e)t?this:t}),max:l("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(t){return t=Ce.apply(null,arguments),t>this?this:t}),zone:l("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",function(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}),utcOffset:function(t,e){var i,s=this._offset||0;return null!=t?("string"==typeof t&&(t=Z(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateUtcOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.add(i,"m"),s!==t&&(!e||this._changeInProgress?C(this,Ce.duration(t-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,Ce.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?s:this._dateUtcOffset()},isLocal:function(){return!this._isUTC},isUtcOffset:function(){return this._isUTC},isUtc:function(){return this._isUTC&&0===this._offset},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Z(this._i)),this},hasAlignedHourOffset:function(t){return t=t?Ce(t).utcOffset():0,(this.utcOffset()-t)%60===0},daysInMonth:function(){return z(this.year(),this.month())},dayOfYear:function(t){var e=Ne((Ce(this).startOf("day")-Ce(this).startOf("year"))/864e5)+1;return null==t?e:this.add(t-e,"d")},quarter:function(t){return null==t?Math.ceil((this.month()+1)/3):this.month(3*(t-1)+this.month()%3)},weekYear:function(t){var e=me(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=me(this,1,4).year;return null==t?e:this.add(t-e,"y")},week:function(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")},isoWeek:function(t){var e=me(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")},weekday:function(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")},isoWeekday:function(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)},isoWeeksInYear:function(){return A(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return A(this.year(),t.dow,t.doy)},get:function(t){return t=k(t),this[t]()},set:function(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else t=k(t),"function"==typeof this[t]&&this[t](e);return this},locale:function(t){var e;return t===n?this._locale._abbr:(e=Ce.localeData(t),null!=e&&(this._locale=e),this)},lang:l("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(t){return t===n?this.localeData():this.locale(t)}),localeData:function(){return this._locale},_dateUtcOffset:function(){return 15*-Math.round(this._d.getTimezoneOffset()/15)}}),Ce.fn.millisecond=Ce.fn.milliseconds=xe("Milliseconds",!1),Ce.fn.second=Ce.fn.seconds=xe("Seconds",!1),Ce.fn.minute=Ce.fn.minutes=xe("Minutes",!1),Ce.fn.hour=Ce.fn.hours=xe("Hours",!0),Ce.fn.date=xe("Date",!0),Ce.fn.dates=l("dates accessor is deprecated. Use date instead.",xe("Date",!0)),Ce.fn.year=xe("FullYear",!0),Ce.fn.years=l("years accessor is deprecated. Use year instead.",xe("FullYear",!0)),Ce.fn.days=Ce.fn.day,Ce.fn.months=Ce.fn.month,Ce.fn.weeks=Ce.fn.week,Ce.fn.isoWeeks=Ce.fn.isoWeek,Ce.fn.quarters=Ce.fn.quarter,Ce.fn.toJSON=Ce.fn.toISOString,Ce.fn.isUTC=Ce.fn.isUtc,b(Ce.duration.fn=y.prototype,{_bubble:function(){var t,e,i,s=this._milliseconds,o=this._days,n=this._months,r=this._data,a=0;r.milliseconds=s%1e3,t=x(s/1e3),r.seconds=t%60,e=x(t/60),r.minutes=e%60,i=x(e/60),r.hours=i%24,o+=x(i/24),a=x(we(o)),o-=x(Se(a)),n+=x(o/30),o%=30,a+=x(n/12),n%=12,r.days=o,r.months=n,r.years=a},abs:function(){return this._milliseconds=Math.abs(this._milliseconds),this._days=Math.abs(this._days),this._months=Math.abs(this._months),this._data.milliseconds=Math.abs(this._data.milliseconds),this._data.seconds=Math.abs(this._data.seconds),this._data.minutes=Math.abs(this._data.minutes),this._data.hours=Math.abs(this._data.hours),this._data.months=Math.abs(this._data.months),this._data.years=Math.abs(this._data.years),this},weeks:function(){return x(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*L(this._months/12)},humanize:function(t){var e=ue(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=Ce.duration(t,e);return this._milliseconds+=i._milliseconds,this._days+=i._days,this._months+=i._months,this._bubble(),this},subtract:function(t,e){var i=Ce.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=k(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=k(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*we(e),"month"===t?i:i/12;switch(e=this._days+Math.round(Se(this._months/12)),t){case"week":return e/7+this._milliseconds/6048e5;case"day":return e+this._milliseconds/864e5;case"hour":return 24*e+this._milliseconds/36e5;case"minute":return 24*e*60+this._milliseconds/6e4;case"second":return 24*e*60*60+this._milliseconds/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+this._milliseconds;default:throw new Error("Unknown unit "+t)}},lang:Ce.fn.lang,locale:Ce.fn.locale,toIsoString:l("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",function(){return this.toISOString()}),toISOString:function(){var t=Math.abs(this.years()),e=Math.abs(this.months()),i=Math.abs(this.days()),s=Math.abs(this.hours()),o=Math.abs(this.minutes()),n=Math.abs(this.seconds()+this.milliseconds()/1e3);return this.asSeconds()?(this.asSeconds()<0?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||o||n?"T":"")+(s?s+"H":"")+(o?o+"M":"")+(n?n+"S":""):"P0D"},localeData:function(){return this._locale},toJSON:function(){return this.toISOString()}}),Ce.duration.fn.toString=Ce.duration.fn.toISOString;for(Oe in fi)a(fi,Oe)&&De(Oe.toLowerCase());Ce.duration.fn.asMilliseconds=function(){return this.as("ms")},Ce.duration.fn.asSeconds=function(){return this.as("s")},Ce.duration.fn.asMinutes=function(){return this.as("m")},Ce.duration.fn.asHours=function(){return this.as("h")},Ce.duration.fn.asDays=function(){return this.as("d")},Ce.duration.fn.asWeeks=function(){return this.as("weeks")},Ce.duration.fn.asMonths=function(){return this.as("M")},Ce.duration.fn.asYears=function(){return this.as("y")},Ce.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===L(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),We?o.exports=Ce:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(ke.moment=Te),Ce}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Me(!0))}).call(this)}).call(e,function(){return this}(),i(71)(t))},function(t,e,i){var s;!function(o,n){function r(){a.READY||(w.determineEventTypes(),x.each(a.gestures,function(t){D.register(t) -}),w.onTouch(a.DOCUMENT,v,D.detect),w.onTouch(a.DOCUMENT,y,D.detect),a.READY=!0)}var a=function M(t,e){return new M.Instance(t,e||{})};a.VERSION="1.1.3",a.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},a.DOCUMENT=document,a.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,a.HAS_TOUCHEVENTS="ontouchstart"in o,a.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),a.NO_MOUSEEVENTS=a.HAS_TOUCHEVENTS&&a.IS_MOBILE||a.HAS_POINTEREVENTS,a.CALCULATE_INTERVAL=25;var h={},d=a.DIRECTION_DOWN="down",l=a.DIRECTION_LEFT="left",c=a.DIRECTION_UP="up",p=a.DIRECTION_RIGHT="right",u=a.POINTER_MOUSE="mouse",m=a.POINTER_TOUCH="touch",f=a.POINTER_PEN="pen",g=a.EVENT_START="start",v=a.EVENT_MOVE="move",y=a.EVENT_END="end",b=a.EVENT_RELEASE="release",_=a.EVENT_TOUCH="touch";a.READY=!1,a.plugins=a.plugins||{},a.gestures=a.gestures||{};var x=a.utils={extend:function(t,e,i){for(var s in e)!e.hasOwnProperty(s)||t[s]!==n&&i||(t[s]=e[s]);return t},on:function(t,e,i){t.addEventListener(e,i,!1)},off:function(t,e,i){t.removeEventListener(e,i,!1)},each:function(t,e,i){var s,o;if("forEach"in t)t.forEach(e,i);else if(t.length!==n){for(s=0,o=t.length;o>s;s++)if(e.call(i,t[s],s,t)===!1)return}else for(s in t)if(t.hasOwnProperty(s)&&e.call(i,t[s],s,t)===!1)return},inStr:function(t,e){return t.indexOf(e)>-1},inArray:function(t,e){if(t.indexOf){var i=t.indexOf(e);return-1===i?!1:i}for(var s=0,o=t.length;o>s;s++)if(t[s]===e)return s;return!1},toArray:function(t){return Array.prototype.slice.call(t,0)},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){var e=[],i=[],s=[],o=[],n=Math.min,r=Math.max;return 1===t.length?{pageX:t[0].pageX,pageY:t[0].pageY,clientX:t[0].clientX,clientY:t[0].clientY}:(x.each(t,function(t){e.push(t.pageX),i.push(t.pageY),s.push(t.clientX),o.push(t.clientY)}),{pageX:(n.apply(Math,e)+r.apply(Math,e))/2,pageY:(n.apply(Math,i)+r.apply(Math,i))/2,clientX:(n.apply(Math,s)+r.apply(Math,s))/2,clientY:(n.apply(Math,o)+r.apply(Math,o))/2})},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return 180*Math.atan2(s,i)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.clientX-e.clientX),s=Math.abs(t.clientY-e.clientY);return i>=s?t.clientX-e.clientX>0?l:p:t.clientY-e.clientY>0?c:d},getDistance:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==c||t==d},setPrefixedCss:function(t,e,i,s){var o=["","Webkit","Moz","O","ms"];e=x.toCamelCase(e);for(var n=0;n0&&this.started&&(r=v),this.started=!0;var d=this.collectEventData(i,r,o,t);return e!=y&&s.call(D,d),a&&(d.changedLength=h,d.eventType=a,s.call(D,d),d.eventType=r,delete d.changedLength),r==y&&(s.call(D,d),this.started=!1),r},determineEventTypes:function(){var t;return t=a.HAS_POINTEREVENTS?o.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:a.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],h[g]=t[0],h[v]=t[1],h[y]=t[2],h},getTouchList:function(t,e){if(a.HAS_POINTEREVENTS)return S.getTouchList();if(t.touches){if(e==v)return t.touches;var i=[],s=[].concat(x.toArray(t.touches),x.toArray(t.changedTouches)),o=[];return x.each(s,function(t){x.inArray(i,t.identifier)===!1&&o.push(t),i.push(t.identifier)}),o}return t.identifier=1,[t]},collectEventData:function(t,e,i,s){var o=m;return x.inStr(s.type,"mouse")||S.matchType(u,s)?o=u:S.matchType(f,s)&&(o=f),{center:x.getCenter(i),timeStamp:Date.now(),target:s.target,touches:i,eventType:e,pointerType:o,srcEvent:s,preventDefault:function(){var t=this.srcEvent;t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return D.stopDetect()}}}},S=a.PointerEvent={pointers:{},getTouchList:function(){var t=[];return x.each(this.pointers,function(e){t.push(e)}),t},updatePointer:function(t,e){t==y||t!=y&&1!==e.buttons?delete this.pointers[e.pointerId]:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e)},matchType:function(t,e){if(!e.pointerType)return!1;var i=e.pointerType,s={};return s[u]=i===(e.MSPOINTER_TYPE_MOUSE||u),s[m]=i===(e.MSPOINTER_TYPE_TOUCH||m),s[f]=i===(e.MSPOINTER_TYPE_PEN||f),s[t]},reset:function(){this.pointers={}}},D=a.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startEvent:x.extend({},e),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendEventData(t);var e=this.current.inst,i=e.options;return x.each(this.gestures,function(s){!this.stopped&&e.enabled&&i[s.name]&&s.handler.call(s,t,e)},this),this.current&&(this.current.lastEvent=t),t.eventType==y&&this.stopDetect(),t}},stopDetect:function(){this.previous=x.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(t,e,i,s,o){var n=this.current,r=!1,h=n.lastCalcEvent,d=n.lastCalcData;h&&t.timeStamp-h.timeStamp>a.CALCULATE_INTERVAL&&(e=h.center,i=t.timeStamp-h.timeStamp,s=t.center.clientX-h.center.clientX,o=t.center.clientY-h.center.clientY,r=!0),(t.eventType==_||t.eventType==b)&&(n.futureCalcEvent=t),(!n.lastCalcEvent||r)&&(d.velocity=x.getVelocity(i,s,o),d.angle=x.getAngle(e,t.center),d.direction=x.getDirection(e,t.center),n.lastCalcEvent=n.futureCalcEvent||t,n.futureCalcEvent=t),t.velocityX=d.velocity.x,t.velocityY=d.velocity.y,t.interimAngle=d.angle,t.interimDirection=d.direction},extendEventData:function(t){var e=this.current,i=e.startEvent,s=e.lastEvent||i;(t.eventType==_||t.eventType==b)&&(i.touches=[],x.each(t.touches,function(t){i.touches.push({clientX:t.clientX,clientY:t.clientY})}));var o=t.timeStamp-i.timeStamp,n=t.center.clientX-i.center.clientX,r=t.center.clientY-i.center.clientY;return this.getCalculatedData(t,s.center,o,n,r),x.extend(t,{startEvent:i,deltaTime:o,deltaX:n,deltaY:r,distance:x.getDistance(i.center,t.center),angle:x.getAngle(i.center,t.center),direction:x.getDirection(i.center,t.center),scale:x.getScale(i.touches,t.touches),rotation:x.getRotation(i.touches,t.touches)}),t},register:function(t){var e=t.defaults||{};return e[t.name]===n&&(e[t.name]=!0),x.extend(a.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}};a.Instance=function(t,e){var i=this;r(),this.element=t,this.enabled=!0,x.each(e,function(t,i){delete e[i],e[x.toCamelCase(i)]=t}),this.options=x.extend(x.extend({},a.defaults),e||{}),this.options.behavior&&x.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=w.onTouch(t,g,function(t){i.enabled&&t.eventType==g?D.startDetect(i,t):t.eventType==_&&D.detect(t)}),this.eventHandlers=[]},a.Instance.prototype={on:function(t,e){var i=this;return w.on(i.element,t,e,function(t){i.eventHandlers.push({gesture:t,handler:e})}),i},off:function(t,e){var i=this;return w.off(i.element,t,e,function(t){var s=x.inArray({gesture:t,handler:e});s!==!1&&i.eventHandlers.splice(s,1)}),i},trigger:function(t,e){e||(e={});var i=a.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e;var s=this.element;return x.hasParent(e.target,s)&&(s=e.target),s.dispatchEvent(i),this},enable:function(t){return this.enabled=t,this},dispose:function(){var t,e;for(x.toggleBehavior(this.element,this.options.behavior,!1),t=-1;e=this.eventHandlers[++t];)x.off(this.element,e.gesture,e.handler);return this.eventHandlers=[],w.off(this.element,h[g],this.eventStartHandler),null}},function(t){function e(e,s){var o=D.current;if(!(s.options.dragMaxTouches>0&&e.touches.length>s.options.dragMaxTouches))switch(e.eventType){case g:i=!1;break;case v:if(e.distance0)){var r=Math.abs(s.options.dragMinDistance/e.distance);n.pageX+=e.deltaX*r,n.pageY+=e.deltaY*r,n.clientX+=e.deltaX*r,n.clientY+=e.deltaY*r,e=D.extendEventData(e)}(o.lastEvent.dragLockToAxis||s.options.dragLockToAxis&&s.options.dragLockMinDistance<=e.distance)&&(e.dragLockToAxis=!0);var a=o.lastEvent.direction;e.dragLockToAxis&&a!==e.direction&&(e.direction=x.isVertical(a)?e.deltaY<0?c:d:e.deltaX<0?l:p),i||(s.trigger(t+"start",e),i=!0),s.trigger(t,e),s.trigger(t+e.direction,e);var h=x.isVertical(e.direction);(s.options.dragBlockVertical&&h||s.options.dragBlockHorizontal&&!h)&&e.preventDefault();break;case b:i&&e.changedLength<=s.options.dragMaxTouches&&(s.trigger(t+"end",e),i=!1);break;case y:i=!1}}var i=!1;a.gestures.Drag={name:t,index:50,handler:e,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),a.gestures.Gesture={name:"gesture",index:1337,handler:function(t,e){e.trigger(this.name,t)}},function(t){function e(e,s){var o=s.options,n=D.current;switch(e.eventType){case g:clearTimeout(i),n.name=t,i=setTimeout(function(){n&&n.name==t&&s.trigger(t,e)},o.holdTimeout);break;case v:e.distance>o.holdThreshold&&clearTimeout(i);break;case b:clearTimeout(i)}}var i;a.gestures.Hold={name:t,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:e}}("hold"),a.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==b&&e.trigger(this.name,t)}},a.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(t,e){if(t.eventType==b){var i=t.touches.length,s=e.options;if(is.swipeMaxTouches)return;(t.velocityX>s.swipeVelocityX||t.velocityY>s.swipeVelocityY)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},function(t){function e(e,s){var o,n,r=s.options,a=D.current,h=D.previous;switch(e.eventType){case g:i=!1;break;case v:i=i||e.distance>r.tapMaxDistance;break;case y:!x.inStr(e.srcEvent.type,"cancel")&&e.deltaTimes.options.transformMinRotation&&s.trigger("rotate",e),o>s.options.transformMinScale&&(s.trigger("pinch",e),s.trigger("pinch"+(e.scale<1?"in":"out"),e));break;case b:i&&e.changedLength<2&&(s.trigger(t+"end",e),i=!1)}}var i=!1;a.gestures.Transform={name:t,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:e}}("transform"),s=function(){return a}.call(e,i,e,t),!(s!==n&&(t.exports=s))}(window)},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement); -var d;d=document.getElementById("graph_BH_gc"),d.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),d=document.getElementById("graph_BH_cg"),d.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),d=document.getElementById("graph_BH_sc"),d.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),d=document.getElementById("graph_BH_sl"),d.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),d=document.getElementById("graph_BH_damp"),d.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),d=document.getElementById("graph_R_nd"),d.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),d=document.getElementById("graph_R_cg"),d.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),d=document.getElementById("graph_R_sc"),d.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),d=document.getElementById("graph_R_sl"),d.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),d=document.getElementById("graph_R_damp"),d.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),d=document.getElementById("graph_H_nd"),d.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),d=document.getElementById("graph_H_cg"),d.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),d=document.getElementById("graph_H_sc"),d.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),d=document.getElementById("graph_H_sl"),d.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),d=document.getElementById("graph_H_damp"),d.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),d=document.getElementById("graph_H_direction"),d.onchange=a.bind(this,"graph_H_direction",i,"hierarchicalLayout_direction"),d=document.getElementById("graph_H_levsep"),d.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),d=document.getElementById("graph_H_nspac"),d.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var l=document.getElementById("graph_physicsMethod1"),c=document.getElementById("graph_physicsMethod2"),p=document.getElementById("graph_physicsMethod3");c.checked=!0,this.constants.physics.barnesHut.enabled&&(l.checked=!0),this.constants.hierarchicalLayout.enabled&&(p.checked=!0);var u=document.getElementById("graph_toggleSmooth"),m=document.getElementById("graph_repositionNodes"),f=document.getElementById("graph_generateOptions");u.onclick=s.bind(this),m.onclick=o.bind(this),f.onclick=n.bind(this),u.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),l.onchange=r.bind(this),c.onchange=r.bind(this),p.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t,e){e.startWithClustering=function(){this.clusterToFit(this.constants.clustering.initialMaxNodes,!0),this.updateLabels(),1==this.constants.stabilize&&this._stabilize(),this.start()},e.clusterToFit=function(t,e){for(var i=this.nodeIndices.length,s=50,o=0;i>t&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),this.forceAggregateHubs(!0),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&1==this.constants.clustering.clusterByZoom&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length,r=this.previousScalethis.scale&&0==t;1==a&&this._collapseSector(),1==a||-1==t?this._formClusters(i):(1==r||1==t)&&(1==i?this._openClusters(e,i):this._openClusters(e,!1)),this._updateNodeIndexList(),this.nodeIndices.length!=n||1!=a&&-1!=t||(this._aggregateHubs(i),this._updateNodeIndexList()),(1==a||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this.updateLabels(),this._updateCalculationNodes(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){if(1==this.constants.clustering.clusterByZoom)for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(void 0===s&&(s=!1),e=s||e,t.formationScalei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdges.length?this._addToCluster(r,a,!1):1==r.dynamicEdges.length&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdges.length>=this.hubThreshold&&0==i||t.dynamicEdges.length==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e){var u=[],m={};for(c=0;l>c;c++){p=this.edges[d[c]];var f=this.nodes[p.fromId==t.id?p.toId:p.fromId];void 0===m[f.id]&&(m[f.id]=!0,u.push(f))}for(c=0;c1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdges.length),t+=n.dynamicEdges.length,e+=Math.pow(n.dynamicEdges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdges.length&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdges.length&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37),r=i(45);e._clearManipulatorBar=function(){this._recursiveDOMDelete(this.manipulationDiv),this.manipulationDOM={},this._cleanManipulatorHammers(),this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1,this.freezeSimulation(!1)},e._cleanManipulatorHammers=function(){if(0!=this.manipulationHammers.length){for(var t=0;t1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag;var a=this;this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=a.edges.connectionEdge;i.to.x=a._XconvertDOMtoCanvas(e.x),i.to.y=a._YconvertDOMtoCanvas(e.y),a._redraw()},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start()}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button");var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.length){for(var t=0;t0){var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s,o,n=0;n1&&s.hierarchyEnumerated===!1&&this._setLevelDirected(s.level,s.edges,s.id)},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=Math.max(i,.01*g),s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.thetaInverted){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},e._placeInRegion=function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},e._splitBranch=function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=70},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}}])}); +"use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return t[s].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(2),e.DataSet=i(3),e.DataView=i(4),e.Queue=i(5),e.Graph3d=i(6),e.graph3d={Camera:i(7),Filter:i(8),Point2d:i(9),Point3d:i(10),Slider:i(11),StepNumber:i(12)},e.Timeline=i(13),e.Graph2d=i(14),e.timeline={DateUtil:i(15),DataStep:i(16),Range:i(17),stack:i(18),TimeStep:i(19),components:{items:{Item:i(20),BackgroundItem:i(21),BoxItem:i(22),PointItem:i(23),RangeItem:i(24)},Component:i(25),CurrentTime:i(26),CustomTime:i(27),DataAxis:i(28),GraphGroup:i(29),Group:i(30),BackgroundGroup:i(31),ItemSet:i(32),Legend:i(33),LineGraph:i(34),TimeAxis:i(35)}},e.Network=i(36),e.network={Edge:i(37),Groups:i(38),Images:i(39),Node:i(40),Popup:i(41),dotparser:i(42),gephiParser:i(43)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(44),e.hammer=i(45)},function(t,e,i){var s=i(44);e.isNumber=function(t){return t instanceof Number||"number"==typeof t},e.giveRange=function(t,e,i,s){if(e==t)return.5;var o=1/(e-t);return Math.max(0,(s-t)*o)},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=o.exec(t);if(i)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},e.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},e.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},e.extend=function(t,e){for(var i=1,s=arguments.length;s>i;i++){var o=arguments[i];for(var n in o)o.hasOwnProperty(n)&&(t[n]=o[n])}return t},e.selectiveExtend=function(t,e,i){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var s=2;si;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(s.isMoment(t))return new Date(t.valueOf());if(e.isString(t))return n=o.exec(t),n?new Date(Number(n[1])):s(t).toDate();throw new Error("Cannot convert object of type "+e.getType(t)+" to type Date");case"Moment":if(e.isNumber(t))return s(t);if(t instanceof Date)return s(t.valueOf());if(s.isMoment(t))return s(t);if(e.isString(t))return n=o.exec(t),s(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(s.isMoment(t))return t.toDate().toISOString();if(e.isString(t))return n=o.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=o.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 o=/^\/?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":e},e.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left+window.pageXOffset},e.getAbsoluteTop=function(t){return t.getBoundingClientRect().top+window.pageYOffset},e.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},e.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},e.forEach=function(t,e){var i,s;if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},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.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},e.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},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,s){return e+e+i+i+s+s});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("rgb")){var s=t.substr(t.indexOf("(")+1).replace(")","").split(",");return"rgba("+s[0]+","+s[1]+","+s[2]+","+i+")"}var s=e.hexToRGB(t);return null==s?t:"rgba("+s.r+","+s.g+","+s.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)){if(e.isValidRGB(t)){var s=t.substr(4).substr(0,t.length-5).split(",");t=e.RGBToHex(s[0],s[1],s[2])}if(e.isValidHex(t)){var o=e.hexToHSV(t),n={h:o.h,s:.45*o.s,v:Math.min(1,1.05*o.v)},r={h:o.h,s:Math.min(1,1.25*o.v),v:.6*o.v},a=e.HSVToHex(r.h,r.h,r.v),h=e.HSVToHex(n.h,n.s,n.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||"white",i.border=t.border||i.background,e.isString(t.highlight)?i.highlight={border:t.highlight,background:t.highlight}:(i.highlight={},i.highlight.background=t.highlight&&t.highlight.background||i.background,i.highlight.border=t.highlight&&t.highlight.border||i.border),e.isString(t.hover)?i.hover={border:t.hover,background:t.hover}:(i.hover={},i.hover.background=t.hover&&t.hover.background||i.background,i.hover.border=t.hover&&t.hover.border||i.border);return i},e.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));if(s==o)return{h:0,s:0,v:s};var n=t==s?e-i:i==s?t-e:i-t,r=t==s?3:i==s?1:5,a=60*(r-n/(o-s))/360,h=(o-s)/o,d=o;return{h:a,s:h,v:d}};var n={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),s=i[0].trim(),o=i[1].trim();e[s]=o}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};e.addCssText=function(t,i){var s=n.split(t.style.cssText),o=n.split(i),r=e.extend(s,o);t.style.cssText=n.join(r)},e.removeCssText=function(t,e){var i=n.split(t.style.cssText),s=n.split(e);for(var o in s)s.hasOwnProperty(o)&&delete i[o];t.style.cssText=n.join(i)},e.HSVToRGB=function(t,e,i){var s,o,n,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:s=i,o=l,n=h;break;case 1:s=d,o=i,n=h;break;case 2:s=h,o=i,n=l;break;case 3:s=h,o=d,n=i;break;case 4:s=l,o=h,n=i;break;case 5:s=i,o=h,n=d}return{r:Math.floor(255*s),g:Math.floor(255*o),b:Math.floor(255*n)}},e.HSVToHex=function(t,i,s){var o=e.HSVToRGB(t,i,s);return e.RGBToHex(o.r,o.g,o.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.selectiveBridgeObject=function(t,i){if("object"==typeof i){for(var s=Object.create(i),o=0;o=r&&o>n;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===s?d[i]:d[i][s],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,n++}return-1},e.binarySearchValue=function(t,e,i,s){for(var o,n,r,a,h=1e4,d=0,l=0,c=t.length-1;c>=l&&h>d;){if(a=Math.floor(.5*(c+l)),o=t[Math.max(0,a-1)][i],n=t[a][i],r=t[Math.min(t.length-1,a+1)][i],n==e)return a;if(e>o&&n>e)return"before"==s?Math.max(0,a-1):a;if(e>n&&r>e)return"before"==s?a:Math.min(t.length-1,a+1);e>n?l=a+1:c=a-1,d++}return-1},e.easeInOutQuad=function(t,e,i,s){var o=i-e;return t/=s/2,1>t?o/2*t*t+e:(t--,-o/2*(t*(t-2)-1)+e)},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){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(s)):(s=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(s)),e[t].used.push(s),s},e.getDOMElement=function(t,e,i,s){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==s?i.insertBefore(o,s):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==s?i.insertBefore(o,s):i.appendChild(o)),e[t].used.push(o),o},e.drawPoint=function(t,i,s,o,n,r){var a;"circle"==s.options.drawPoints.style?(a=e.getSVGElement("circle",o,n),a.setAttributeNS(null,"cx",t),a.setAttributeNS(null,"cy",i),a.setAttributeNS(null,"r",.5*s.options.drawPoints.size)):(a=e.getSVGElement("rect",o,n),a.setAttributeNS(null,"x",t-.5*s.options.drawPoints.size),a.setAttributeNS(null,"y",i-.5*s.options.drawPoints.size),a.setAttributeNS(null,"width",s.options.drawPoints.size),a.setAttributeNS(null,"height",s.options.drawPoints.size)),void 0!==s.options.drawPoints.styles&&a.setAttributeNS(null,"style",s.group.options.drawPoints.styles),a.setAttributeNS(null,"class",s.className+" point");var h=e.getSVGElement("text",o,n);return r&&(r.xOffset&&(t+=r.xOffset),r.yOffset&&(i+=r.yOffset),r.content&&(h.textContent=r.content),r.className&&h.setAttributeNS(null,"class",r.className+" label")),h.setAttributeNS(null,"x",t),h.setAttributeNS(null,"y",i),a},e.drawBar=function(t,i,s,o,n,r,a){if(0!=o){0>o&&(o*=-1,i-=o);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*s),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",s),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",n)}}},function(t,e,i){function s(t,e){if(!t||Array.isArray(t)||o.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},this.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 s=this._options.type[i];this._type[i]="Date"==s||"ISODate"==s||"ASPDate"==s?"Date":s}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var o=i(1),n=i(5);s.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=n.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},s.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},s.prototype.subscribe=s.prototype.on,s.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},s.prototype.unsubscribe=s.prototype.off,s.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this._subscribers&&(s=s.concat(this._subscribers[t])),"*"in this._subscribers&&(s=s.concat(this._subscribers["*"]));for(var o=0;or;r++)i=n._addItem(t[r]),s.push(i);else if(o.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var c={},p=0,u=h.length;u>p;p++){var m=h[p];c[m]=t.getValue(d,p)}i=n._addItem(c),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},s.prototype.update=function(t,e){var i=[],s=[],n=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),s.push(e),n.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(o.isDataTable(t))for(var c=this._getColumnNames(t),p=0,u=t.getNumberOfRows();u>p;p++){for(var m={},f=0,g=c.length;g>f;f++){var v=c[f];m[v]=t.getValue(p,f)}h(m)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s,data:n},e),i.concat(s)},s.prototype.get=function(t){var e,i,s,n,r=this,a=o.getType(arguments[0]);"String"==a||"Number"==a?(e=arguments[0],s=arguments[1],n=arguments[2]):"Array"==a?(i=arguments[0],s=arguments[1],n=arguments[2]):(s=arguments[0],n=arguments[1]);var h;if(s&&s.returnType){var d=["DataTable","Array","Object"];if(h=-1==d.indexOf(s.returnType)?"Array":s.returnType,n&&h!=o.getType(n))throw new Error('Type of parameter "data" ('+o.getType(n)+") does not correspond with specified options.type ("+s.type+")");if("DataTable"==h&&!o.isDataTable(n))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else h=n&&"DataTable"==o.getType(n)?"DataTable":"Array";var l,c,p,u,m=s&&s.type||this._options.type,f=s&&s.filter,g=[];if(void 0!=e)l=r._getItem(e,m),f&&!f(l)&&(l=null);else if(void 0!=i)for(p=0,u=i.length;u>p;p++)l=r._getItem(i[p],m),(!f||f(l))&&g.push(l);else for(c in this._data)this._data.hasOwnProperty(c)&&(l=r._getItem(c,m),(!f||f(l))&&g.push(l));if(s&&s.order&&void 0==e&&this._sort(g,s.order),s&&s.fields){var v=s.fields;if(void 0!=e)l=this._filterFields(l,v);else for(p=0,u=g.length;u>p;p++)g[p]=this._filterFields(g[p],v)}if("DataTable"==h){var y=this._getColumnNames(n);if(void 0!=e)r._appendRow(n,y,l);else for(p=0;pp;p++)n.push(g[p]);return n}return g},s.prototype.getIds=function(t){var e,i,s,o,n,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){n=[];for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&n.push(o));for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&l.push(o[this._fieldId]));else if(h){n=[];for(s in r)r.hasOwnProperty(s)&&n.push(r[s]);for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=r[s],l.push(o[this._fieldId]));return l},s.prototype.getDataSet=function(){return this},s.prototype.forEach=function(t,e){var i,s,o=e&&e.filter,n=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],s=i[this._fieldId],t(i,s);else for(s in r)r.hasOwnProperty(s)&&(i=this._getItem(s,n),(!o||o(i))&&t(i,s))},s.prototype.map=function(t,e){var i,s=e&&e.filter,o=e&&e.type||this._options.type,n=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,o),(!s||s(i))&&n.push(t(i,a)));return e&&e.order&&this._sort(n,e.order),n},s.prototype._filterFields=function(t,e){if(!t)return t;var i={};if(Array.isArray(e))for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);else for(var s in t)t.hasOwnProperty(s)&&e.hasOwnProperty(s)&&(i[e[s]]=t[s]);return i},s.prototype._sort=function(t,e){if(o.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],o=e[i];return s>o?1:o>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},s.prototype.remove=function(t,e){var i,s,o,n=[];if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)o=this._remove(t[i]),null!=o&&n.push(o);else o=this._remove(t),null!=o&&n.push(o);return n.length&&this._trigger("remove",{items:n},e),n},s.prototype._remove=function(t){if(o.isNumber(t)||o.isString(t)){if(this._data[t])return delete this._data[t],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},s.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this.length=0,this._trigger("remove",{items:e},t),e},s.prototype.max=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||r>s)&&(i=n,s=r)}return i},s.prototype.min=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||s>r)&&(i=n,s=r)}return i},s.prototype.distinct=function(t){var e,i=this._data,s=[],n=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(s[e]==d){l=!0;break}l||void 0===d||(s[r]=d,r++)}if(n)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},s.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),o=0,n=e.length;n>o;o++){var r=e[o];t.setValue(s,o,i[r])}},t.exports=s},function(t,e,i){function s(t,e){this._data=null,this._ids={},this.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 o=i(1),n=i(3);s.prototype.setData=function(t){var e,i,s;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var o in this._ids)this._ids.hasOwnProperty(o)&&e.push(o);this._ids={},this.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,s=e.length;s>i;i++)o=e[i],this._ids[o]=!0;this.length=e.length,this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},s.prototype.refresh=function(){for(var t,e=this._data.getIds({filter:this._options&&this._options.filter}),i={},s=[],o=[],n=0;ns;s++)n=a[s],r=this.get(n),r&&(this._ids[n]=!0,l.push(n));break;case"update":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r?this._ids[n]?(c.push(n),d.push(e.data[s])):(this._ids[n]=!0,l.push(n)):this._ids[n]&&(delete this._ids[n],p.push(n));break;case"remove":for(s=0,o=a.length;o>s;s++)n=a[s],this._ids[n]&&(delete this._ids[n],p.push(n))}this.length+=l.length-p.length,l.length&&this._trigger("add",{items:l},i),c.length&&this._trigger("update",{items:c,data:d},i),p.length&&this._trigger("remove",{items:p},i)}},s.prototype.on=n.prototype.on,s.prototype.off=n.prototype.off,s.prototype._trigger=n.prototype._trigger,s.prototype.subscribe=s.prototype.on,s.prototype.unsubscribe=s.prototype.off,t.exports=s},function(t,e,i){function s(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}s.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},s.extend=function(t,e){var i=new s(e);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){i.flush()};var o=[{name:"flush",original:void 0}];if(e&&e.replace)for(var n=0;nthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},s.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var o=function(t){return t};this.xValueLabel=o,this.yValueLabel=o,this.zValueLabel=o,this.filterLabel="time",this.legendLabel="value",this.style=s.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new p,this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.colorAxis="#4D4D4D",this.colorGrid="#D3D3D3",this.colorDot="#7DC1FF",this.colorDotBorder="#3267D2",this.create(),this.setOptions(i),e&&this.setData(e)}function o(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function n(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(56),a=i(3),h=i(4),d=i(1),l=i(10),c=i(9),p=i(7),u=i(8),m=i(11),f=i(12);r(s.prototype),s.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==s.STYLE.DOTCOLOR&&this.style!==s.STYLE.DOTSIZE&&this.style!==s.STYLE.BARCOLOR&&this.style!==s.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},s.prototype.getNumberOfRows=function(t){return t.length},s.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},s.prototype.getDistinctValues=function(t,e){for(var i=[],s=0;st[s][e]&&(i.min=t[s][e]),i.maxt;t++){var m=(t-p)/(u-p),g=240*m,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===s.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===s.STYLE.DOTCOLOR||this.style===s.STYLE.DOTSIZE){var y=5,b=new f(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",o.x,o.y),i.next()}for(g.lineWidth=1,s=void 0===this.defaultYStep,i=new f(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",o.x,o.y),i.next();for(g.lineWidth=1,s=void 0===this.defaultZStep,i=new f(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,p=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),p=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var w=this.xLabel;w.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(_)>0?this.yMin-c:this.yMax+c,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(w,o.x,o.y));var S=this.yLabel;S.length>0&&(d=.1/this.scale.x,n=Math.sin(_)>0?this.xMin-d:this.xMax+d,r=(this.yMin+this.yMax)/2,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(S,o.x,o.y));var D=this.zLabel;D.length>0&&(h=30,n=Math.cos(_)>0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax,a=(this.zMin+this.zMax)/2,o=this._convert3Dto2D(new l(n,r,a)),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(D,o.x-h,o.y))},s.prototype._hsv2rgb=function(t,e,i){var s,o,n,r,a,h;switch(r=i*e,a=Math.floor(t/60),h=r*(1-Math.abs(t/60%2-1)),a){case 0:s=r,o=h,n=0;break;case 1:s=h,o=r,n=0;break;case 2:s=0,o=r,n=h;break;case 3:s=0,o=h,n=r;break;case 4:s=h,o=0,n=r;break;case 5:s=r,o=0,n=h;break;default:s=0,o=0,n=0}return"RGB("+parseInt(255*s)+","+parseInt(255*o)+","+parseInt(255*n)+")"},s.prototype._redrawDataGrid=function(){var t,e,i,o,n,r,a,h,d,c,p,u,m,f=this.frame.canvas,g=f.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(n=0;n0}else r=!0;r?(m=(t.point.z+e.point.z+i.point.z+o.point.z)/4,c=240*(1-(m-this.zMin)*this.scale.z/this.verticalRatio),p=1,this.showShadow?(u=Math.min(1+S.x/D/2,1),a=this._hsv2rgb(c,p,u),h=a):(u=1,a=this._hsv2rgb(c,p,u),h=this.colorAxis)):(a="gray",h=this.colorAxis),d=.5,g.lineWidth=d,g.fillStyle=a,g.strokeStyle=h,g.beginPath(),g.moveTo(t.screen.x,t.screen.y),g.lineTo(e.screen.x,e.screen.y),g.lineTo(o.screen.x,o.screen.y),g.lineTo(i.screen.x,i.screen.y),g.closePath(),g.fill(),g.stroke()}}else for(n=0;np&&(p=0);var u,m,f;this.style===s.STYLE.DOTCOLOR?(u=240*(1-(d.point.value-this.valueMin)*this.scale.value),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)):this.style===s.STYLE.DOTSIZE?(m=this.colorDot,f=this.colorDotBorder):(u=240*(1-(d.point.z-this.zMin)*this.scale.z/this.verticalRatio),m=this._hsv2rgb(u,1,1),f=this._hsv2rgb(u,1,.8)),i.lineWidth=1,i.strokeStyle=f,i.fillStyle=m,i.beginPath(),i.arc(d.screen.x,d.screen.y,p,0,2*Math.PI,!0),i.fill(),i.stroke()}}},s.prototype._redrawDataBar=function(){var t,e,i,o,n=this.frame.canvas,r=n.getContext("2d");if(!(void 0===this.dataPoints||this.dataPoints.length<=0)){for(t=0;t0&&(t=this.dataPoints[0],s.lineWidth=1,s.strokeStyle="blue",s.beginPath(),s.moveTo(t.screen.x,t.screen.y)),e=1;e0&&s.stroke()}},s.prototype._onMouseDown=function(t){if(t=t||window.event,this.leftButtonDown&&this._onMouseUp(t),this.leftButtonDown=t.which?1===t.which:1===t.button,this.leftButtonDown||this.touchDown){this.startMouseX=o(t),this.startMouseY=n(t),this.startStart=new Date(this.start),this.startEnd=new Date(this.end),this.startArmRotation=this.camera.getArmRotation(),this.frame.style.cursor="move";var e=this;this.onmousemove=function(t){e._onMouseMove(t)},this.onmouseup=function(t){e._onMouseUp(t)},d.addEventListener(document,"mousemove",e.onmousemove),d.addEventListener(document,"mouseup",e.onmouseup),d.preventDefault(t)}},s.prototype._onMouseMove=function(t){t=t||window.event;var e=parseFloat(o(t))-this.startMouseX,i=parseFloat(n(t))-this.startMouseY,s=this.startArmRotation.horizontal+e/200,r=this.startArmRotation.vertical+i/200,a=4,h=Math.sin(a/360*2*Math.PI);Math.abs(Math.sin(s))0?1:0>t?-1:0}var s=e[0],o=e[1],n=e[2],r=i((o.x-s.x)*(t.y-s.y)-(o.y-s.y)*(t.x-s.x)),a=i((n.x-o.x)*(t.y-o.y)-(n.y-o.y)*(t.x-o.x)),h=i((s.x-n.x)*(t.y-n.y)-(s.y-n.y)*(t.x-n.x));return!(0!=r&&0!=a&&r!=a||0!=a&&0!=h&&a!=h||0!=r&&0!=h&&r!=h)},s.prototype._dataPointFromXY=function(t,e){var i,o=100,n=null,r=null,a=null,h=new c(t,e);if(this.style===s.STYLE.BAR||this.style===s.STYLE.BARCOLOR||this.style===s.STYLE.BARSIZE)for(i=this.dataPoints.length-1;i>=0;i--){n=this.dataPoints[i];var d=n.surfaces;if(d)for(var l=d.length-1;l>=0;l--){var p=d[l],u=p.corners,m=[u[0].screen,u[1].screen,u[2].screen],f=[u[2].screen,u[3].screen,u[0].screen];if(this._insideTriangle(h,m)||this._insideTriangle(h,f))return n}}else for(i=0;ib)&&o>b&&(a=b,r=n)}}return r},s.prototype._showTooltip=function(t){var e,i,s;this.tooltip?(e=this.tooltip.dom.content,i=this.tooltip.dom.line,s=this.tooltip.dom.dot):(e=document.createElement("div"),e.style.position="absolute",e.style.padding="10px",e.style.border="1px solid #4d4d4d",e.style.color="#1a1a1a",e.style.background="rgba(255,255,255,0.7)",e.style.borderRadius="2px",e.style.boxShadow="5px 5px 10px rgba(128,128,128,0.5)",i=document.createElement("div"),i.style.position="absolute",i.style.height="40px",i.style.width="0",i.style.borderLeft="1px solid #4d4d4d",s=document.createElement("div"),s.style.position="absolute",s.style.height="0",s.style.width="0",s.style.border="5px solid #4d4d4d",s.style.borderRadius="5px",this.tooltip={dataPoint:null,dom:{content:e,line:i,dot:s}}),this._hideTooltip(),this.tooltip.dataPoint=t,e.innerHTML="function"==typeof this.showTooltip?this.showTooltip(t.point):"
x:"+t.point.x+"
y:"+t.point.y+"
z:"+t.point.z+"
",e.style.left="0",e.style.top="0",this.frame.appendChild(e),this.frame.appendChild(i),this.frame.appendChild(s);var o=e.offsetWidth,n=e.offsetHeight,r=i.offsetHeight,a=s.offsetWidth,h=s.offsetHeight,d=t.screen.x-o/2;d=Math.min(Math.max(d,10),this.frame.clientWidth-10-o),i.style.left=t.screen.x+"px",i.style.top=t.screen.y-r+"px",e.style.left=d+"px",e.style.top=t.screen.y-r-n+"px",s.style.left=t.screen.x-a/2+"px",s.style.top=t.screen.y-h/2+"px"},s.prototype._hideTooltip=function(){if(this.tooltip){this.tooltip.dataPoint=null;for(var t in this.tooltip.dom)if(this.tooltip.dom.hasOwnProperty(t)){var e=this.tooltip.dom[t];e&&e.parentNode&&e.parentNode.removeChild(e)}}},t.exports=s},function(t,e,i){function s(){this.armLocation=new o,this.armRotation={},this.armRotation.horizontal=0,this.armRotation.vertical=0,this.armLength=1.7,this.cameraLocation=new o,this.cameraRotation=new o(.5*Math.PI,0,0),this.calculateCameraOrientation()}var o=i(10);s.prototype.setArmLocation=function(t,e,i){this.armLocation.x=t,this.armLocation.y=e,this.armLocation.z=i,this.calculateCameraOrientation()},s.prototype.setArmRotation=function(t,e){void 0!==t&&(this.armRotation.horizontal=t),void 0!==e&&(this.armRotation.vertical=e,this.armRotation.vertical<0&&(this.armRotation.vertical=0),this.armRotation.vertical>.5*Math.PI&&(this.armRotation.vertical=.5*Math.PI)),(void 0!==t||void 0!==e)&&this.calculateCameraOrientation()},s.prototype.getArmRotation=function(){var t={};return t.horizontal=this.armRotation.horizontal,t.vertical=this.armRotation.vertical,t},s.prototype.setArmLength=function(t){void 0!==t&&(this.armLength=t,this.armLength<.71&&(this.armLength=.71),this.armLength>5&&(this.armLength=5),this.calculateCameraOrientation())},s.prototype.getArmLength=function(){return this.armLength},s.prototype.getCameraLocation=function(){return this.cameraLocation},s.prototype.getCameraRotation=function(){return this.cameraRotation},s.prototype.calculateCameraOrientation=function(){this.cameraLocation.x=this.armLocation.x-this.armLength*Math.sin(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.y=this.armLocation.y-this.armLength*Math.cos(this.armRotation.horizontal)*Math.cos(this.armRotation.vertical),this.cameraLocation.z=this.armLocation.z+this.armLength*Math.sin(this.armRotation.vertical),this.cameraRotation.x=Math.PI/2-this.armRotation.vertical,this.cameraRotation.y=0,this.cameraRotation.z=-this.armRotation.horizontal},t.exports=s},function(t,e,i){function s(t,e,i){this.data=t,this.column=e,this.graph=i,this.index=void 0,this.value=void 0,this.values=i.getDistinctValues(t.get(),this.column),this.values.sort(function(t,e){return t>e?1:e>t?-1:0}),this.values.length>0&&this.selectValue(0),this.dataPoints=[],this.loaded=!1,this.onLoadCallback=void 0,i.animationPreload?(this.loaded=!1,this.loadInBackground()):this.loaded=!0}var o=i(4);s.prototype.isLoaded=function(){return this.loaded},s.prototype.getLoadedProgress=function(){for(var t=this.values.length,e=0;this.dataPoints[e];)e++;return Math.round(e/t*100)},s.prototype.getLabel=function(){return this.graph.filterLabel},s.prototype.getColumn=function(){return this.column},s.prototype.getSelectedValue=function(){return void 0===this.index?void 0:this.values[this.index]; + +},s.prototype.getValues=function(){return this.values},s.prototype.getValue=function(t){if(t>=this.values.length)throw"Error: index out of range";return this.values[t]},s.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var s=new o(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(s),this.dataPoints[t]=e}return e},s.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},s.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},s.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},s.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},s.prototype.setIndex=function(t){if(!(ts&&(s=0),s>this.values.length-1&&(s=this.values.length-1),s},s.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,s=i+3;return s},s.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,s=this.leftToIndex(i);this.setIndex(s),o.preventDefault()},s.prototype._onMouseUp=function(t){this.frame.style.cursor="auto",o.removeEventListener(document,"mousemove",this.onmousemove),o.removeEventListener(document,"mouseup",this.onmouseup),o.preventDefault()},t.exports=s},function(t,e,i){function s(t,e,i,s){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,s)}s.prototype.setRange=function(t,e,i,s){this._start=t?t:0,this._end=e?e:0,this.setStep(i,s)},s.prototype.setStep=function(t,e){void 0===t||0>=t||(void 0!==e&&(this.prettyStep=e),this._step=this.prettyStep===!0?s.calculatePrettyStep(t):t)},s.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),s=2*Math.pow(10,Math.round(e(t/2))),o=5*Math.pow(10,Math.round(e(t/5))),n=i;return Math.abs(s-t)<=Math.abs(n-t)&&(n=s),Math.abs(o-t)<=Math.abs(n-t)&&(n=o),0>=n&&(n=1),n},s.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},s.prototype.getStep=function(){return this._step},s.prototype.start=function(){this._current=this._start-this._start%this._step},s.prototype.next=function(){this._current+=this._step},s.prototype.end=function(){return this._current>this._end},t.exports=s},function(t,e,i){function s(t,e,i,h){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n||i instanceof r)&&i instanceof Object){var u=h;h=i,i=u}var m=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{getScale:function(){return m.timeAxis.step.scale},getStep:function(){return m.timeAxis.step.step},toScreen:m._toScreen.bind(m),toGlobalScreen:m._toGlobalScreen.bind(m),toTime:m._toTime.bind(m),toGlobalTime:m._toGlobalTime.bind(m)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.timeAxis2=null,this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){m.emit("click",m.getEventProperties(t))}),this.on("doubletap",function(t){m.emit("doubleClick",m.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){m.emit("contextmenu",m.getEventProperties(t))},h&&this.setOptions(h),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),p=i(32);s.prototype=new h,s.prototype.redraw=function(){this.itemSet&&this.itemSet.markDirty({refreshItems:!0}),this._redraw()},s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var s=this._getDataRange();var o=void 0!=this.options.start?this.options.start:s.start,a=void 0!=this.options.end?this.options.end:s.end;this.setWindow(o,a,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},s.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],s=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),o=null,n=null;if(s.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===o||o>e)&&(o=e),(null===n||i>n)&&(n=i)}),null!==o&&null!==n){var r=(o+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-o)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},s.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var s=t.min("start");e=s?o.convert(s.start,"Date").valueOf():null;var n=t.max("start");n&&(i=o.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?o.convert(r.end,"Date").valueOf():Math.max(i,o.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},s.prototype.getEventProperties=function(t){var e=this.itemSet.itemFromTarget(t),i=this.itemSet.groupFromTarget(t),s=t.gesture?t.gesture.center.pageX:t.pageX,n=t.gesture?t.gesture.center.pageY:t.pageY,r=s-o.getAbsoluteLeft(this.dom.centerContainer),a=n-o.getAbsoluteTop(this.dom.centerContainer),h=this.itemSet.options.snap||null,d=this.body.util.getScale(),l=this.body.util.getStep(),c=this._toTime(r),p=h?h(c,d,l):c,u=o.getTarget(t),m=null;return null!=e?m="item":o.hasParent(u,this.timeAxis.dom.foreground)?m="axis":this.timeAxis2&&o.hasParent(u,this.timeAxis2.dom.foreground)?m="axis":o.hasParent(u,this.itemSet.dom.labelSet)?m="group-label":o.hasParent(u,this.customTime.bar)?m="custom-time":o.hasParent(u,this.currentTime.bar)?m="current-time":o.hasParent(u,this.dom.center)&&(m="background"),{event:t,item:e?e.id:null,group:i?i.groupId:null,what:m,pageX:s,pageY:n,x:r,y:a,time:c,snappedTime:p}},t.exports=s},function(t,e,i){function s(t,e,i,s){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=s;s=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,this.on("tap",function(t){h.emit("click",h.getEventProperties(t))}),this.on("doubletap",function(t){h.emit("doubleClick",h.getEventProperties(t))}),this.dom.root.oncontextmenu=function(t){h.emit("contextmenu",h.getEventProperties(t))},s&&this.setOptions(s),i&&this.setGroups(i),e?this.setItems(e):this._redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(35),l=i(26),c=i(27),p=i(34);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var s=void 0!=this.options.start?this.options.start:null,o=void 0!=this.options.end?this.options.end:null;this.setWindow(s,o,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},s.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},s.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},s.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var s=0;sr?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},s.prototype.getEventProperties=function(t){var e=t.gesture?t.gesture.center.pageX:t.pageX,i=t.gesture?t.gesture.center.pageY:t.pageY,s=e-o.getAbsoluteLeft(this.dom.centerContainer),n=i-o.getAbsoluteTop(this.dom.centerContainer),r=this._toTime(s),a=o.getTarget(t),h=null;o.hasParent(a,this.timeAxis.dom.foreground)?h="axis":this.timeAxis2&&o.hasParent(a,this.timeAxis2.dom.foreground)?h="axis":o.hasParent(a,this.linegraph.yAxisLeft.dom.frame)?h="data-axis":o.hasParent(a,this.linegraph.yAxisRight.dom.frame)?h="data-axis":o.hasParent(a,this.linegraph.legendLeft.dom.frame)?h="legend":o.hasParent(a,this.linegraph.legendRight.dom.frame)?h="legend":o.hasParent(a,this.customTime.bar)?h="custom-time":o.hasParent(a,this.currentTime.bar)?h="current-time":o.hasParent(a,this.dom.center)&&(h="background");var d=[],l=this.linegraph.yAxisLeft,c=this.linegraph.yAxisRight;return l.hidden||d.push(l.screenToValue(n)),c.hidden||d.push(c.screenToValue(n)),{event:t,what:h,pageX:e,pageY:i,x:s,y:n,time:r,value:d}},t.exports=s},function(t,e,i){var s=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var p=0,u=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(o.dayOfYear()),d.year(o.year()),d.subtract(7,"days"),l.dayOfYear(o.dayOfYear()),l.year(o.year()),l.subtract(7-p,"days"),u.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(o.date()),d.month(o.month()),d.year(o.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),u.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(o.month()),d.year(o.year()),d.subtract(1,"months"),l.month(o.month()),l.year(o.year()),l.subtract(1,"months"),l.add(p,"months"),u.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(o.year()),d.subtract(1,"years"),l.year(o.year()),l.subtract(1,"years"),l.add(p,"years"),u.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;u>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],s=0;s=e[s].start&&e[o].end<=e[s].end?e[o].remove=!0:e[o].start>=e[s].start&&e[o].start<=e[s].end?(e[s].end=e[o].end,e[o].remove=!0):e[o].end>=e[s].start&&e[o].end<=e[s].end&&(e[s].start=e[o].start,e[o].remove=!0));for(var s=0;s=r&&a>o){i=!0;break}}if(1==i&&o=e&&i>r&&(s+=r-n)}return s},e.correctTimeForHidden=function(t,i,o){return o=s(o).toDate().valueOf(),o-=e.getHiddenDurationBefore(t,i,o)},e.getHiddenDurationBefore=function(t,e,i){var o=0;i=s(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(o+=a-r)}return o},e.getAccumulatedHiddenDuration=function(t,e,i){for(var s=0,o=0,n=e.start,r=0;r=e.start&&h=i)break;s+=h-a}}return s},e.snapAwayFromHidden=function(t,i,s,o){var n=e.isHidden(i,t);return 1==n.hidden?0>s?1==o?n.startDate-(n.endDate-i)-1:n.startDate-1:1==o?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=s&&o>t)return{hidden:!0,startDate:s,endDate:o}}return{hidden:!1,startDate:s,endDate:o}}},function(t,e,i){function s(t,e,i,s,o,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,s,o)}s.prototype.setRange=function(t,e,i,s,o){this._start=void 0===o.min?t:o.min,this._end=void 0===o.max?e:o.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,s),this.setFirst(o)},s.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,s=1.2*i,o=t*(s/e),n=Math.round(Math.log(s)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=o){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},s.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},s.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},s.prototype.hasNext=function(){return this.current>=this.marginStart},s.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},s.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},s.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;s--){if("0"!=i[s]){if("."==i[s]||","==i[s]){i=i.slice(0,s);break}break}i=i.slice(0,s)}}else{var o="",n=i.indexOf("e");if(-1!=n&&(o=i.slice(n),i=i.slice(0,n)),n=Math.max(i.indexOf(","),i.indexOf(".")),-1===n?(0!==t&&(i+="."),n=i.length+t):0!==t&&(n+=t+1),n>i.length)for(var r=n-i.length;r>0;r--)i+="0";else i=i.slice(0,n);i+=o}return i},s.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=s},function(t,e,i){function s(t,e){var i=h().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("dragstart",this._onDragStart.bind(this)),this.body.emitter.on("drag",this._onDrag.bind(this)),this.body.emitter.on("dragend",this._onDragEnd.bind(this)),this.body.emitter.on("hold",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("DOMMouseScroll",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function o(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.pageX-r.getAbsoluteLeft(e),y:t.pageY-r.getAbsoluteTop(e)}}var r=i(1),a=i(47),h=i(44),d=i(25),l=i(15);s.prototype=new d,s.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},s.prototype.setRange=function(t,e,i,s){s!==!0&&(s=!1);var o=void 0!=t?r.convert(t,"Date").valueOf():null,n=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var a=this,h=this.start,d=this.end,c="number"==typeof i?i:500,p=(new Date).valueOf(),u=!1,m=function(){if(!a.props.touch.dragging){var t=(new Date).valueOf(),e=t-p,i=e>c,g=i||null===o?o:r.easeInOutQuad(e,h,o,c),v=i||null===n?n:r.easeInOutQuad(e,d,n,c);f=a._applyRange(g,v),l.updateHiddenDates(a.body,a.options.hiddenDates),u=u||f,f&&a.body.emitter.emit("rangechange",{start:new Date(a.start),end:new Date(a.end),byUser:s}),i?u&&a.body.emitter.emit("rangechanged",{start:new Date(a.start),end:new Date(a.end),byUser:s}):a.animateTimer=setTimeout(m,20)}};return m()}var f=this._applyRange(o,n);if(l.updateHiddenDates(this.body,this.options.hiddenDates),f){var g={start:new Date(this.start),end:new Date(this.end),byUser:s};this.body.emitter.emit("rangechange",g),this.body.emitter.emit("rangechanged",g)}},s.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},s.prototype._applyRange=function(t,e){var i,s=null!=t?r.convert(t,"Date").valueOf():this.start,o=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(o)||null===o)throw new Error('Invalid end "'+e+'"');if(s>o&&(o=s),null!==a&&a>s&&(i=a-s,s+=i,o+=i,null!=n&&o>n&&(o=n)),null!==n&&o>n&&(i=o-n,s-=i,o-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>o-s&&(this.end-this.start===h&&s>this.start&&od&&(d=0),o-s>d&&(this.end-this.start===d&&sthis.end?(s=this.start,o=this.end):(i=o-s-d,s+=i/2,o-=i/2))}var l=this.start!=s||this.end!=o;return s>=this.start&&s<=this.end||o>=this.start&&o<=this.end||this.start>=s&&this.start<=o||this.end>=s&&this.end<=o||this.body.emitter.emit("checkRangedItems"),this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t,e){return s.conversion(this.start,this.end,t,e)},s.conversion=function(t,e,i,s){return void 0===s&&(s=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-s)}:{offset:0,scale:1}},s.prototype._onDragStart=function(t){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},s.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;o(e);var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY;i-=this.deltaDifference;var s=this.props.touch.end-this.props.touch.start,n=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);s-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*s,h=this.props.touch.start+a,d=this.props.touch.end+a,c=l.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=l.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(c!=h||p!=d)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end),byUser:!0})}},s.prototype._onDragEnd=function(t){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end),byUser:!0}))},s.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=a.fakeGesture(this,t),o=n(s.center,this.body.dom.center),r=this._pointerToDate(o);this.zoom(i,r,e)}t.preventDefault()}},s.prototype._onTouch=function(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},s.prototype._onHold=function(){this.props.touch.allowDragging=!1},s.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable&&(this.props.touch.allowDragging=!1,t.gesture.touches.length>1)){this.props.touch.center||(this.props.touch.center=n(t.gesture.center,this.body.dom.center));var e=1/(t.gesture.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=s-o,a=i-o+(this.props.touch.start-(i-o))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=1-e>0?!1:!0,this.endToFront=e-1>0?!1:!0;var d=l.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=l.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(d!=a||c!=h)&&(this.props.touch.start=d,this.props.touch.end=c,this.scaleOffset=1-t.gesture.scale,a=d,h=c),this.setRange(a,h,!1,!0),this.startToFront=!1,this.endToFront=!0}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var s=this.body.domProps.center.height;return e=this.conversion(s),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=s-o,r=e-o+(this.start-(e-o))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=l.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),d=l.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||d!=a)&&(r=h,a=d),this.setRange(r,a,!1,!0),this.startToFront=!1,this.endToFront=!0},s.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},s.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,o=this.end-i;this.setRange(s,o)},t.exports=s},function(t,e,i){var s=.001; + +e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},e.stack=function(t,i,s){var o,n;if(s)for(o=0,n=t.length;n>o;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var s,o,n;for(s=0,o=t.length;o>s;s++)if(void 0!==t[s].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-i.vertical+se.top}},function(t,e,i){function s(t,e,i,o){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale="day",this.step=1,this.setRange(t,e,i),this.switchedDay=!1,this.switchedMonth=!1,this.switchedYear=!1,this.hiddenDates=o,void 0===o&&(this.hiddenDates=[]),this.format=s.FORMAT}var o=i(44),n=i(15),r=i(1);s.FORMAT={minorLabels:{millisecond:"SSS",second:"s",minute:"HH:mm",hour:"HH:mm",weekday:"ddd D",day:"D",month:"MMM",year:"YYYY"},majorLabels:{millisecond:"HH:mm:ss",second:"D MMMM HH:mm",minute:"ddd D MMMM",hour:"ddd D MMMM",weekday:"MMMM YYYY",day:"MMMM YYYY",month:"YYYY",year:""}},s.prototype.setFormat=function(t){var e=r.deepExtend({},s.FORMAT);this.format=r.deepExtend(e,t)},s.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},s.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},s.prototype.roundToMinor=function(){switch(this.scale){case"year":this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case"month":this.current.setDate(1);case"day":case"weekday":this.current.setHours(0);case"hour":this.current.setMinutes(0);case"minute":this.current.setSeconds(0);case"second":this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case"hour":this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1);break;case"month":this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},s.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},s.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current=new Date(this.current.valueOf()+1e3*this.step);break;case"minute":this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case"hour":this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case"millisecond":this.current=new Date(this.current.valueOf()+this.step);break;case"second":this.current.setSeconds(this.current.getSeconds()+this.step);break;case"minute":this.current.setMinutes(this.current.getMinutes()+this.step);break;case"hour":this.current.setHours(this.current.getHours()+this.step);break;case"weekday":case"day":this.current.setDate(this.current.getDate()+this.step);break;case"month":this.current.setMonth(this.current.getMonth()+this.step);break;case"year":this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case"millisecond":this.current.getMilliseconds()0?t.step:1,this.autoScale=!1)},s.prototype.setAutoScale=function(t){this.autoScale=t},s.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,s=864e5,o=36e5,n=6e4,r=1e3,a=1;1e3*e>t&&(this.scale="year",this.step=1e3),500*e>t&&(this.scale="year",this.step=500),100*e>t&&(this.scale="year",this.step=100),50*e>t&&(this.scale="year",this.step=50),10*e>t&&(this.scale="year",this.step=10),5*e>t&&(this.scale="year",this.step=5),e>t&&(this.scale="year",this.step=1),3*i>t&&(this.scale="month",this.step=3),i>t&&(this.scale="month",this.step=1),5*s>t&&(this.scale="day",this.step=5),2*s>t&&(this.scale="day",this.step=2),s>t&&(this.scale="day",this.step=1),s/2>t&&(this.scale="weekday",this.step=1),4*o>t&&(this.scale="hour",this.step=4),o>t&&(this.scale="hour",this.step=1),15*n>t&&(this.scale="minute",this.step=15),10*n>t&&(this.scale="minute",this.step=10),5*n>t&&(this.scale="minute",this.step=5),n>t&&(this.scale="minute",this.step=1),15*r>t&&(this.scale="second",this.step=15),10*r>t&&(this.scale="second",this.step=10),5*r>t&&(this.scale="second",this.step=5),r>t&&(this.scale="second",this.step=1),200*a>t&&(this.scale="millisecond",this.step=200),100*a>t&&(this.scale="millisecond",this.step=100),50*a>t&&(this.scale="millisecond",this.step=50),10*a>t&&(this.scale="millisecond",this.step=10),5*a>t&&(this.scale="millisecond",this.step=5),a>t&&(this.scale="millisecond",this.step=1)}},s.snap=function(t,e,i){var s=new Date(t.valueOf());if("year"==e){var o=s.getFullYear()+Math.round(s.getMonth()/12);s.setFullYear(Math.round(o/i)*i),s.setMonth(0),s.setDate(0),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("month"==e)s.getDate()>15?(s.setDate(1),s.setMonth(s.getMonth()+1)):s.setDate(1),s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0);else if("day"==e){switch(i){case 5:case 2:s.setHours(24*Math.round(s.getHours()/24));break;default:s.setHours(12*Math.round(s.getHours()/12))}s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("weekday"==e){switch(i){case 5:case 2:s.setHours(12*Math.round(s.getHours()/12));break;default:s.setHours(6*Math.round(s.getHours()/6))}s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)}else if("hour"==e){switch(i){case 4:s.setMinutes(60*Math.round(s.getMinutes()/60));break;default:s.setMinutes(30*Math.round(s.getMinutes()/30))}s.setSeconds(0),s.setMilliseconds(0)}else if("minute"==e){switch(i){case 15:case 10:s.setMinutes(5*Math.round(s.getMinutes()/5)),s.setSeconds(0);break;case 5:s.setSeconds(60*Math.round(s.getSeconds()/60));break;default:s.setSeconds(30*Math.round(s.getSeconds()/30))}s.setMilliseconds(0)}else if("second"==e)switch(i){case 15:case 10:s.setSeconds(5*Math.round(s.getSeconds()/5)),s.setMilliseconds(0);break;case 5:s.setMilliseconds(1e3*Math.round(s.getMilliseconds()/1e3));break;default:s.setMilliseconds(500*Math.round(s.getMilliseconds()/500))}else if("millisecond"==e){var n=i>5?i/2:1;s.setMilliseconds(Math.round(s.getMilliseconds()/n)*n)}return s},s.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case"year":case"month":case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case"weekday":case"day":case"hour":case"minute":case"second":case"millisecond":return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case"millisecond":case"second":case"minute":case"hour":return!0;default:return!1}switch(this.scale){case"millisecond":return 0==this.current.getMilliseconds();case"second":return 0==this.current.getSeconds();case"minute":return 0==this.current.getHours()&&0==this.current.getMinutes();case"hour":return 0==this.current.getHours();case"weekday":case"day":return 1==this.current.getDate();case"month":return 0==this.current.getMonth();case"year":return!1;default:return!1}},s.prototype.getLabelMinor=function(t){void 0==t&&(t=this.current);var e=this.format.minorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getLabelMajor=function(t){void 0==t&&(t=this.current);var e=this.format.majorLabels[this.scale];return e&&e.length>0?o(t).format(e):""},s.prototype.getClassName=function(){function t(t){return t/h%2==0?" even":" odd"}function e(t){return t.isSame(new Date,"day")?" today":t.isSame(o().add(1,"day"),"day")?" tomorrow":t.isSame(o().add(-1,"day"),"day")?" yesterday":""}function i(t){return t.isSame(new Date,"week")?" current-week":""}function s(t){return t.isSame(new Date,"month")?" current-month":""}function n(t){return t.isSame(new Date,"year")?" current-year":""}var r=o(this.current),a=r.locale?r.locale("en"):r.lang("en"),h=this.step;switch(this.scale){case"millisecond":return t(a.milliseconds()).trim();case"second":return t(a.seconds()).trim();case"minute":return t(a.minutes()).trim();case"hour":var d=a.hours();return 4==this.step&&(d=d+"-"+(d+4)),d+"h"+e(a)+t(a.hours());case"weekday":return a.format("dddd").toLowerCase()+e(a)+i(a)+t(a.date());case"day":var l=a.date(),c=a.format("MMMM").toLowerCase();return"day"+l+" "+c+s(a)+t(l-1);case"month":return a.format("MMMM").toLowerCase()+s(a)+t(a.month());case"year":var p=a.year();return"year"+p+n(a)+t(p);default:return""}},t.exports=s},function(t,e,i){function s(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null}var o=i(45),n=i(1);s.prototype.stack=!0,s.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setData=function(t){var e=void 0!=t.group&&this.data.group!=t.group;e&&this.parent.itemSet._moveToGroup(this,t.group),this.data=t,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},s.prototype.isVisible=function(t){return!1},s.prototype.show=function(){return!1},s.prototype.hide=function(){return!1},s.prototype.redraw=function(){},s.prototype.repositionX=function(){},s.prototype.repositionY=function(){},s.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",o(i,{preventDefault:!0}).on("tap",function(t){t.preventDefault(),t.stopPropagation(),e.parent.removeFromDataSet(e)}),t.appendChild(i),this.dom.deleteButton=i}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},s.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},s.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},s.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;it.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},s.prototype.show=r.prototype.show,s.prototype.hide=r.prototype.hide,s.prototype.repositionX=r.prototype.repositionX,s.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var s=this.data.subgroup,o=this.parent.subgroups,r=o[s].index;if(1==e){i=this.parent.subgroups[s].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in o)o.hasOwnProperty(h)&&1==o[h].visible&&o[h].indexr&&(a+=l)}i=this.parent.subgroups[s].height+t.item.vertical,this.dom.box.style.top=this.parent.height-d+a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=s},function(t,e,i){function s(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);o.call(this,t,e,i)}{var o=i(20);i(1)}s.prototype=new o(null,null,null),s.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},s.prototype.show=function(){this.displayed||this.redraw()},s.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.displayed=!1}},s.prototype.repositionX=function(t){var e,i,s=this.parent.width,o=this.conversion.toScreen(this.data.start),n=this.conversion.toScreen(this.data.end);(void 0===t||t===!0)&&(-s>o&&(o=-s),n>2*s&&(n=2*s));var r=Math.max(n-o,1);switch(this.overflow?(this.left=o,this.width=r+this.props.content.width,i=this.props.content.width):(this.left=o,this.width=r,i=Math.min(n-o-2*this.options.padding,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-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((r-i-2*this.options.padding)/2,0)+"px";break;default:e=this.overflow?n>0?Math.max(-o,0):-i:0>o?Math.min(-o,n-o-i-2*this.options.padding):0,this.dom.content.style.left=e+"px"}},s.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},s.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},s.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=s},function(t,e,i){function s(t,e){this.options=null,this.props=null}s.prototype.setOptions=function(t){t&&util.extend(this.options,t)},s.prototype.redraw=function(){return!1},s.prototype.destroy=function(){},s.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=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=o.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var o=i(1),n=i(25),r=i(44),a=i(48);s.prototype=new n,s.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},s.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},s.prototype.setOptions=function(t){t&&o.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},s.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=new Date((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),s=this.options.locales[this.options.locale],o=s.current+" "+s.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=i+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},s.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},s.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},s.prototype.setCurrentTime=function(t){var e=o.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},s.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en",id:0},this.options=n.extend({},this.defaultOptions),this.customTime=e&&e.time?e.time:new Date,this.eventParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(25),a=i(44),h=i(48);s.prototype=new r,s.prototype.setOptions=function(t){t&&(n.selectiveExtend(["showCustomTime","locale","locales","id"],this.options,t),this.options.id&&this.redraw())},s.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=o(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},s.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},s.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],s=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=e+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},s.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},s.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},s.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},s.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.body.util.toScreen(this.eventParams.customTime)+e,s=this.body.util.toTime(i);this.setCustomTime(s),this.body.emitter.emit("timechange",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},s.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{id:this.options.id,time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=s},function(t,e,i){function s(t,e,i,s){this.id=o.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=o.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var o=i(1),n=i(2),r=i(25),a=i(16);s.prototype=new r,s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];o.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%", +this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},s.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,s=4,o=s+.5*i;t="left"==this.options.orientation?s:this.width-e-s;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,o,this.svgElements,this.svg,e,i),o+=i+s));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},s.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},s.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},s.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},s.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.left.width,this.props.height=this.body.domProps.left.height):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px",this.props.width=this.body.domProps.right.width,this.props.height=this.body.domProps.right.height),t=this._redrawLabels(),t=this._isResized()||t,1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n)}return t},s.prototype._redrawLabels=function(){var t=!1;n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var e=this.options.orientation,i=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,s=new a(this.range.start,this.range.end,i,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=s;var o=(this.dom.frame.offsetHeight-s.deadSpace*(this.dom.frame.offsetHeight/s.marginRange))/((s.marginRange-s.deadSpace)/s.step);this.stepPixels=o;var r=this.height/o,h=0;if(0==this.master){o=this.stepPixelsForced,h=Math.round(this.dom.frame.offsetHeight/o-r);for(var d=0;.5*h>d;d++)s.previous();if(r=this.height/o,-1!=this.zeroCrossing&&1==this.options.alignZeros){var l=s.marginEnd/s.step-this.zeroCrossing;if(l>0)for(var d=0;l>d;d++)s.next();else if(0>l)for(var d=0;-l>d;d++)s.previous()}}else r+=.25;this.valueAtZero=s.marginEnd;var c,p=0,u=1;void 0!==this.options.format[e]&&(c=this.options.format[e].decimals),this.maxLabelSize=0;for(var m=0;u=0&&this._redrawLabel(m-2,s.getCurrent(c),e,"yAxis major",this.props.majorCharHeight),this._redrawLine(m,e,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(m,e,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==s.current&&(this.zeroCrossing=u),u++}this.conversionFactor=0==this.master?m/(this.valueAtZero-s.current):this.dom.frame.offsetHeight/s.marginRange;var g=0;void 0!==this.options.title[e]&&void 0!==this.options.title[e].text&&(g=this.props.titleCharHeight);var v=1==this.options.icons?Math.max(this.options.iconWidth,g)+this.options.labelOffsetX+15:g+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-v&&1==this.options.visible?(this.width=this.maxLabelSize+v,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+v),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),t=!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),t=!1),t},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype.screenToValue=function(t){return this.valueAtZero-t/this.conversionFactor},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSizep;p++){var m=this.visibleItems[p];m.repositionY(e)}return s},s.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var s=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(o.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(s.subgroups[t.data.subgroup].height=Math.max(s.subgroups[t.data.subgroup].height,t.height),s.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,o.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=0;return e=Math.max(e,this.props.label.height)},s.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},s.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},s.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},s.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1};if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!o(n));r--)void 0===s[n.id]&&(s[n.id]=!0,i.push(n));for(r=t+1;ro;o++){var r=this.visibleItems[o];r.repositionY(e)}return s},s.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},snap:h.snap,onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,s){i._onAdd(e.items)},update:function(t,e,s){i._onUpdate(e.items)},remove:function(t,e,s){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,s){i._onAddGroups(e.items)},update:function(t,e,s){i._onUpdateGroups(e.items)},remove:function(t,e,s){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(3),a=i(4),h=i(19),d=i(25),l=i(30),c=i(31),p=i(22),u=i(23),m=i(24),f=i(21),g="__ungrouped__",v="__background__";s.prototype=new d,s.types={background:f,box:p,range:m,point:u},s.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new c(v,null,this);r.show(),this.groups[v]=r,this.hammer=o(this.body.dom.centerContainer,{preventDefault:!0}),this.hammer.on("touch",this._onTouch.bind(this)),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("hold",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},s.prototype.setOptions=function(t){if(t){var e=["type","align","order","padding","stack","selectable","groupOrder","dataAttributes","template","hide","snap"];n.selectiveExtend(e,this.options,t),"orientation"in t&&("string"==typeof t.orientation?this.options.orientation=t.orientation:"object"==typeof t.orientation&&"item"in t.orientation&&(this.options.orientation=t.orientation.item)),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},s.prototype.markDirty=function(t){this.groupIds=[],this.stackDirty=!0,t&&t.refreshItems&&n.forEach(this.items,function(t){t.dirty=!0,t.displayed&&t.redraw()})},s.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},s.prototype.setSelection=function(t){var e,i,s,o;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)s=this.selection[e],o=this.items[s],o&&o.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],o=this.items[s],o&&(this.selection.push(s),o.select())},s.prototype.getSelection=function(){return this.selection.concat([])},s.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),s=[];for(var o in this.groups)if(this.groups.hasOwnProperty(o))for(var n=this.groups[o],r=n.visibleItems,a=0;ae&&s.push(h.id)}return s},s.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},s.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,s=this.options,o=s.orientation,r=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,p=this._firstGroup(),u={item:t.item,axis:t.axis},m={item:t.item,axis:t.item.vertical/2},f=0,g=t.axis+t.item.vertical;return this.groups[v].redraw(e,m,c),n.forEach(this.groups,function(t){var i=t==p?u:m,s=t.redraw(e,i,c);r=s||r,f+=t.height}),f=Math.max(f,g),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==o?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},s.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[g];return i||null},s.prototype._updateUngrouped=function(){{var t,e,i=this.groups[g];this.groups[v]}if(this.groupsData){if(i){i.hide(),delete this.groups[g];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var s=this._getGroupId(t.data),o=this.groups[s];o&&o.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new l(n,r,this),this.groups[g]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},s.prototype.getLabelSet=function(){return this.dom.labelSet},s.prototype.setItems=function(t){var e,i=this,s=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(n.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,o)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},s.prototype.getItems=function(){return this.itemsData},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},s.prototype.getGroups=function(){return this.groupsData},s.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},s.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},s.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?v:this.groupsData?t.group:g},s.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=e._getType(i),r=s.types[n];if(o&&(r&&o instanceof r?e._updateItem(o,i):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');o=new r(i,e.conversion,e.options),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},s.prototype._onAdd=s.prototype._onUpdate,s.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},s.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},s.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},s.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==g||t==v)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);n.extend(o,{height:null}),s=new l(t,i,e),e.groups[t]=s;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change",{queue:!0})},s.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},s.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)}},s.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||s.length>0)&&this.body.emitter.emit("select",{items:r})}},s.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.options.snap||null,s=this.itemFromTarget(t);if(s){var o=e.itemsData.get(s.id);this.options.onUpdate(o,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var r=n.getAbsoluteLeft(this.dom.frame),a=t.gesture.center.pageX-r,h=this.body.util.toTime(a),d=this.body.util.getScale(),l=this.body.util.getStep(),c={start:i?i(h,d,l):h,content:"new item"};if("range"===this.options.type){var p=this.body.util.toTime(a+this.props.width/5);c.end=i?i(p,d,l):p}c[this.itemsData._fieldId]=n.randomUUID();var u=this.groupFromTarget(t);u&&(c.group=u.groupId),this.options.onAdd(c,function(t){t&&e.itemsData.getDataSet().add(t)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=this.itemFromTarget(t);if(i){e=this.getSelection();var o=t.gesture.touches[0]&&t.gesture.touches[0].shiftKey||!1;if(o){e.push(i.id);var n=s._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&!(a instanceof f)&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},s._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},s.prototype.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},s.prototype.groupFromTarget=function(t){for(var e=t.gesture?t.gesture.center.pageY:t.pageY,i=0;ia&&ea)return o}else if(0===i&&e"));this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},s.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,s=this.options.iconSize,o=.75*this.options.iconSize,r=e+.5*o+3;this.svg.style.width=s+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,s,o),r+=o+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=s},function(t,e,i){function s(t,e){this.id=o.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=o.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.updateSVGheight=!1,this.updateSVGheightOnResize=!1;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e,s){i._onAdd(e.items)},update:function(t,e,s){i._onUpdate(e.items)},remove:function(t,e,s){i._onRemove(e.items)}},this.groupListeners={add:function(t,e,s){i._onAddGroups(e.items)},update:function(t,e,s){i._onUpdateGroups(e.items)},remove:function(t,e,s){i._onRemoveGroups(e.items)}},this.items={},this.selection=[],this.lastStart=this.body.range.start,this.touchParams={},this.svgElements={},this.setOptions(e),this.groupsUsingDefaultStyles=[0],this.COUNTER=0,this.body.emitter.on("rangechanged",function(){i.lastStart=i.body.range.start,i.svg.style.left=o.option.asSize(-i.props.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var o=i(1),n=i(2),r=i(3),a=i(4),h=i(25),d=i(28),l=i(29),c=i(33),p=i(50),u="__ungrouped__";s.prototype=new h,s.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},s.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","height","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?(this.updateSVGheight=!0,this.updateSVGheightOnResize=!0):void 0!==this.body.domProps.centerContainer.height&&void 0!==t.graphHeight&&parseInt((t.graphHeight+"").replace("px",""))0){var d=this.body.util.toGlobalTime(-this.body.domProps.root.width),l=this.body.util.toGlobalTime(2*this.body.domProps.root.width),c={};for(this._getRelevantData(a,c,d,l),this._applySampling(a,c),e=0;eu&&console.log("WARNING: there may be an infinite loop in the _updateGraph emitter cycle."),this.COUNTER=0,this.abortedGraphUpdate=!1,e=0;e0)for(r=0;rs){d.push(h);break}d.push(h)}}else for(a=0;ai&&h.x0)for(var s=0;s0){var n=1,r=o.length,a=this.body.util.toGlobalScreen(o[o.length-1].x)-this.body.util.toGlobalScreen(o[0].x),h=r/a;n=Math.min(Math.ceil(.2*r),Math.max(1,Math.round(h)));for(var d=[],l=0;r>l;l+=n)d.push(o[l]);e[t[s]]=d}}},s.prototype._getYRanges=function(t,e,i){var s,o,n,r,a=[],h=[];if(t.length>0){for(n=0;n0&&(o=this.groups[t[n]],"stack"==r.barChart.handleOverlap&&"bar"==r.style?"left"==r.yAxisOrientation?a=a.concat(o.getYRange(s)):h=h.concat(o.getYRange(s)):i[t[n]]=o.getYRange(s,t[n]));p.getStackedBarYRange(a,i,t,"__barchartLeft","left"),p.getStackedBarYRange(h,i,t,"__barchartRight","right")}},s.prototype._updateYAxis=function(t,e){var i,s,o=!1,n=!1,r=!1,a=1e9,h=1e9,d=-1e9,l=-1e9;if(t.length>0){for(var c=0;ci?i:a,d=s>d?s:d):(r=!0,h=h>i?i:h,l=s>l?s:l));1==n&&this.yAxisLeft.setRange(a,d),1==r&&this.yAxisRight.setRange(h,l)}return o=this._toggleAxisVisiblity(n,this.yAxisLeft)||o,o=this._toggleAxisVisiblity(r,this.yAxisRight)||o,1==r&&1==n?(this.yAxisLeft.drawIcons=!0,this.yAxisRight.drawIcons=!0):(this.yAxisLeft.drawIcons=!1,this.yAxisRight.drawIcons=!1),this.yAxisRight.master=!n,0==this.yAxisRight.master?(this.yAxisLeft.lineOffset=1==r?this.yAxisRight.width:0,o=this.yAxisLeft.redraw()||o,this.yAxisRight.stepPixelsForced=this.yAxisLeft.stepPixels,this.yAxisRight.zeroCrossing=this.yAxisLeft.zeroCrossing,o=this.yAxisRight.redraw()||o):o=this.yAxisRight.redraw()||o,-1!=t.indexOf("__barchartLeft")&&t.splice(t.indexOf("__barchartLeft"),1),-1!=t.indexOf("__barchartRight")&&t.splice(t.indexOf("__barchartRight"),1),o},s.prototype._toggleAxisVisiblity=function(t,e){var i=!1;return 0==t?e.dom.frame.parentNode&&0==e.hidden&&(e.hide(),i=!0):e.dom.frame.parentNode||1!=e.hidden||(e.show(),i=!0),i},s.prototype._convertXcoordinates=function(t){for(var e,i,s=[],o=this.body.util.toScreen,n=0;ny;)y++,l=h.getCurrent(),c=h.isMajor(),u=h.getClassName(),f=m,m=this.body.util.toScreen(l),g=m-f,p&&(p.style.width=g+"px"),this.options.showMinorLabels&&this._repaintMinorText(m,h.getLabelMinor(),t,u),c&&this.options.showMajorLabels?(m>0&&(void 0==v&&(v=m),this._repaintMajorText(m,h.getLabelMajor(),t,u)),p=this._repaintMajorLine(m,t,u)):p=this._repaintMinorLine(m,t,u),h.next();if(this.options.showMajorLabels){var b=this.body.util.toTime(0),_=h.getLabelMajor(b),x=_.length*(this.props.majorCharWidth||10)+10;(void 0==v||v>x)&&this._repaintMajorText(0,_,t,u)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i,s){var o=this.dom.redundant.minorTexts.shift();if(!o){var n=document.createTextNode("");o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.minorTexts.push(o),o.childNodes[0].nodeValue=e,o.style.top="top"==i?this.props.majorLabelHeight+"px":"0",o.style.left=t+"px",o.className="text minor "+s},s.prototype._repaintMajorText=function(t,e,i,s){var o=this.dom.redundant.majorTexts.shift();if(!o){var n=document.createTextNode(e);o=document.createElement("div"),o.appendChild(n),this.dom.foreground.appendChild(o)}this.dom.majorTexts.push(o),o.childNodes[0].nodeValue=e,o.className="text major "+s,o.style.top="top"==i?"0":this.props.minorLabelHeight+"px",o.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?o.majorLabelHeight+"px":this.body.domProps.top.height+"px",s.style.height=o.minorLineHeight+"px",s.style.left=t-o.minorLineWidth/2+"px",s.className="grid vertical minor "+i,s},s.prototype._repaintMajorLine=function(t,e,i){var s=this.dom.redundant.lines.shift();s||(s=document.createElement("div"),this.dom.background.appendChild(s)),this.dom.lines.push(s);var o=this.props;return s.style.top="top"==e?"0":this.body.domProps.top.height+"px",s.style.left=t-o.majorLineWidth/2+"px",s.style.height=o.majorLineHeight+"px",s.className="grid vertical major "+i,s},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},t.exports=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._determineBrowserMethod(),this._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=0,this.physicsTime=0,this.runDoubleSpeed=!1,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null};var o=function(t,e,i,s){if(e==t)return.5;var o=1/(e-t);return Math.max(0,(s-t)*o)};this.defaultOptions={nodes:{customScalingFunction:o,mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,fontStrokeWidth:0,fontStrokeColor:"#ffffff",fontDrawThreshold:3,scaleFontWithValue:!1,fontSizeMin:14,fontSizeMax:30,fontSizeMaxVisible:30,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{customScalingFunction:o,widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},opacity:1,fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",fontStrokeWidth:0,fontStrokeColor:"white",labelAlignment:"horizontal",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from",useGradients:!1},configurePhysics:!1,physics:{barnesHut:{enabled:!0,thetaInverted:2,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{enabled:!1,centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},damping:null,centralGravity:null,springLength:null,springConstant:null},clustering:{enabled:!1,initialMaxNodes:100,clusterThreshold:500,reduceToNodes:300,chainThreshold:.4,clusterEdgeThreshold:20,sectorThreshold:100,screenSizeThreshold:.2,fontSizeMultiplier:4,maxFontSize:1e3,forceAmplification:.1,distanceAmplification:.1,edgeGrowth:20,nodeScaling:{width:1,height:1,radius:1},maxNodeSizeIncrements:600,activeAreaBoxSize:80,clusterLevelDifference:2,clusterByZoom:!0},navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02},bindToWindow:!0},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150, +nodeSpacing:100,direction:"UD",layout:"hubsize"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},maxVelocity:50,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,zoomExtentOnStabilize:!0,locale:"en",locales:_,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0,useDefaultGroups:!0},this.constants=a.extend({},this.defaultOptions),this.pixelRatio=1,this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers=[],this.manipulationHammers=[],this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.animating=!1,this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0,this.redrawRequested=!1;var n=this;this.groups=new u,this.images=new m,this.images.setOnloadCallback(function(t){n._requestRedraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadPhysicsSystem(),this._create(),this._loadSectorSystem(),this._loadClusterSystem(),this._loadSelectionSystem(),this._loadHierarchySystem(),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1),this.setOptions(i),this.freezeSimulationEnabled=!1,this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.calculationNodes={},this.calculationNodeIndices=[],this.nodeIndices=[],this.nodes={},this.edges={},this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.pointerPosition={x:0,y:0},this.areaCenter={},this.scale=1,this.previousScale=this.scale,this.nodesData=null,this.edgesData=null,this.nodesListeners={add:function(t,e){n._addNodes(e.items),n.start()},update:function(t,e){n._updateNodes(e.items),n.start()},remove:function(t,e){n._removeNodes(e.items),n.start()}},this.edgesListeners={add:function(t,e){n._addEdges(e.items),n.start()},update:function(t,e){n._updateEdges(e.items),n.start()},remove:function(t,e){n._removeEdges(e.items),n.start()}},this.moving=!0,this.timer=void 0,this.setData(e,this.constants.clustering.enabled||this.constants.hierarchicalLayout.enabled),this.initializing=!1,1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent({duration:0},!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(56),n=i(45),r=i(57),a=i(1),h=i(47),d=i(3),l=i(4),c=i(42),p=i(43),u=i(38),m=i(39),f=i(40),g=i(37),v=i(41),y=i(52),b=i(53),_=i(54);i(55),o(s.prototype),s.prototype._determineBrowserMethod=function(){var t=navigator.userAgent.toLowerCase();this.requiresTimeout=!1,-1!=t.indexOf("msie 9.0")?this.requiresTimeout=!0:-1!=t.indexOf("safari")&&t.indexOf("chrome")<=-1&&(this.requiresTimeout=!0)},s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;e0)for(var r=0;re.boundingBox.left&&(o=e.boundingBox.left),ne.boundingBox.bottom&&(i=e.boundingBox.top),se.boundingBox.left&&(o=e.boundingBox.left),ne.boundingBox.bottom&&(i=e.boundingBox.top),s.5*this.nodeIndices.length)return void this.zoomExtent(t,!1,i);s=this._getRange(t.nodes);var h=this.nodeIndices.length;o=1==this.constants.smoothCurves?1==this.constants.clustering.enabled&&h>=this.constants.clustering.initialMaxNodes?49.07548/(h+142.05338)+91444e-8:12.662/(h+7.4147)+.0964822:1==this.constants.clustering.enabled&&h>=this.constants.clustering.initialMaxNodes?77.5271985/(h+187.266146)+476710517e-13:30.5062972/(h+19.93597763)+.08413486;var d=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);o*=d}else{s=this._getRange(t.nodes);var l=1.1*Math.abs(s.maxX-s.minX),c=1.1*Math.abs(s.maxY-s.minY),p=this.frame.canvas.clientWidth/l,u=this.frame.canvas.clientHeight/c;o=u>=p?p:u}o>1&&(o=1);var m=this._findCenter(s);if(0==i){var t={position:m,scale:o,animation:t};this.moveTo(t),this.moving=!0,this.start()}else m.x*=o,m.y*=o,m.x-=.5*this.frame.canvas.clientWidth,m.y-=.5*this.frame.canvas.clientHeight,this._setScale(o),this._setTranslation(-m.x,-m.y)},s.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},s.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this._unselectAll(!0),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(1==this.constants.dataManipulation.enabled&&this._createManipulatorBar(),this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=c.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var s=p.parseGephi(t.gephi);return void this.setData(s)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this._putDataInSector(),0==e&&(1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):1==this.constants.stabilize&&this._stabilize(),this.start()),this.initializing=!1},s.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","clustering","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(a.selectiveNotDeepExtend(i,this.constants,t),a.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),a.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),this.groups.useDefaultGroups=this.constants.useDefaultGroups,t.physics&&(a.mergeOptions(this.constants.physics,t.physics,"barnesHut"),a.mergeOptions(this.constants.physics,t.physics,"repulsion"),t.physics.hierarchicalRepulsion)){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1;for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),a.mergeOptions(this.constants,t,"smoothCurves"),a.mergeOptions(this.constants,t,"hierarchicalLayout"),a.mergeOptions(this.constants,t,"clustering"),a.mergeOptions(this.constants,t,"navigation"),a.mergeOptions(this.constants,t,"keyboard"),a.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(a.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover)),this.constants.edges.inheritColor=!1),t.edges.fontColor||void 0!==t.edges.color&&(a.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var s=a.parseColor(t.nodes.color);this.constants.nodes.color.background=s.background,this.constants.nodes.color.border=s.border,this.constants.nodes.color.highlight.background=s.highlight.background,this.constants.nodes.color.highlight.border=s.highlight.border,this.constants.nodes.color.hover.background=s.hover.background,this.constants.nodes.color.hover.border=s.hover.border}if(t.groups)for(var o in t.groups)if(t.groups.hasOwnProperty(o)){var n=t.groups[o];this.groups.add(o,n)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=a.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?this.activator||(this.activator=new b(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.');this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._bindHammer(),this._createKeyBinds(),this._markAllEdgesAsDirty(),this.setSize(this.constants.width,this.constants.height),this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.start()}},s.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.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._bindHammer()},s.prototype._bindHammer=function(){var t=this;void 0!==this.hammer&&this.hammer.dispose(),this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",t._onTap.bind(t)),this.hammer.on("doubletap",t._onDoubleTap.bind(t)),this.hammer.on("hold",t._onHold.bind(t)),this.hammer.on("touch",t._onTouch.bind(t)),this.hammer.on("dragstart",t._onDragStart.bind(t)),this.hammer.on("drag",t._onDrag.bind(t)),this.hammer.on("dragend",t._onDragEnd.bind(t)),1==this.constants.zoomable&&(this.hammer.on("mousewheel",t._onMouseWheel.bind(t)),this.hammer.on("DOMMouseScroll",t._onMouseWheel.bind(t)),this.hammer.on("pinch",t._onPinch.bind(t))),this.hammer.on("mousemove",t._onMouseMoveTitle.bind(t)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",t._onRelease.bind(t)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=r(1==this.constants.keyboard.bindToWindow?{container:window,preventDefault:!1}:{container:this.frame,preventDefault:!1}),this.keycharm.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.keycharm.bind("up",this._moveUp.bind(t),"keydown"),this.keycharm.bind("up",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("down",this._moveDown.bind(t),"keydown"),this.keycharm.bind("down",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("left",this._moveLeft.bind(t),"keydown"),this.keycharm.bind("left",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("right",this._moveRight.bind(t),"keydown"),this.keycharm.bind("right",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("=",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("=",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num+",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("num+",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("num-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("[",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("[",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("]",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("]",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pageup",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("pageup",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.keycharm.bind("esc",this._createManipulatorBar.bind(t)),this.keycharm.bind("delete",this._deleteSelected.bind(t)))},s.prototype.destroy=function(){this.start=function(){},this.redraw=function(){},this.timer=!1,this._cleanupPhysicsConfiguration(),this.keycharm.reset(),this.hammer.dispose(),this.off(),this._recursiveDOMDelete(this.containerElement)},s.prototype._recursiveDOMDelete=function(t){for(;1==t.hasChildNodes();)this._recursiveDOMDelete(t.firstChild),t.removeChild(t.firstChild)},s.prototype._getPointer=function(t){return{x:t.pageX-a.getAbsoluteLeft(this.frame.canvas),y:t.pageY-a.getAbsoluteTop(this.frame.canvas)}},s.prototype._onTouch=function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this.touchTime=(new Date).valueOf(),this._handleTouch(this.drag.pointer))},s.prototype._onDragStart=function(t){this._handleDragStart(t)},s.prototype._handleDragStart=function(t){void 0===this.drag.pointer&&this._onTouch(t);var e=this._getNodeAt(this.drag.pointer);if(this.drag.dragging=!0,this.drag.selection=[],this.drag.translation=this._getTranslation(),this.drag.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,this.drag.nodeId=e.id,e.isSelected()||this._selectObject(e,!1),this.emit("dragStart",{nodeIds:this.getSelection().nodes});for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],o={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,this.drag.selection.push(o)}}},s.prototype._onDrag=function(t){this._handleOnDrag(t)},s.prototype._handleOnDrag=function(t){if(!this.drag.pinched){this.releaseNode();var e=this._getPointer(t.gesture.center),i=this,s=this.drag,o=s.selection;if(o&&o.length&&1==this.constants.dragNodes){var n=e.x-s.pointer.x,r=e.y-s.pointer.y;o.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+n)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.dragNetwork){if(void 0===this.drag.pointer)return void this._handleDragStart(t);var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw()}}},s.prototype._onDragEnd=function(t){this._handleDragEnd(t)},s.prototype._handleDragEnd=function(t){this.drag.dragging=!1;var e=this.drag.selection;e&&e.length?(e.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed}),this.moving=!0,this.start()):this._redraw(),0==this.draggingNodes?this.emit("dragEnd",{nodeIds:[]}):this.emit("dragEnd",{nodeIds:this.getSelection().nodes})},s.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},s.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},s.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},s.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},s.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},s.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=null;void 0!==this.drag&&1==this.drag.dragging&&(s=this.DOMtoCanvas(this.drag.pointer));var o=this._getTranslation(),n=t/i,r=(1-n)*e.x+o.x*n,a=(1-n)*e.y+o.y*n;if(this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(r,a),this.updateClustersDefault(),null!=s){var h=this.canvasToDOM(s);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}return this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},s.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var o=h.fakeGesture(this,t),n=this._getPointer(o.center);this._zoom(i,n)}t.preventDefault()},s.prototype._onMouseMoveTitle=function(t){var e=h.fakeGesture(this,t),i=this._getPointer(e.center),s=!1;if(void 0!==this.popup&&(this.popup.hidden===!1&&this._checkHidePopup(i),this.popup.hidden===!1&&(s=!0,this.popup.setPosition(i.x+3,i.y-5),this.popup.show())),0==this.constants.keyboard.bindToWindow&&1==this.constants.keyboard.enabled&&this.frame.focus(),s===!1){var o=this,n=function(){o._checkShowPopup(i)};this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(n,this.constants.tooltip.delay))}if(1==this.constants.hover){for(var r in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(r)&&(this.hoverObj.edges[r].hover=!1,delete this.hoverObj.edges[r]);var a=this._getNodeAt(i);null==a&&(a=this._getEdgeAt(i)),null!=a&&this._hoverObject(a);for(var d in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(d)&&(a instanceof f&&a.id!=d||a instanceof g||null==a)&&(this._blurObject(this.hoverObj.nodes[d]),delete this.hoverObj.nodes[d]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=void 0===this.popupObj?"":this.popupObj.id,o=!1,n="node";if(void 0==this.popupObj){var r=this.nodes,a=[];for(e in r)if(r.hasOwnProperty(e)){var h=r[e];h.isOverlappingWith(i)&&void 0!==h.getTitle()&&a.push(e)}a.length>0&&(this.popupObj=this.nodes[a[a.length-1]],o=!0)}if(void 0===this.popupObj&&0==o){var d=this.edges,l=[];for(e in d)if(d.hasOwnProperty(e)){var c=d[e];c.connected&&void 0!==c.getTitle()&&c.isOverlappingWith(i)&&l.push(e)}l.length>0&&(this.popupObj=this.edges[l[l.length-1]],n="edge")}this.popupObj?this.popupObj.id!=s&&(void 0===this.popup&&(this.popup=new v(this.frame,this.constants.tooltip)),this.popup.popupTargetType=n,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.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){var e={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},i=!1;if("node"==this.popup.popupTargetType){if(i=this.nodes[this.popup.popupTargetId].isOverlappingWith(e),i===!0){var s=this._getNodeAt(t);i=s.id==this.popup.popupTargetId}}else null===this._getNodeAt(t)&&(i=this.edges[this.popup.popupTargetId].isOverlappingWith(e));i===!1&&(this.popupObj=void 0,this.popup.hide())},s.prototype.setSize=function(t,e){var i=!1,s=this.frame.canvas.width,o=this.frame.canvas.height;t!=this.constants.width||e!=this.constants.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.constants.width=t,this.constants.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),1==i&&this.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:s*this.pixelRatio,oldHeight:o*this.pixelRatio})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(Array.isArray(t))this.nodesData=new d,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new d}if(e&&a.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;a.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},s.prototype._addNodes=function(t){for(var e,i=this.nodesData._fieldId||null,s=0,o=t.length;o>s;s++){e=t[s];var n=this.nodesData.get(e);i&&(n.id=n[i]);var r=new f(n,this.images,this.groups,this.constants);if(this.nodes[e]=r,!(0!=r.xFixed&&0!=r.yFixed||null!==r.x&&null!==r.y)){var a=1*t.length+10,h=2*Math.PI*Math.random();0==r.xFixed&&(r.x=a*Math.cos(h)),0==r.yFixed&&(r.y=a*Math.sin(h))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},s.prototype._updateNodes=function(t){for(var e=this.nodesData.get(t),i=this.nodes,s=0,o=t.length;o>s;s++){var n=t[s],r=i[n],a=e[s];r?r.setProperties(a,this.constants):(r=new f(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i),this._markAllEdgesAsDirty()},s.prototype._markAllEdgesAsDirty=function(){for(var t in this.edges)this.edges[t].colorDirty=!0},s.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++)void 0!==this.selectionObj.nodes[t[i]]&&(this.nodes[t[i]].unselect(),this._removeFromSelection(this.nodes[t[i]]));for(var i=0,s=t.length;s>i;i++){var o=t[i];delete e[o]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},s.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof d||t instanceof l)this.edgesData=t;else if(Array.isArray(t))this.edgesData=new d,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new d}if(e&&a.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;a.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},s.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=this.edgesData._fieldId,o=0,n=t.length;n>o;o++){var r=t[o],a=e[r];a&&a.disconnect();var h=i.get(r,{showInternalIds:!0});s&&(h.id=h[s]),e[r]=new g(h,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},s.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new g(r,this,this.constants),this.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},s.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++)void 0!==this.selectionObj.edges[t[i]]&&(e[t[i]].unselect(),this._removeFromSelection(e[t[i]]));for(var i=0,s=t.length;s>i;i++){var o=t[i],n=e[o];n&&(null!=n.via&&delete this.sectors.support.nodes[n.via.id],n.disconnect(),delete e[o])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},s.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[],e[t].dynamicEdges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},s.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0,o=0;for(e in t)if(t.hasOwnProperty(e)){var n=t[e].getValue();void 0!==n&&(i=void 0===i?n:Math.min(n,i),s=void 0===s?n:Math.max(n,s),o+=n)}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s,o)},s.prototype.redraw=function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},s.prototype._requestRedraw=function(t){this.redrawRequested!==!0&&(this.redrawRequested=!0,this.requiresTimeout===!0?window.setTimeout(this._redraw.bind(this,t),0):window.requestAnimationFrame(this._redraw.bind(this,t,!0)))},s.prototype._redraw=function(t,e){void 0===t&&(t=!1),this.redrawRequested=!1;var i=this.frame.canvas.getContext("2d");i.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var s=this.frame.canvas.clientWidth,o=this.frame.canvas.clientHeight;i.clearRect(0,0,s,o),i.save(),i.translate(this.translation.x,this.translation.y),i.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight)},t===!1&&(this._doInAllSectors("_drawAllSectorNodes",i),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",i)),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",i,!1),t===!1&&1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",i),i.restore(),t===!0&&i.clearRect(0,0,s,o)},s.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},s.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},s.prototype._setScale=function(t){this.scale=t},s.prototype._getScale=function(){return this.scale},s.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},s.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},s.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},s.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},s.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},s.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},s.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var o in i)i.hasOwnProperty(o)&&(i[o].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[o].isSelected()?s.push(o):(i[o].inArea()||e)&&i[o].draw(t));for(var n=0,r=s.length;r>n;n++)(i[s[n]].inArea()||e)&&i[s[n]].draw(t)},s.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},s.prototype._drawControlNodes=function(t){var e=this.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},s.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStepLimited(e,this.constants.maxVelocity),s=!0);else for(t in i)i.hasOwnProperty(t)&&(i[t].discreteStep(e),s=!0);if(1==s){var o=this.constants.minVelocity/Math.max(this.scale,.05);return o>.5*this.constants.maxVelocity?!0:this._isMoving(o)}return!1},s.prototype._revertPhysicsState=function(){var t=this.nodes;for(var e in t)t.hasOwnProperty(e)&&t[e].revertPosition()},s.prototype._revertPhysicsTick=function(){this._doInAllActiveSectors("_revertPhysicsState"),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&this._doInSupportSector("_revertPhysicsState")},s.prototype._physicsTick=function(){if(!this.freezeSimulationEnabled&&1==this.moving){var t=!1,e=!1;this._doInAllActiveSectors("_initializeForceCalculation");var i=this._doInAllActiveSectors("_discreteStepNodes");1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&(e=this._doInSupportSector("_discreteStepNodes"));for(var s=0;s2*e||1==this.runDoubleSpeed)&&1==this.moving&&(this._physicsTick(),0!=this.renderTime&&(this.runDoubleSpeed=!0))}var i=Date.now();this._redraw(),this.renderTime=Date.now()-i,0==this.requiresTimeout&&this.start()},"undefined"!=typeof window&&(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame),s.prototype.start=function(){if(1==this.freezeSimulationEnabled&&(this.moving=!1),1==this.moving||0!=this.xIncrement||0!=this.yIncrement||0!=this.zoomIncrement||1==this.animating)this.timer||(this.timer=1==this.requiresTimeout?window.setTimeout(this._animationStep.bind(this),this.renderTimestep):window.requestAnimationFrame(this._animationStep.bind(this))); +else if(this._requestRedraw(),this.stabilizationIterations>1){var t=this,e={iterations:t.stabilizationIterations};this.stabilizationIterations=0,this.startedStabilization=!1,setTimeout(function(){t.emit("stabilized",e)},0)}else this.stabilizationIterations=0},s.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},s.prototype.freezeSimulation=function(t){1==t?(this.freezeSimulationEnabled=!0,this.moving=!1):(this.freezeSimulationEnabled=!1,this.moving=!0,this.start())},s.prototype._configureSmoothCurves=function(t){if(void 0===t&&(t=!0),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes();for(var e in this.sectors.support.nodes)this.sectors.support.nodes.hasOwnProperty(e)&&void 0===this.edges[this.sectors.support.nodes[e].parentEdgeId]&&delete this.sectors.support.nodes[e]}else{this.sectors.support.nodes={};for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.edges[i].via=null)}this._updateCalculationNodes(),t||(this.moving=!0,this.start())},s.prototype._createBezierNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic)for(var t in this.edges)if(this.edges.hasOwnProperty(t)){var e=this.edges[t];if(null==e.via){var i="edgeId:".concat(e.id);this.sectors.support.nodes[i]=new f({id:i,mass:1,shape:"circle",image:"",internalMultiplier:1},{},{},this.constants),e.via=this.sectors.support.nodes[i],e.via.parentEdgeId=e.id,e.positionBezierNode()}}},s.prototype._initializeMixinLoaders=function(){for(var t in y)y.hasOwnProperty(t)&&(s.prototype[t]=y[t])},s.prototype.storePosition=function(){console.log("storePosition is depricated: use .storePositions() from now on."),this.storePositions()},s.prototype.storePositions=function(){var t=[];for(var e in this.nodes)if(this.nodes.hasOwnProperty(e)){var i=this.nodes[e],s=!this.nodes.xFixed,o=!this.nodes.yFixed;(this.nodesData._data[e].x!=Math.round(i.x)||this.nodesData._data[e].y!=Math.round(i.y))&&t.push({id:e,x:Math.round(i.x),y:Math.round(i.y),allowedToMoveX:s,allowedToMoveY:o})}this.nodesData.update(t)},s.prototype.getPositions=function(t){var e={};if(void 0!==t){if(1==Array.isArray(t)){for(var i=0;i=1&&(this.animating=!1,this.easingTime=0,this._redraw=null!=this.lockedOnNodeId?this._lockedRedraw:this._classicRedraw,this.emit("animationFinished"))},s.prototype._classicRedraw=function(){},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.setScale=function(){return this._setScale()},s.prototype.getScale=function(){return this._getScale()},s.prototype.getCenterCoordinates=function(){return this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight})},s.prototype.getBoundingBox=function(t){return void 0!==this.nodes[t]?this.nodes[t].boundingBox:void 0},s.prototype.getConnectedNodes=function(t){var e=[];if(void 0!==this.nodes[t])for(var i=this.nodes[t],s={nodeId:!0},o=0;oh}return!1},s.prototype._getColor=function(t){var e=this.options.color;if(1==this.options.useGradients){var i,s,n=t.createLinearGradient(this.from.x,this.from.y,this.to.x,this.to.y);return i=this.from.options.color.highlight.border,s=this.to.options.color.highlight.border,0==this.from.selected&&0==this.to.selected?(i=o.overrideOpacity(this.from.options.color.border,this.options.opacity),s=o.overrideOpacity(this.to.options.color.border,this.options.opacity)):1==this.from.selected&&0==this.to.selected?s=this.to.options.color.border:0==this.from.selected&&1==this.to.selected&&(i=this.from.options.color.border),n.addColorStop(0,i),n.addColorStop(1,s),n}return this.colorDirty===!0&&("to"==this.options.inheritColor?e={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:o.overrideOpacity(this.from.options.color.border,this.options.opacity)}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(e={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:o.overrideOpacity(this.from.options.color.border,this.options.opacity)}),this.options.color=e,this.colorDirty=!1),1==this.selected?e.highlight:1==this.hover?e.hover:e.color},s.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var s=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),o=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:s,y:o}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},s.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},s.prototype._getViaCoordinates=function(){if(1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled)return this.via;if(0==this.options.smoothCurves.enabled)return{x:0,y:0};var t=null,e=null,i=this.options.smoothCurves.roundness,s=this.options.smoothCurves.type,o=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);if("discrete"==s||"diagonalCross"==s)Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==s&&(t=i*n>o?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o)),"discrete"==s&&(e=i*o>n?this.from.y:e));else if("straightCross"==s)Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,p=i-h/2,u=s-c/2;this.labelDimensions={top:u,left:p,width:h,height:c,yLine:o}}var o=this.labelDimensions.yLine;t.save(),"horizontal"!=this.options.labelAlignment&&(t.translate(i,o),this._rotateForLabelAlignment(t),i=0,o=0),this._drawLabelRect(t),this._drawLabelText(t,i,o,n,r,a),t.restore()}},s.prototype._rotateForLabelAlignment=function(t){var e=this.from.y-this.to.y,i=this.from.x-this.to.x,s=Math.atan2(e,i);(-1>s&&0>i||s>0&&0>i)&&(s+=Math.PI),t.rotate(s)},s.prototype._drawLabelRect=function(t){if(void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill){t.fillStyle=this.options.fontFill;var e=2;"line-center"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,.5*-this.labelDimensions.height,this.labelDimensions.width,this.labelDimensions.height):"line-above"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,-(this.labelDimensions.height+e),this.labelDimensions.width,this.labelDimensions.height):"line-below"==this.options.labelAlignment?t.fillRect(.5*-this.labelDimensions.width,e,this.labelDimensions.width,this.labelDimensions.height):t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)}},s.prototype._drawLabelText=function(t,e,i,s,o,n){if(t.fillStyle=this.options.fontColor||"black",t.textAlign="center","horizontal"!=this.options.labelAlignment){var r=2;"line-above"==this.options.labelAlignment?(t.textBaseline="alphabetic",i-=2*r):"line-below"==this.options.labelAlignment?(t.textBaseline="hanging",i+=2*r):t.textBaseline="middle"}else t.textBaseline="middle";this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=this.options.fontStrokeColor,t.lineJoin="round");for(var a=0;o>a;a++)this.options.fontStrokeWidth>0&&t.strokeText(s[a],e,i),t.fillText(s[a],e,i),i+=n},s.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(t),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.setLineDash){t.save();var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],t.setLineDash(i),t.lineDashOffset=0,e=this._line(t),t.setLineDash([0]),t.lineDashOffset=0,t.restore()}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var s;if(1==this.options.smoothCurves.enabled&&null!=e){var o=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));s={x:o,y:n}}else s=this._pointOnLine(.5);this._label(t,this.label,s.x,s.y)}},s.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},s.prototype._pointOnCircle=function(t,e,i,s){var o=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}},s.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),s=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var s=.2*Math.PI,o=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},s.prototype._pointOnBezier=function(t){var e=this._getViaCoordinates(),i=Math.pow(1-t,2)*this.from.x+2*t*(1-t)*e.x+Math.pow(t,2)*this.to.x,s=Math.pow(1-t,2)*this.from.y+2*t*(1-t)*e.y+Math.pow(t,2)*this.to.y;return{x:i,y:s}},s.prototype._findBorderPosition=function(t,e){var i,s,o,n,r,a=10,h=0,d=0,l=1,c=.2,p=this.to;for(1==t&&(p=this.from);l>=d&&a>h;){var u=.5*(d+l);if(i=this._pointOnBezier(u),s=Math.atan2(p.y-i.y,p.x-i.x),o=p.distanceToBorder(e,s),n=Math.sqrt(Math.pow(i.x-p.x,2)+Math.pow(i.y-p.y,2)),r=o-n,Math.abs(r)r?0==t?d=u:l=u:0==t?l=u:d=u,h++}return i.t=u,i},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(t),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i,s;if(this.from!=this.to){if(this._line(t),1==this.options.smoothCurves.enabled){var o=this._getViaCoordinates();s=this._findBorderPosition(!1,t);var n=this._pointOnBezier(Math.max(0,s.t-.1));e=Math.atan2(s.y-n.y,s.x-n.x)}else{e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var r=this.to.x-this.from.x,a=this.to.y-this.from.y,h=Math.sqrt(r*r+a*a),d=this.to.distanceToBorder(t,e),l=(h-d)/h;s={},s.x=(1-l)*this.from.x+l*this.to.x,s.y=(1-l)*this.from.y+l*this.to.y}if(i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(s.x,s.y,e,i),t.fill(),t.stroke(),this.label){var c;c=1==this.options.smoothCurves.enabled&&null!=o?this._pointOnBezier(.5):this._pointOnLine(.5),this._label(t,this.label,c.x,c.y)}}else{var p,u,m,f=this.from,g=.25*Math.max(100,this.physics.springLength);f.width||f.resize(t),f.width>f.height?(p=f.x+.5*f.width,u=f.y-g,m={x:p,y:f.y,angle:.9*Math.PI}):(p=f.x+g,u=f.y-.5*f.height,m={x:f.x,y:u,angle:.6*Math.PI}),t.beginPath(),t.arc(p,u,g,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(m.x,m.y,m.angle,i),t.fill(),t.stroke(),this.label&&(c=this._pointOnCircle(p,u,g,.5),this._label(t,this.label,c.x,c.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,p,u,m,f,g,v=1e9;for(c=0;10>c;c++)p=.1*c,u=Math.pow(1-p,2)*t+2*p*(1-p)*a+Math.pow(p,2)*i,m=Math.pow(1-p,2)*e+2*p*(1-p)*h+Math.pow(p,2)*s,c>0&&(l=this._getDistanceToLine(f,g,u,m,o,n),v=v>l?l:v),f=u,g=m;r=v}else r=this._getDistanceToLine(t,e,i,s,o,n);else{var u,m,y,b,_=.25*this.physics.springLength,x=this.from;x.width>x.height?(u=x.x+.5*x.width,m=x.y-_):(u=x.x+_,m=x.y-.5*x.height),y=u-o,b=m-n,r=Math.abs(Math.sqrt(y*y+b*b)-_)}return this.labelDimensions.lefto&&this.labelDimensions.topn?0:r},s.prototype._getDistanceToLine=function(t,e,i,s,o,n){var r=i-t,a=s-e,h=r*r+a*a,d=((o-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,p=l-o,u=c-n;return Math.sqrt(p*p+u*u)},s.prototype.setScale=function(t){this.networkScaleInv=1/t},s.prototype.select=function(){this.selected=!0},s.prototype.unselect=function(){this.selected=!1},s.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to?(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y)):null!==this.via&&(this.via.x=0,this.via.y=0)},s.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),s={nodes:{group:"",radius:7,borderWidth:2,borderWidthSelected:2},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff0000",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s)}this.controlNodes.positions={},0==this.controlNodes.from.selected&&(this.controlNodes.positions.from=this.getControlNodeFromPosition(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y),0==this.controlNodes.to.selected&&(this.controlNodes.positions.to=this.getControlNodeToPosition(t),this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},s.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},s.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,s=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),o=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>s?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>o?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},s.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},s.prototype.getControlNodeFromPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!0,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n;e={},e.x=a*this.from.x+(1-a)*this.to.x,e.y=a*this.from.y+(1-a)*this.to.y}return e},s.prototype.getControlNodeToPosition=function(t){var e;if(1==this.options.smoothCurves.enabled)e=this._findBorderPosition(!1,t);else{var i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.to.distanceToBorder(t,i),a=(n-r)/n;e={},e.x=(1-a)*this.from.x+a*this.to.x,e.y=(1-a)*this.from.y+a*this.to.y}return e},t.exports=s},function(t,e,i){function s(){this.clear(),this.defaultIndex=0,this.groupsArray=[],this.groupIndex=0,this.useDefaultGroups=!0}i(1);s.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}},{border:"#990000",background:"#EE0000",highlight:{border:"#BB0000",background:"#FF3333"},hover:{border:"#BB0000",background:"#FF3333"}},{border:"#FF6000",background:"#FF6000",highlight:{border:"#FF6000",background:"#FF6000"},hover:{border:"#FF6000",background:"#FF6000"}},{border:"#97C2FC",background:"#2B7CE9",highlight:{border:"#D2E5FF",background:"#2B7CE9"},hover:{border:"#D2E5FF",background:"#2B7CE9"}},{border:"#399605",background:"#255C03",highlight:{border:"#399605",background:"#255C03"},hover:{border:"#399605",background:"#255C03"}},{border:"#B70054",background:"#FF007E",highlight:{border:"#B70054",background:"#FF007E"},hover:{border:"#B70054",background:"#FF007E"}},{border:"#AD85E4",background:"#7C29F0",highlight:{border:"#D3BDF0",background:"#7C29F0"},hover:{border:"#D3BDF0",background:"#7C29F0"}},{border:"#4557FA",background:"#000EA1",highlight:{border:"#6E6EFD",background:"#000EA1"},hover:{border:"#6E6EFD",background:"#000EA1"}},{border:"#FFC0CB",background:"#FD5A77",highlight:{border:"#FFD1D9",background:"#FD5A77"},hover:{border:"#FFD1D9",background:"#FD5A77"}},{border:"#C2FABC",background:"#74D66A",highlight:{border:"#E6FFE3",background:"#74D66A"},hover:{border:"#E6FFE3",background:"#74D66A"}},{border:"#EE0000",background:"#990000",highlight:{border:"#FF3333",background:"#BB0000"},hover:{border:"#FF3333",background:"#BB0000"}}],s.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},s.prototype.get=function(t){var e=this.groups[t];if(void 0==e)if(this.useDefaultGroups===!1&&this.groupsArray.length>0){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%s.DEFAULT.length;this.defaultIndex++,e={},e.color=s.DEFAULT[i],this.groups[t]=e}return e},s.prototype.add=function(t,e){return this.groups[t]=e,this.groupsArray.push(t),e},t.exports=s},function(t,e,i){function s(){this.images={},this.imageBroken={},this.callback=void 0}s.prototype.setOnloadCallback=function(t){this.callback=t},s.prototype.load=function(t,e){var i=this.images[t];if(void 0===i){var s=this;i=new Image,i.onload=function(){0==this.width&&(document.body.appendChild(this),this.width=this.offsetWidth,this.height=this.offsetHeight,document.body.removeChild(this)),s.callback&&(s.images[t]=i,s.callback(this))},i.onerror=function(){void 0===e?(console.error("Could not load image:",t),delete this.src,s.callback&&s.callback(this)):s.imageBroken[t]===!0?this.src==e?(console.error("Could not load brokenImage:",e),delete this.src,s.callback&&s.callback(this)):(console.error("Could not load image:",t),this.src=e):(console.error("Could not load image:",t),this.src=e,s.imageBroken[t]=!0)},i.src=t}return i},t.exports=s},function(t,e,i){function s(t,e,i,s){var n=o.selectiveBridgeObject(["nodes"],s);this.options=n.nodes,this.selected=!1,this.hover=!1,this.edges=[],this.dynamicEdges=[],this.reroutedEdges={},this.id=void 0,this.allowedToMoveX=!1,this.allowedToMoveY=!1,this.xFixed=!1,this.yFixed=!1,this.horizontalAlignLeft=!0,this.verticalAlignTop=!0,this.baseRadiusValue=s.nodes.radius,this.radiusFixed=!1,this.level=-1,this.preassignedLevel=!1,this.hierarchyEnumerated=!1, +this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.boundingBox={top:0,left:0,right:0,bottom:0},this.imagelist=e,this.grouplist=i,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.x=null,this.y=null,this.predefinedPosition=!1,this.previousState={vx:0,vy:0,x:0,y:0},this.damping=s.physics.damping,this.fixedData={x:null,y:null},this.setProperties(t,n),this.resetCluster(),this.clusterSession=0,this.clusterSizeWidthFactor=s.clustering.nodeScaling.width,this.clusterSizeHeightFactor=s.clustering.nodeScaling.height,this.clusterSizeRadiusFactor=s.clustering.nodeScaling.radius,this.maxNodeSizeIncrements=s.clustering.maxNodeSizeIncrements,this.growthIndicator=0,this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var o=i(1);s.prototype.revertPosition=function(){this.x=this.previousState.x,this.y=this.previousState.y,this.vx=this.previousState.vx,this.vy=this.previousState.vy},s.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},s.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t)},s.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),e=this.dynamicEdges.indexOf(t),-1!=e&&this.dynamicEdges.splice(e,1)},s.prototype.setProperties=function(t,e){if(t){var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","fontStrokeWidth","fontStrokeColor","group","mass","fontDrawThreshold","scaleFontWithValue","fontSizeMaxVisible","customScalingFunction","iconFontFace","icon","iconColor","iconSize"];if(o.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x,this.predefinedPosition=!0),void 0!==t.y&&(this.y=t.y,this.predefinedPosition=!0),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof t.group||"string"==typeof t.group&&""!=t.group){var s=this.grouplist.get(t.group);o.deepExtend(this.options,s),this.options.color=o.parseColor(this.options.color)}if(void 0!==t.radius&&(this.baseRadiusValue=this.options.radius),void 0!==t.color&&(this.options.color=o.parseColor(t.color)),void 0!==this.options.image&&""!=this.options.image){if(!this.imagelist)throw"No imagelist provided";this.imageObj=this.imagelist.load(this.options.image,this.options.brokenImage)}switch(void 0!==t.allowedToMoveX?(this.xFixed=!t.allowedToMoveX,this.allowedToMoveX=t.allowedToMoveX):void 0!==t.x&&0==this.allowedToMoveX&&(this.xFixed=!0),void 0!==t.allowedToMoveY?(this.yFixed=!t.allowedToMoveY,this.allowedToMoveY=t.allowedToMoveY):void 0!==t.y&&0==this.allowedToMoveY&&(this.yFixed=!0),this.radiusFixed=this.radiusFixed||void 0!==t.radius,("image"===this.options.shape||"circularImage"===this.options.shape)&&(this.options.radiusMin=e.nodes.widthMin,this.options.radiusMax=e.nodes.widthMax),this.options.shape){case"database":this.draw=this._drawDatabase,this.resize=this._resizeDatabase;break;case"box":this.draw=this._drawBox,this.resize=this._resizeBox;break;case"circle":this.draw=this._drawCircle,this.resize=this._resizeCircle;break;case"ellipse":this.draw=this._drawEllipse,this.resize=this._resizeEllipse;break;case"image":this.draw=this._drawImage,this.resize=this._resizeImage;break;case"circularImage":this.draw=this._drawCircularImage,this.resize=this._resizeCircularImage;break;case"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;case"icon":this.draw=this._drawIcon,this.resize=this._resizeIcon;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},s.prototype.select=function(){this.selected=!0,this._reset()},s.prototype.unselect=function(){this.selected=!1,this._reset()},s.prototype.clearSizeCache=function(){this._reset()},s.prototype._reset=function(){this.width=void 0,this.height=void 0},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var s=this.width/2,o=this.height/2,n=Math.sin(e)*s,r=Math.cos(e)*o;return s*o/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},s.prototype._setForce=function(t,e){this.fx=t,this.fy=e},s.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},s.prototype.storeState=function(){this.previousState.x=this.x,this.previousState.y=this.y,this.previousState.vx=this.vx,this.previousState.vy=this.vy},s.prototype.discreteStep=function(t){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var e=this.damping*this.vx,i=(this.fx-e)/this.options.mass;this.vx+=i*t,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var s=this.damping*this.vy,o=(this.fy-s)/this.options.mass;this.vy+=o*t,this.y+=this.vy*t}},s.prototype.discreteStepLimited=function(t,e){if(this.storeState(),this.xFixed)this.fx=0,this.vx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.options.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e,i){if(!this.radiusFixed&&void 0!==this.value){var s=this.options.customScalingFunction(t,e,i,this.value),o=this.options.radiusMax-this.options.radiusMin;if(1==this.options.scaleFontWithValue){var n=this.options.fontSizeMax-this.options.fontSizeMin;this.options.fontSize=this.options.fontSizeMin+s*n}this.options.radius=this.options.radiusMin+s*o}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(t){throw"Draw method not initialized for node"},s.prototype.resize=function(t){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(t){if(!this.width||!this.height){var e,i;if(this.value){this.options.radius=this.baseRadiusValue;var s=this.imageObj.height/this.imageObj.width;void 0!==s?(e=this.options.radius||this.imageObj.width,i=this.options.radius*s||this.imageObj.height):(e=0,i=0)}else e=this.imageObj.width,i=this.imageObj.height;this.width=e,this.height=i,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-e)}},s.prototype._drawImageAtPosition=function(t){if(0!=this.imageObj.width){if(this.clusterSize>1){var e=this.clusterSize>1?10:0;e*=this.networkScaleInv,e=Math.min(.2*this.width,e),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-e,this.top-e,this.width+2*e,this.height+2*e)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height)}},s.prototype._drawImageLabel=function(t){var e,i=0;if(this.height){i=this.height/2;var s=this.getTextSize(t);s.lineCount>=1&&(i+=s.height/2,i+=3)}e=this.y+i,this._label(t,this.label,this.x,e,void 0)},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawImageAtPosition(t),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeCircularImage=function(t){if(this.imageObj.src&&this.imageObj.width&&this.imageObj.height)this._swapToImageResizeWhenImageLoaded&&(this.width=0,this.height=0,delete this._swapToImageResizeWhenImageLoaded),this._resizeImage(t);else if(!this.width){var e=2*this.options.radius;this.width=e,this.height=e,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*e,this._swapToImageResizeWhenImageLoaded=!0}},s.prototype._drawCircularImage=function(t){this._resizeCircularImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=this.left+this.width/2,i=this.top+this.height/2,s=Math.abs(this.height/2);this._drawRawCircle(t,e,i,s),t.save(),t.circle(this.x,this.y,s),t.stroke(),t.clip(),this._drawImageAtPosition(t),t.restore(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._drawImageLabel(t),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)},s.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.options.radius),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},s.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawRawCircle=function(t,e,i,s){var o=2.5,n=this.options.borderWidth,r=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(e,i,s+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?r:n)+(this.clusterSize>1?o:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,s),t.fill(),t.stroke()},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._drawRawCircle(t,this.x,this.y,this.options.radius),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this._label(t,this.label,this.x,this.y)},s.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height,this._label(t,this.label,this.x,this.y)},s.prototype._drawDot=function(t){this._drawShape(t,"circle")},s.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},s.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},s.prototype._drawSquare=function(t){this._drawShape(t,"square")},s.prototype._drawStar=function(t){this._drawShape(t,"star")},s.prototype._resizeShape=function(t){if(!this.width){this.options.radius=this.baseRadiusValue;var e=2*this.options.radius;this.width=e,this.height=e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-e}},s.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=this.options.borderWidth,o=this.options.borderWidthSelected||2*this.options.borderWidth,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t[e](this.x,this.y,this.options.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t[e](this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.boundingBox.top=this.y-this.options.radius,this.boundingBox.left=this.x-this.options.radius,this.boundingBox.right=this.x+this.options.radius,this.boundingBox.bottom=this.y+this.options.radius,this.label&&(this._label(t,this.label,this.x,this.y+this.height/2,void 0,"hanging",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height))},s.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y),this.boundingBox.top=this.top,this.boundingBox.left=this.left,this.boundingBox.right=this.left+this.width,this.boundingBox.bottom=this.top+this.height},s.prototype._resizeIcon=function(t){if(!this.width){var e=5,i={width:Number(this.options.iconSize),height:Number(this.options.iconSize)};this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawIcon=function(t){if(this._resizeIcon(t),this.options.iconSize=this.options.iconSize||50,this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._icon(t),this.boundingBox.top=this.y-this.options.iconSize/2,this.boundingBox.left=this.x-this.options.iconSize/2,this.boundingBox.right=this.x+this.options.iconSize/2,this.boundingBox.bottom=this.y+this.options.iconSize/2,this.label){var e=5;this._label(t,this.label,this.x,this.y+this.height/2+e,"top",!0),this.boundingBox.left=Math.min(this.boundingBox.left,this.labelDimensions.left),this.boundingBox.right=Math.max(this.boundingBox.right,this.labelDimensions.left+this.labelDimensions.width),this.boundingBox.bottom=Math.max(this.boundingBox.bottom,this.boundingBox.bottom+this.labelDimensions.height)}},s.prototype._icon=function(t){var e=Number(this.options.iconSize)*this.networkScale;if(this.options.icon&&e>this.options.fontDrawThreshold-1){var i=Number(this.options.iconSize);t.font=(this.selected?"bold ":"")+i+"px "+this.options.iconFontFace,t.fillStyle=this.options.iconColor||"black",t.textAlign="center",t.textBaseline="middle",t.fillText(this.options.icon,this.x,this.y)}},s.prototype._label=function(t,e,i,s,n,r,a){var h=Number(this.options.fontSize)*this.networkScale;if(e&&h>=this.options.fontDrawThreshold-1){var d=Number(this.options.fontSize);h>=this.options.fontSizeMaxVisible&&(d=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv);var l=this.options.fontColor||"#000000",c=this.options.fontStrokeColor;if(h<=this.options.fontDrawThreshold){var p=Math.max(0,Math.min(1,1-(this.options.fontDrawThreshold-h)));l=o.overrideOpacity(l,p),c=o.overrideOpacity(c,p)}t.font=(this.selected?"bold ":"")+d+"px "+this.options.fontFace;var u=e.split("\n"),m=u.length,f=s+(1-m)/2*d;1==a&&(f=s+(1-m)/(2*d));for(var g=t.measureText(u[0]).width,v=1;m>v;v++){var y=t.measureText(u[v]).width;g=y>g?y:g}var b=d*m,_=i-g/2,x=s-b/2;"hanging"==r&&(x+=.5*d,x+=4,f+=4),this.labelDimensions={top:x,left:_,width:g,height:b,yLine:f},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(_,x,g,b)),t.fillStyle=l,t.textAlign=n||"center",t.textBaseline=r||"middle",this.options.fontStrokeWidth>0&&(t.lineWidth=this.options.fontStrokeWidth,t.strokeStyle=c,t.lineJoin="round");for(var v=0;m>v;v++)this.options.fontStrokeWidth&&t.strokeText(u[v],i,f),t.fillText(u[v],i,f),f+=d}},s.prototype.getTextSize=function(t){if(void 0!==this.label){var e=Number(this.options.fontSize);e*this.networkScale>this.options.fontSizeMaxVisible&&(e=Number(this.options.fontSizeMaxVisible)*this.networkScaleInv),t.font=(this.selected?"bold ":"")+e+"px "+this.options.fontFace;for(var i=this.label.split("\n"),s=(e+4)*i.length,o=0,n=0,r=i.length;r>n;n++)o=Math.max(o,t.measureText(i[n]).width);return{width:o,height:s,lineCount:i.length}}return{width:0,height:0,lineCount:0}},s.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.ys&&(n=s-e-this.padding),no&&(r=o-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){o=r.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=h(o.attr,t.node))),i=n.length-1;i>=0;i--){var a=n[i];a.nodes||(a.nodes=[]),-1==a.nodes.indexOf(o)&&a.nodes.push(o)}e.attr&&(o.attr=h(o.attr,e.attr))}function c(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=h({},t.edge);e.attr=h(i,e.attr)}}function p(t,e,i,s,o){var n={from:e,to:i,type:s};return t.edge&&(n.attr=h({},t.edge)),n.attr=h(n.attr||{},o),n}function u(){for(I=C.NULL,N="";" "==k||" "==k||"\n"==k||"\r"==k;)n();do{var t=!1;if("#"==k){for(var e=E-1;" "==O.charAt(e)||" "==O.charAt(e);)e--;if("\n"==O.charAt(e)||""==O.charAt(e)){for(;""!=k&&"\n"!=k;)n();t=!0}}if("/"==k&&"/"==r()){for(;""!=k&&"\n"!=k;)n();t=!0}if("/"==k&&"*"==r()){for(;""!=k;){if("*"==k&&"/"==r()){n(),n();break}n()}t=!0}for(;" "==k||" "==k||"\n"==k||"\r"==k;)n()}while(t);if(""==k)return void(I=C.DELIMITER);var i=k+r();if(T[i])return I=C.DELIMITER,N=i,n(),void n();if(T[k])return I=C.DELIMITER,N=k,void n();if(a(k)||"-"==k){for(N+=k,n();a(k);)N+=k,n();return"false"==N?N=!1:"true"==N?N=!0:isNaN(Number(N))||(N=Number(N)),void(I=C.IDENTIFIER)}if('"'==k){for(n();""!=k&&('"'!=k||'"'==k&&'"'==r());)N+=k,'"'==k&&n(),n();if('"'!=k)throw w('End of string " expected');return n(),void(I=C.IDENTIFIER)}for(I=C.UNKNOWN;""!=k;)N+=k,n();throw new SyntaxError('Syntax error in part "'+S(N,30)+'"')}function m(){var t={};if(o(),u(),"strict"==N&&(t.strict=!0,u()),("graph"==N||"digraph"==N)&&(t.type=N,u()),I==C.IDENTIFIER&&(t.id=N,u()),"{"!=N)throw w("Angle bracket { expected");if(u(),f(t),"}"!=N)throw w("Angle bracket } expected");if(u(),""!==N)throw w("End of file expected");return u(),delete t.node,delete t.edge,delete t.graph,t}function f(t){for(;""!==N&&"}"!=N;)g(t),";"==N&&u()}function g(t){var e=v(t);if(e)return void _(t,e);var i=y(t);if(!i){if(I!=C.IDENTIFIER)throw w("Identifier expected");var s=N;if(u(),"="==N){if(u(),I!=C.IDENTIFIER)throw w("Identifier expected");t[s]=N,u()}else b(t,s)}}function v(t){var e=null;if("subgraph"==N&&(e={},e.type="subgraph",u(),I==C.IDENTIFIER&&(e.id=N,u())),"{"==N){if(u(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,f(e),"}"!=N)throw w("Angle bracket } expected");u(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function y(t){return"node"==N?(u(),t.node=x(),"node"):"edge"==N?(u(),t.edge=x(),"edge"):"graph"==N?(u(),t.graph=x(),"graph"):null}function b(t,e){var i={id:e},s=x();s&&(i.attr=s),l(t,i),_(t,e)}function _(t,e){for(;"->"==N||"--"==N;){var i,s=N;u();var o=v(t);if(o)i=o;else{if(I!=C.IDENTIFIER)throw w("Identifier or subgraph expected");i=N,l(t,{id:i}),u()}var n=x(),r=p(t,e,i,s,n);c(t,r),e=i}}function x(){for(var t=null;"["==N;){for(u(),t={};""!==N&&"]"!=N;){if(I!=C.IDENTIFIER)throw w("Attribute name expected");var e=N;if(u(),"="!=N)throw w("Equal sign = expected");if(u(),I!=C.IDENTIFIER)throw w("Attribute value expected");var i=N;d(t,e,i),u(),","==N&&u()}if("]"!=N)throw w("Bracket ] expected");u()}return t}function w(t){return new SyntaxError(t+', got "'+S(N,30)+'" (char '+E+")")}function S(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function D(t,e,i){Array.isArray(t)?t.forEach(function(t){Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}):Array.isArray(e)?e.forEach(function(e){i(t,e)}):i(t,e)}function M(t){var e=s(t),i={nodes:[],edges:[],options:{}};if(e.nodes&&e.nodes.forEach(function(t){var e={id:t.id,label:String(t.label||t.id)};h(e,t.attr),e.image&&(e.shape="image"),i.nodes.push(e)}),e.edges){var o=function(t){var e={from:t.from,to:t.to};return h(e,t.attr),e.style="->"==t.type?"arrow":"line",e};e.edges.forEach(function(t){var e,s;e=t.from instanceof Object?t.from.nodes:{id:t.from},s=t.to instanceof Object?t.to.nodes:{id:t.to},t.from instanceof Object&&t.from.edges&&t.from.edges.forEach(function(t){var e=o(t);i.edges.push(e)}),D(e,s,function(e,s){var n=p(i,e.id,s.id,t.type,t.attr),r=o(n);i.edges.push(r)}),t.to instanceof Object&&t.to.edges&&t.to.edges.forEach(function(t){var e=o(t);i.edges.push(e)})})}return e.attr&&(i.options=e.attr),i}var C={NULL:0,DELIMITER:1,IDENTIFIER:2,UNKNOWN:3},T={"{":!0,"}":!0,"[":!0,"]":!0,";":!0,"=":!0,",":!0,"->":!0,"--":!0},O="",E=0,k="",N="",I=C.NULL,L=/[a-zA-Z_0-9.:#]/;e.parseDOT=s,e.DOTToGraph=M},function(t,e,i){function s(t,e){var i=[],s=[];this.options={edges:{inheritColor:!0},nodes:{allowedToMove:!1,parseColor:!1}},void 0!==e&&(this.options.nodes.allowedToMove=e.allowedToMove|!1,this.options.nodes.parseColor=e.parseColor|!1,this.options.edges.inheritColor=e.inheritColor|!0);for(var o=t.edges,n=t.nodes,r=0;r0?Math.max.apply(null,i)+1:1):(this.customBarIds.forEach(function(t){if(t===e)throw new Error("Custom time ID already exists")}),o=e),this.customBarIds.push(o),s=new l(this.body,{showCustomTime:!0,time:n,id:o}),this.components.push(s),this.redraw(),o},s.prototype.removeCustomTime=function(t){var e=this;this.components.forEach(function(i,s,o){i instanceof l&&i.options.id===t&&0!==i.options.id&&(e.customBarIds.splice(e.customBarIds.indexOf(t),1),o.splice(s,1),i.destroy())})},s.prototype.getVisibleItems=function(){return this.itemSet&&this.itemSet.getVisibleItems()||[]},s.prototype.clear=function(t){(!t||t.items)&&this.setItems(null),(!t||t.groups)&&this.setGroups(null),(!t||t.options)&&(this.components.forEach(function(t){t.setOptions(t.defaultOptions)}),this.setOptions(this.defaultOptions))},s.prototype.fit=function(t){var e=this._getDataRange();if(null!==e.start||null!==e.end){var i=t&&void 0!==t.animate?t.animate:!0;this.range.setRange(e.start,e.end,i)}},s.prototype._getDataRange=function(){var t=this.getItemRange(),e=t.min,i=t.max;if(null!=e&&null!=i){var s=i.valueOf()-e.valueOf();0>=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}return{start:e,end:i}},s.prototype.setWindow=function(t,e,i){var s;if(1==arguments.length){var o=arguments[0];s=void 0!==o.animate?o.animate:!0,this.range.setRange(o.start,o.end,s)}else s=i&&void 0!==i.animate?i.animate:!0,this.range.setRange(t,e,s)},s.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,s=r.convert(t,"Date").valueOf(),o=s-i/2,n=s+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(o,n,a)},s.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},s.prototype.redraw=function(){this._redraw()},s.prototype._redraw=function(){var t=!1,e=this.options,i=this.props,s=this.dom;if(s){d.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(s.root,"top"),r.removeClassName(s.root,"bottom")):(r.removeClassName(s.root,"top"),r.addClassName(s.root,"bottom")),s.root.style.maxHeight=r.option.asSize(e.maxHeight,""),s.root.style.minHeight=r.option.asSize(e.minHeight,""),s.root.style.width=r.option.asSize(e.width,""),i.border.left=(s.centerContainer.offsetWidth-s.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(s.centerContainer.offsetHeight-s.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var o=s.root.offsetHeight-s.root.clientHeight,n=s.root.offsetWidth-s.root.clientWidth;0===s.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===s.root.clientHeight&&(n=o),i.center.height=s.center.offsetHeight,i.left.height=s.left.offsetHeight,i.right.height=s.right.offsetHeight,i.top.height=s.top.clientHeight||-i.border.top,i.bottom.height=s.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),h=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom;s.root.style.height=r.option.asSize(e.height,h+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var l=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=s.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=s.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=s.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,s.background.style.height=i.background.height+"px",s.backgroundVertical.style.height=i.background.height+"px",s.backgroundHorizontal.style.height=i.centerContainer.height+"px",s.centerContainer.style.height=i.centerContainer.height+"px",s.leftContainer.style.height=i.leftContainer.height+"px",s.rightContainer.style.height=i.rightContainer.height+"px",s.background.style.width=i.background.width+"px",s.backgroundVertical.style.width=i.centerContainer.width+"px",s.backgroundHorizontal.style.width=i.background.width+"px",s.centerContainer.style.width=i.center.width+"px",s.top.style.width=i.top.width+"px",s.bottom.style.width=i.bottom.width+"px",s.background.style.left="0",s.background.style.top="0",s.backgroundVertical.style.left=i.left.width+i.border.left+"px",s.backgroundVertical.style.top="0",s.backgroundHorizontal.style.left="0",s.backgroundHorizontal.style.top=i.top.height+"px",s.centerContainer.style.left=i.left.width+"px",s.centerContainer.style.top=i.top.height+"px",s.leftContainer.style.left="0",s.leftContainer.style.top=i.top.height+"px",s.rightContainer.style.left=i.left.width+i.center.width+"px",s.rightContainer.style.top=i.top.height+"px",s.top.style.left=i.left.width+"px",s.top.style.top="0",s.bottom.style.left=i.left.width+"px",s.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"bottom"==e.orientation&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=p+"px",s.left.style.left="0",s.left.style.top=p+"px",s.right.style.left="0",s.right.style.top=p+"px";var u=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(s.shadowTop.style.visibility=u,s.shadowBottom.style.visibility=m,s.shadowTopLeft.style.visibility=u,s.shadowBottomLeft.style.visibility=m,s.shadowTopRight.style.visibility=u,s.shadowBottomRight.style.visibility=m,this.components.forEach(function(e){t=e.redraw()||t}),t){var f=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTopt[s].y?t[s].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=o.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?s._catmullRom(t,e):s._linear(t),1==e.options.shaded.enabled){var d,l=o.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},s._catmullRomUniform=function(t){for(var e,i,s,o,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],s=t[l+1],o=d>l+2?t[l+2]:s,n={x:(-e.x+6*i.x+s.x)*h,y:(-e.y+6*i.y+s.y)*h},r={x:(i.x+6*s.x-o.x)*h,y:(i.y+6*s.y-o.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+s.x+","+s.y+" ";return a},s._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var s,o,n,r,a,h,d,l,c,p,u,m,f,g,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",S=t.length,D=0;S-1>D;D++)s=0==D?t[0]:t[D-1],o=t[D],n=t[D+1],r=S>D+2?t[D+2]:n,d=Math.sqrt(Math.pow(s.x-o.x,2)+Math.pow(s.y-o.y,2)),l=Math.sqrt(Math.pow(o.x-n.x,2)+Math.pow(o.y-n.y,2)),c=Math.sqrt(Math.pow(n.x-r.x,2)+Math.pow(n.y-r.y,2)),g=Math.pow(c,i),y=Math.pow(c,2*i),v=Math.pow(l,i),b=Math.pow(l,2*i),x=Math.pow(d,i),_=Math.pow(d,2*i),p=2*_+3*x*v+b,u=2*y+3*g*v+b,m=3*x*(x+v),m>0&&(m=1/m),f=3*g*(g+v),f>0&&(f=1/f),a={x:(-b*s.x+p*o.x+_*n.x)*m,y:(-b*s.y+p*o.y+_*n.y)*m},h={x:(y*o.x+u*n.x-b*r.x)*f,y:(y*o.y+u*n.y-b*r.y)*f},0==a.x&&0==a.y&&(a=o),0==h.x&&0==h.y&&(h=n),w+="C"+a.x+","+a.y+" "+h.x+","+h.y+" "+n.x+","+n.y+" ";return w},s._linear=function(t){for(var e="",i=0;it[s].y?t[s].y:e,i=i0&&(n=Math.min(n,Math.abs(c[d-1].x-r))),a=s._getSafeDrawData(n,h,m);else{var g=d+(p[r].amount-p[r].resolved),v=d-(p[r].resolved+1);g0&&(n=Math.min(n,Math.abs(c[v].x-r))),a=s._getSafeDrawData(n,h,m),p[r].resolved+=1,"stack"==h.options.barChart.handleOverlap?(f=p[r].accumulated,p[r].accumulated+=h.zeroPosition-c[d].y):"sideBySide"==h.options.barChart.handleOverlap&&(a.width=a.width/p[r].amount,a.offset+=p[r].resolved*a.width-.5*a.width*(p[r].amount+1),"left"==h.options.barChart.align?a.offset-=.5*a.width:"right"==h.options.barChart.align&&(a.offset+=.5*a.width))}o.drawBar(c[d].x+a.offset,c[d].y-f,a.width,h.zeroPosition-c[d].y,h.className+" bar",i.svgElements,i.svg),1==h.options.drawPoints.enabled&&o.drawPoint(c[d].x+a.offset,c[d].y,h,i.svgElements,i.svg,c[d].label)}},s._getDataIntersections=function(t,e){for(var i,s=0;s0&&(i=Math.min(i,Math.abs(e[s-1].x-e[s].x))),0==i&&(void 0===t[e[s].x]&&(t[e[s].x]={amount:0,resolved:0,accumulated:0}),t[e[s].x].amount+=1)},s._getSafeDrawData=function(t,e,i){var s,o;return t0?(s=i>t?i:t,o=0,"left"==e.options.barChart.align?o-=.5*t:"right"==e.options.barChart.align&&(o+=.5*t)):(s=e.options.barChart.width,o=0,"left"==e.options.barChart.align?o-=.5*e.options.barChart.width:"right"==e.options.barChart.align&&(o+=.5*e.options.barChart.width)),{width:s,offset:o}},s.getStackedBarYRange=function(t,e,i,o,n){if(t.length>0){t.sort(function(t,e){return t.x==e.x?t.groupId-e.groupId:t.x-e.x});var r={};s._getDataIntersections(r,t),e[o]=s._getStackedBarYRange(r,t),e[o].yAxisOrientation=n,i.push(o)}},s._getStackedBarYRange=function(t,e){for(var i,s=e[0].y,o=e[0].y,n=0;ne[n].y?e[n].y:s,o=ot[r].accumulated?t[r].accumulated:s,o=ot[s].y?t[s].y:e,i=is;s++){var o=s%2===0?1.3*i:.5*i;this.lineTo(t+o*Math.sin(2*s*Math.PI/10),e-o*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,o){var n=Math.PI/180;0>i-2*o&&(o=i/2),0>s-2*o&&(o=s/2),this.beginPath(),this.moveTo(t+o,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,270*n,360*n,!1),this.lineTo(t+i,e+s-o),this.arc(t+i-o,e+s-o,o,0,90*n,!1),this.lineTo(t+o,e+s),this.arc(t+o,e+s-o,o,90*n,180*n,!1),this.lineTo(t,e+o),this.arc(t+o,e+o,o,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var o=.5522848,n=i/2*o,r=s/2*o,a=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var o=1/3,n=i,r=s*o,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,p=t+n/2,u=e+r/2,m=e+(s-r/2),f=e+s;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,p+h,c,p,c),this.bezierCurveTo(p-h,c,t,u+d,t,u),this.bezierCurveTo(t,u-d,p-h,e,p,e),this.bezierCurveTo(p+h,e,l,u-d,l,u),this.lineTo(l,m),this.bezierCurveTo(l,m+d,p+h,f,p,f),this.bezierCurveTo(p-h,f,t,m+d,t,m),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var o=t-s*Math.cos(i),n=e-s*Math.sin(i),r=t-.9*s*Math.cos(i),a=e-.9*s*Math.sin(i),h=o+s/3*Math.cos(i+.5*Math.PI),d=n+s/3*Math.sin(i+.5*Math.PI),l=o+s/3*Math.cos(i-.5*Math.PI),c=n+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,o){o||(o=[10,5]),0==p&&(p=.001);var n=o.length;this.moveTo(t,e);for(var r=i-t,a=s-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var p=o[l++%n];p>d&&(p=d);var u=Math.sqrt(p*p/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[c?"lineTo":"moveTo"](t,e),d-=p,c=!c}})},function(t,e,i){function s(t){return t?o(t):void 0}function o(t){for(var e in s.prototype)t[e]=s.prototype[e];return t}t.exports=s,s.prototype.on=s.prototype.addEventListener=function(t,e){return this._callbacks=this._callbacks||{},(this._callbacks[t]=this._callbacks[t]||[]).push(e),this},s.prototype.once=function(t,e){function i(){s.off(t,i),e.apply(this,arguments)}var s=this;return this._callbacks=this._callbacks||{},i.fn=e,this.on(t,i),this},s.prototype.off=s.prototype.removeListener=s.prototype.removeAllListeners=s.prototype.removeEventListener=function(t,e){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var i=this._callbacks[t];if(!i)return this;if(1==arguments.length)return delete this._callbacks[t],this;for(var s,o=0;os;++s)i[s].apply(this,e)}return this},s.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},s.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e,i){var s,o,n;!function(i,r){o=[],s=r,n="function"==typeof s?s.apply(e,o):s,!(void 0!==n&&(t.exports=n))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,s=t&&t.container||window,o={},n={keydown:{},keyup:{}},r={};for(e=97;122>=e;e++)r[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)r[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)r[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)r["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)r["num"+e]={code:96+e,shift:!1};r["num*"]={code:106,shift:!1},r["num+"]={code:107,shift:!1},r["num-"]={code:109,shift:!1},r["num/"]={code:111,shift:!1},r["num."]={code:110,shift:!1},r.left={code:37,shift:!1},r.up={code:38,shift:!1},r.right={code:39,shift:!1},r.down={code:40,shift:!1},r.space={code:32,shift:!1},r.enter={code:13,shift:!1},r.shift={code:16,shift:void 0},r.esc={code:27,shift:!1},r.backspace={code:8,shift:!1},r.tab={code:9,shift:!1},r.ctrl={code:17,shift:!1},r.alt={code:18,shift:!1},r["delete"]={code:46,shift:!1},r.pageup={code:33,shift:!1},r.pagedown={code:34,shift:!1},r["="]={code:187,shift:!1},r["-"]={code:189,shift:!1},r["]"]={code:221,shift:!1},r["["]={code:219,shift:!1};var a=function(t){d(t,"keydown")},h=function(t){d(t,"keyup")},d=function(t,e){if(void 0!==n[e][t.keyCode]){for(var s=n[e][t.keyCode],o=0;o0)for(i in Ei)s=Ei[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function u(t){p(this,t),this._d=new Date(+t._d),ki===!1&&(ki=!0,e.updateOffset(this),ki=!1)}function m(t){return t instanceof u||null!=t&&a(t,"_isAMomentObject")}function f(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function g(t,e,i){var s,o=Math.min(t.length,e.length),n=Math.abs(t.length-e.length),r=0;for(s=0;o>s;s++)(i&&t[s]!==e[s]||!i&&f(t[s])!==f(e[s]))&&r++;return r+n}function v(){}function y(t){return t?t.toLowerCase().replace("_","-"):t}function b(t){for(var e,i,s,o,n=0;n0;){if(s=_(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&g(o,i,!0)>=e-1)break;e--}n++}return null}function _(e){var i=null;if(!Ni[e]&&"undefined"!=typeof t&&t&&t.exports)try{i=Oi._abbr,!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),x(i)}catch(s){}return Ni[e]}function x(t,e){var i;return t&&(i="undefined"==typeof e?S(t):w(t,e),i&&(Oi=i)),Oi._abbr}function w(t,e){return null!==e?(e.abbr=t,Ni[t]||(Ni[t]=new v),Ni[t].set(e),x(t),Ni[t]):(delete Ni[t],null)}function S(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return Oi;if(!o(t)){if(e=_(t))return e;t=[t]}return b(t)}function D(t,e){var i=t.toLowerCase();Ii[i]=Ii[i+"s"]=Ii[e]=t}function M(t){return"string"==typeof t?Ii[t]||Ii[t.toLowerCase()]:void 0}function C(t){var e,i,s={};for(i in t)a(t,i)&&(e=M(i),e&&(s[e]=t[i]));return s}function T(t,i){return function(s){return null!=s?(E(this,t,s),e.updateOffset(this,i),this):O(this,t)}}function O(t,e){return t._d["get"+(t._isUTC?"UTC":"")+e]()}function E(t,e,i){return t._d["set"+(t._isUTC?"UTC":"")+e](i)}function k(t,e){var i;if("object"==typeof t)for(i in t)this.set(i,t[i]);else if(t=M(t),"function"==typeof this[t])return this[t](e);return this}function N(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengthe;e++)s[e]=Pi[s[e]]?Pi[s[e]]:L(s[e]);return function(o){var n="";for(e=0;i>e;e++)n+=s[e]instanceof Function?s[e].call(o,t):s[e];return n}}function A(t,e){return t.isValid()?(e=P(e,t.localeData()),Ai[e]||(Ai[e]=z(e)),Ai[e](t)):t.localeData().invalidDate()}function P(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(zi.lastIndex=0;s>=0&&zi.test(t);)t=t.replace(zi,i),zi.lastIndex=0,s-=1;return t}function F(t,e,i){Ki[t]="function"==typeof e?e:function(t){return t&&i?i:e}}function R(t,e){return a(Ki,t)?Ki[t](e._strict,e._locale):new RegExp(H(t))}function H(t){return t.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o}).replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function B(t,e){var i,s=e;for("string"==typeof t&&(t=[t]),"number"==typeof e&&(s=function(t,i){i[e]=f(t)}),i=0;is;s++){if(o=d([2e3,s]),i&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(o,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(o,"").replace(".","")+"$","i")),i||this._monthsParse[s]||(n="^"+this.months(o,"")+"|^"+this.monthsShort(o,""),this._monthsParse[s]=new RegExp(n.replace(".",""),"i")),i&&"MMMM"===e&&this._longMonthsParse[s].test(t))return s;if(i&&"MMM"===e&&this._shortMonthsParse[s].test(t))return s;if(!i&&this._monthsParse[s].test(t))return s}}function X(t,e){var i;return"string"==typeof e&&(e=t.localeData().monthsParse(e),"number"!=typeof e)?t:(i=Math.min(t.date(),G(t.year(),e)),t._d["set"+(t._isUTC?"UTC":"")+"Month"](e,i),t)}function q(t){return null!=t?(X(this,t),e.updateOffset(this,!0),this):O(this,"Month")}function Z(){return G(this.year(),this.month())}function Q(t){var e,i=t._a;return i&&-2===t._pf.overflow&&(e=i[ts]<0||i[ts]>11?ts:i[es]<1||i[es]>G(i[Ji],i[ts])?es:i[is]<0||i[is]>24||24===i[is]&&(0!==i[ss]||0!==i[os]||0!==i[ns])?is:i[ss]<0||i[ss]>59?ss:i[os]<0||i[os]>59?os:i[ns]<0||i[ns]>999?ns:-1,t._pf._overflowDayOfYear&&(Ji>e||e>es)&&(e=es),t._pf.overflow=e),t}function K(t){e.suppressDeprecationWarnings===!1&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+t)}function $(t,e){var i=!0;return h(function(){return i&&(K(t),i=!1),e.apply(this,arguments)},e)}function J(t,e){hs[t]||(K(e),hs[t]=!0)}function tt(t){var e,i,s=t._i,o=ds.exec(s);if(o){for(t._pf.iso=!0,e=0,i=ls.length;i>e;e++)if(ls[e][1].exec(s)){t._f=ls[e][0]+(o[6]||" ");break}for(e=0,i=cs.length;i>e;e++)if(cs[e][1].exec(s)){t._f+=cs[e][0];break}s.match(qi)&&(t._f+="Z"),bt(t)}else t._isValid=!1}function et(t){var i=ps.exec(t._i);return null!==i?void(t._d=new Date(+i[1])):(tt(t),void(t._isValid===!1&&(delete t._isValid,e.createFromInputFallback(t))))}function it(t,e,i,s,o,n,r){var a=new Date(t,e,i,s,o,n,r);return 1970>t&&a.setFullYear(t),a}function st(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function ot(t){return nt(t)?366:365}function nt(t){return t%4===0&&t%100!==0||t%400===0}function rt(){return nt(this.year())}function at(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=Ct(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ht(t){return at(t,this._week.dow,this._week.doy).week}function dt(){return this._week.dow}function lt(){return this._week.doy}function ct(t){var e=this.localeData().week(this);return null==t?e:this.add(7*(t-e),"d")}function pt(t){var e=at(this,1,4).week;return null==t?e:this.add(7*(t-e),"d")}function ut(t,e,i,s,o){var n,r,a=st(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:ot(t-1)+r}}function mt(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 ft(t,e,i){return null!=t?t:null!=e?e:i}function gt(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function vt(t){var e,i,s,o,n=[];if(!t._d){for(s=gt(t),t._w&&null==t._a[es]&&null==t._a[ts]&&yt(t),t._dayOfYear&&(o=ft(t._a[Ji],s[Ji]),t._dayOfYear>ot(o)&&(t._pf._overflowDayOfYear=!0),i=st(o,0,t._dayOfYear),t._a[ts]=i.getUTCMonth(),t._a[es]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[is]&&0===t._a[ss]&&0===t._a[os]&&0===t._a[ns]&&(t._nextDay=!0,t._a[is]=0),t._d=(t._useUTC?st:it).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()-t._tzm),t._nextDay&&(t._a[is]=24)}}function yt(t){var e,i,s,o,n,r,a;e=t._w,null!=e.GG||null!=e.W||null!=e.E?(n=1,r=4,i=ft(e.GG,t._a[Ji],at(Ct(),1,4).year),s=ft(e.W,1),o=ft(e.E,1)):(n=t._locale._week.dow,r=t._locale._week.doy,i=ft(e.gg,t._a[Ji],at(Ct(),n,r).year),s=ft(e.w,1),null!=e.d?(o=e.d,n>o&&++s):o=null!=e.e?e.e+n:n),a=ut(i,s,o,r,n),t._a[Ji]=a.year,t._dayOfYear=a.dayOfYear}function bt(t){if(t._f===e.ISO_8601)return void tt(t);t._a=[],t._pf.empty=!0;var i,s,o,n,r,a=""+t._i,h=a.length,d=0;for(o=P(t._f,t._locale).match(Li)||[],i=0;i0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(s)+s.length),d+=s.length),Pi[n]?(s?t._pf.empty=!1:t._pf.unusedTokens.push(n),W(n,s,t)):t._strict&&!s&&t._pf.unusedTokens.push(n);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[is]<=12&&(t._pf.bigHour=void 0),t._a[is]=_t(t._locale,t._a[is],t._meridiem),vt(t),Q(t)}function _t(t,e,i){var s;return null==i?e:null!=t.meridiemHour?t.meridiemHour(e,i):null!=t.isPM?(s=t.isPM(i),s&&12>e&&(e+=12),s||12!==e||(e=0),e):e}function xt(t){var e,i,o,n,r;if(0===t._f.length)return t._pf.invalidFormat=!0,void(t._d=new Date(0/0));for(n=0;nr)&&(o=r,i=e));h(t,i||e)}function wt(t){if(!t._d){var e=C(t._i);t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],vt(t)}}function St(t){var e,i=t._i,s=t._f;return t._locale=t._locale||S(t._l),null===i||void 0===s&&""===i?c({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),m(i)?new u(Q(i)):(o(s)?xt(t):s?bt(t):Dt(t),e=new u(Q(t)),e._nextDay&&(e.add(1,"d"),e._nextDay=void 0),e))}function Dt(t){var i=t._i;void 0===i?t._d=new Date:n(i)?t._d=new Date(+i):"string"==typeof i?et(t):o(i)?(t._a=r(i.slice(0),function(t){return parseInt(t,10)}),vt(t)):"object"==typeof i?wt(t):"number"==typeof i?t._d=new Date(i):e.createFromInputFallback(t)}function Mt(t,e,i,o,n){var r={};return"boolean"==typeof i&&(o=i,i=void 0),r._isAMomentObject=!0,r._useUTC=r._isUTC=n,r._l=i,r._i=t,r._f=e,r._strict=o,r._pf=s(),St(r)}function Ct(t,e,i,s){return Mt(t,e,i,s,!1)}function Tt(t,e){var i,s;if(1===e.length&&o(e[0])&&(e=e[0]),!e.length)return Ct();for(i=e[0],s=1;st&&(t=-t,i="-"),i+N(~~(t/60),2)+e+N(~~t%60,2)})}function Lt(t){var e=(t||"").match(qi)||[],i=e[e.length-1]||[],s=(i+"").match(vs)||["-",0,0],o=+(60*s[1])+f(s[2]);return"+"===s[0]?o:-o}function zt(t,i){var s,o;return i._isUTC?(s=i.clone(),o=(m(t)||n(t)?+t:+Ct(t))-+s,s._d.setTime(+s._d+o),e.updateOffset(s,!1),s):Ct(t).local()}function At(t){return 15*-Math.round(t._d.getTimezoneOffset()/15)}function Pt(t,i){var s,o=this._offset||0;return null!=t?("string"==typeof t&&(t=Lt(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&i&&(s=At(this)),this._offset=t,this._isUTC=!0,null!=s&&this.add(s,"m"),o!==t&&(!i||this._changeInProgress?$t(this,Xt(t-o,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,e.updateOffset(this,!0),this._changeInProgress=null)),this):this._isUTC?o:At(this)}function Ft(t,e){return null!=t?("string"!=typeof t&&(t=-t),this.utcOffset(t,e),this):-this.utcOffset()}function Rt(t){return this.utcOffset(0,t)}function Ht(t){return this._isUTC&&(this.utcOffset(0,t),this._isUTC=!1,t&&this.subtract(At(this),"m")),this}function Bt(){return this._tzm?this.utcOffset(this._tzm):"string"==typeof this._i&&this.utcOffset(Lt(this._i)),this}function Yt(t){return t=t?Ct(t).utcOffset():0,(this.utcOffset()-t)%60===0}function Wt(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Gt(){if(this._a){var t=this._isUTC?d(this._a):Ct(this._a);return this.isValid()&&g(this._a,t.toArray())>0}return!1}function jt(){return!this._isUTC}function Vt(){return this._isUTC}function Ut(){return this._isUTC&&0===this._offset}function Xt(t,e){var i,s,o,n=t,r=null;return Nt(t)?n={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(n={},e?n[e]=t:n.milliseconds=t):(r=ys.exec(t))?(i="-"===r[1]?-1:1,n={y:0,d:f(r[es])*i,h:f(r[is])*i,m:f(r[ss])*i,s:f(r[os])*i,ms:f(r[ns])*i}):(r=bs.exec(t))?(i="-"===r[1]?-1:1,n={y:qt(r[2],i),M:qt(r[3],i),d:qt(r[4],i),h:qt(r[5],i),m:qt(r[6],i),s:qt(r[7],i),w:qt(r[8],i)}):null==n?n={}:"object"==typeof n&&("from"in n||"to"in n)&&(o=Qt(Ct(n.from),Ct(n.to)),n={},n.ms=o.milliseconds,n.M=o.months),s=new kt(n),Nt(t)&&a(t,"_locale")&&(s._locale=t._locale),s}function qt(t,e){var i=t&&parseFloat(t.replace(",","."));return(isNaN(i)?0:i)*e}function Zt(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 Qt(t,e){var i;return e=zt(e,t),t.isBefore(e)?i=Zt(t,e):(i=Zt(e,t),i.milliseconds=-i.milliseconds,i.months=-i.months),i}function Kt(t,e){return function(i,s){var o,n;return null===s||isNaN(+s)||(J(e,"moment()."+e+"(period, number) is deprecated. Please use moment()."+e+"(number, period)."),n=i,i=s,s=n),i="string"==typeof i?+i:i,o=Xt(i,s),$t(this,o,t),this}}function $t(t,i,s,o){var n=i._milliseconds,r=i._days,a=i._months;o=null==o?!0:o,n&&t._d.setTime(+t._d+n*s),r&&E(t,"Date",O(t,"Date")+r*s),a&&X(t,O(t,"Month")+a*s),o&&e.updateOffset(t,r||a)}function Jt(t){var e=t||Ct(),i=zt(e,this).startOf("day"),s=this.diff(i,"days",!0),o=-6>s?"sameElse":-1>s?"lastWeek":0>s?"lastDay":1>s?"sameDay":2>s?"nextDay":7>s?"nextWeek":"sameElse";return this.format(this.localeData().calendar(o,this,Ct(e)))}function te(){return new u(this)}function ee(t,e){var i;return e=M("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Ct(t),+this>+t):(i=m(t)?+t:+Ct(t),i<+this.clone().startOf(e))}function ie(t,e){var i;return e=M("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=m(t)?t:Ct(t),+t>+this):(i=m(t)?+t:+Ct(t),+this.clone().endOf(e)t?Math.ceil(t):Math.floor(t)}function re(t,e,i){var s,o,n=zt(t,this),r=6e4*(n.utcOffset()-this.utcOffset());return e=M(e),"year"===e||"month"===e||"quarter"===e?(o=ae(this,n),"quarter"===e?o/=3:"year"===e&&(o/=12)):(s=this-n,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-r)/864e5:"week"===e?(s-r)/6048e5:s),i?o:ne(o)}function ae(t,e){var i,s,o=12*(e.year()-t.year())+(e.month()-t.month()),n=t.clone().add(o,"months");return 0>e-n?(i=t.clone().add(o-1,"months"),s=(e-n)/(n-i)):(i=t.clone().add(o+1,"months"),s=(e-n)/(i-n)),-(o+s)}function he(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")}function de(){var t=this.clone().utc();return 0e;e++)if(this._weekdaysParse[e]||(i=Ct([2e3,1]).day(e),s="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[e]=new RegExp(s.replace(".",""),"i")),this._weekdaysParse[e].test(t))return e}function Pe(t){var e=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=t?(t=Ne(t,this.localeData()),this.add(t-e,"d")):e}function Fe(t){var e=(this.day()+7-this.localeData()._week.dow)%7;return null==t?e:this.add(t-e,"d")}function Re(t){return null==t?this.day()||7:this.day(this.day()%7?t:t-7)}function He(t,e){I(t,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),e)})}function Be(t,e){return e._meridiemParse}function Ye(t){return"p"===(t+"").toLowerCase().charAt(0)}function We(t,e,i){return t>11?i?"pm":"PM":i?"am":"AM"}function Ge(t){I(0,[t,3],0,"millisecond")}function je(){return this._isUTC?"UTC":""}function Ve(){return this._isUTC?"Coordinated Universal Time":""}function Ue(t){return Ct(1e3*t)}function Xe(){return Ct.apply(null,arguments).parseZone()}function qe(t,e,i){var s=this._calendar[t];return"function"==typeof s?s.call(e,i):s}function Ze(t){var e=this._longDateFormat[t];return!e&&this._longDateFormat[t.toUpperCase()]&&(e=this._longDateFormat[t.toUpperCase()].replace(/MMMM|MM|DD|dddd/g,function(t){return t.slice(1)}),this._longDateFormat[t]=e),e}function Qe(){return this._invalidDate}function Ke(t){return this._ordinal.replace("%d",t)}function $e(t){return t}function Je(t,e,i,s){var o=this._relativeTime[i];return"function"==typeof o?o(t,e,i,s):o.replace(/%d/i,t)}function ti(t,e){var i=this._relativeTime[t>0?"future":"past"];return"function"==typeof i?i(e):i.replace(/%s/i,e)}function ei(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 ii(t,e,i,s){var o=S(),n=d().set(s,e);return o[i](n,t)}function si(t,e,i,s,o){if("number"==typeof t&&(e=t,t=void 0),t=t||"",null!=e)return ii(t,e,i,o);var n,r=[];for(n=0;s>n;n++)r[n]=ii(t,n,i,o);return r}function oi(t,e){return si(t,e,"months",12,"month")}function ni(t,e){return si(t,e,"monthsShort",12,"month")}function ri(t,e){return si(t,e,"weekdays",7,"day")}function ai(t,e){return si(t,e,"weekdaysShort",7,"day")}function hi(t,e){return si(t,e,"weekdaysMin",7,"day")}function di(){var t=this._data;return this._milliseconds=Ys(this._milliseconds),this._days=Ys(this._days),this._months=Ys(this._months),t.milliseconds=Ys(t.milliseconds),t.seconds=Ys(t.seconds),t.minutes=Ys(t.minutes),t.hours=Ys(t.hours),t.months=Ys(t.months),t.years=Ys(t.years),this}function li(t,e,i,s){var o=Xt(e,i);return t._milliseconds+=s*o._milliseconds,t._days+=s*o._days,t._months+=s*o._months,t._bubble()}function ci(t,e){return li(this,t,e,1)}function pi(t,e){return li(this,t,e,-1)}function ui(){var t,e,i,s=this._milliseconds,o=this._days,n=this._months,r=this._data,a=0;return r.milliseconds=s%1e3,t=ne(s/1e3),r.seconds=t%60,e=ne(t/60),r.minutes=e%60,i=ne(e/60),r.hours=i%24,o+=ne(i/24),a=ne(mi(o)),o-=ne(fi(a)),n+=ne(o/30),o%=30,a+=ne(n/12),n%=12,r.days=o,r.months=n,r.years=a,this}function mi(t){return 400*t/146097}function fi(t){return 146097*t/400}function gi(t){var e,i,s=this._milliseconds;if(t=M(t),"month"===t||"year"===t)return e=this._days+s/864e5,i=this._months+12*mi(e),"month"===t?i:i/12;switch(e=this._days+Math.round(fi(this._months/12)),t){case"week":return e/7+s/6048e5;case"day":return e+s/864e5;case"hour":return 24*e+s/36e5;case"minute":return 24*e*60+s/6e4;case"second":return 24*e*60*60+s/1e3;case"millisecond":return Math.floor(24*e*60*60*1e3)+s;default:throw new Error("Unknown unit "+t)}}function vi(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*f(this._months/12)}function yi(t){return function(){return this.as(t)}}function bi(t){return t=M(t),this[t+"s"]()}function _i(t){return function(){return this._data[t]}}function xi(){return ne(this.days()/7)}function wi(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function Si(t,e,i){var s=Xt(t).abs(),o=so(s.as("s")),n=so(s.as("m")),r=so(s.as("h")),a=so(s.as("d")),h=so(s.as("M")),d=so(s.as("y")),l=o0,l[4]=i,wi.apply(null,l)}function Di(t,e){return void 0===oo[t]?!1:void 0===e?oo[t]:(oo[t]=e,!0)}function Mi(t){var e=this.localeData(),i=Si(this,!t,e);return t&&(i=e.pastFuture(+this,i)),e.postformat(i)}function Ci(){var t=no(this.years()),e=no(this.months()),i=no(this.days()),s=no(this.hours()),o=no(this.minutes()),n=no(this.seconds()+this.milliseconds()/1e3),r=this.asSeconds();return r?(0>r?"-":"")+"P"+(t?t+"Y":"")+(e?e+"M":"")+(i?i+"D":"")+(s||o||n?"T":"")+(s?s+"H":"")+(o?o+"M":"")+(n?n+"S":""):"P0D"}var Ti,Oi,Ei=e.momentProperties=[],ki=!1,Ni={},Ii={},Li=/(\[[^\[]*\])|(\\)?(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,4}|x|X|zz?|ZZ?|.)/g,zi=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ai={},Pi={},Fi=/\d/,Ri=/\d\d/,Hi=/\d{3}/,Bi=/\d{4}/,Yi=/[+-]?\d{6}/,Wi=/\d\d?/,Gi=/\d{1,3}/,ji=/\d{1,4}/,Vi=/[+-]?\d{1,6}/,Ui=/\d+/,Xi=/[+-]?\d+/,qi=/Z|[+-]\d\d:?\d\d/gi,Zi=/[+-]?\d+(\.\d{1,3})?/,Qi=/[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i,Ki={},$i={},Ji=0,ts=1,es=2,is=3,ss=4,os=5,ns=6;I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(t){return this.localeData().monthsShort(this,t)}),I("MMMM",0,0,function(t){return this.localeData().months(this,t)}),D("month","M"),F("M",Wi),F("MM",Wi,Ri),F("MMM",Qi),F("MMMM",Qi),B(["M","MM"],function(t,e){e[ts]=f(t)-1}),B(["MMM","MMMM"],function(t,e,i,s){var o=i._locale.monthsParse(t,s,i._strict);null!=o?e[ts]=o:i._pf.invalidMonth=t});var rs="January_February_March_April_May_June_July_August_September_October_November_December".split("_"),as="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),hs={};e.suppressDeprecationWarnings=!1;var ds=/^\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)?)?$/,ls=[["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}/]],cs=[["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/]],ps=/^\/?Date\((\-?\d+)/i;e.createFromInputFallback=$("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":""))}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),D("year","y"),F("Y",Xi),F("YY",Wi,Ri),F("YYYY",ji,Bi),F("YYYYY",Vi,Yi),F("YYYYYY",Vi,Yi),B(["YYYY","YYYYY","YYYYYY"],Ji),B("YY",function(t,i){i[Ji]=e.parseTwoDigitYear(t)}),e.parseTwoDigitYear=function(t){return f(t)+(f(t)>68?1900:2e3)};var us=T("FullYear",!1);I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),D("week","w"),D("isoWeek","W"),F("w",Wi),F("ww",Wi,Ri),F("W",Wi),F("WW",Wi,Ri),Y(["w","ww","W","WW"],function(t,e,i,s){e[s.substr(0,1)]=f(t)});var ms={dow:0,doy:6};I("DDD",["DDDD",3],"DDDo","dayOfYear"),D("dayOfYear","DDD"),F("DDD",Gi),F("DDDD",Hi),B(["DDD","DDDD"],function(t,e,i){i._dayOfYear=f(t)}),e.ISO_8601=function(){};var fs=$("moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",function(){var t=Ct.apply(null,arguments);return this>t?this:t}),gs=$("moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",function(){var t=Ct.apply(null,arguments);return t>this?this:t});It("Z",":"),It("ZZ",""),F("Z",qi),F("ZZ",qi),B(["Z","ZZ"],function(t,e,i){i._useUTC=!0,i._tzm=Lt(t)});var vs=/([\+\-]|\d\d)/gi;e.updateOffset=function(){};var ys=/(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,bs=/^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,_s=Kt(1,"add"),xs=Kt(-1,"subtract");e.defaultFormat="YYYY-MM-DDTHH:mm:ssZ";var ws=$("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)});I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),De("gggg","weekYear"),De("ggggg","weekYear"),De("GGGG","isoWeekYear"),De("GGGGG","isoWeekYear"),D("weekYear","gg"),D("isoWeekYear","GG"),F("G",Xi),F("g",Xi),F("GG",Wi,Ri),F("gg",Wi,Ri),F("GGGG",ji,Bi),F("gggg",ji,Bi),F("GGGGG",Vi,Yi),F("ggggg",Vi,Yi),Y(["gggg","ggggg","GGGG","GGGGG"],function(t,e,i,s){e[s.substr(0,2)]=f(t)}),Y(["gg","GG"],function(t,i,s,o){i[o]=e.parseTwoDigitYear(t)}),I("Q",0,0,"quarter"),D("quarter","Q"),F("Q",Fi),B("Q",function(t,e){e[ts]=3*(f(t)-1)}),I("D",["DD",2],"Do","date"),D("date","D"),F("D",Wi),F("DD",Wi,Ri),F("Do",function(t,e){return t?e._ordinalParse:e._ordinalParseLenient}),B(["D","DD"],es),B("Do",function(t,e){e[es]=f(t.match(Wi)[0],10)});var Ss=T("Date",!0);I("d",0,"do","day"),I("dd",0,0,function(t){return this.localeData().weekdaysMin(this,t)}),I("ddd",0,0,function(t){return this.localeData().weekdaysShort(this,t)}),I("dddd",0,0,function(t){return this.localeData().weekdays(this,t)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),D("day","d"),D("weekday","e"),D("isoWeekday","E"),F("d",Wi),F("e",Wi),F("E",Wi),F("dd",Qi),F("ddd",Qi),F("dddd",Qi),Y(["dd","ddd","dddd"],function(t,e,i){var s=i._locale.weekdaysParse(t);null!=s?e.d=s:i._pf.invalidWeekday=t}),Y(["d","e","E"],function(t,e,i,s){e[s]=f(t)});var Ds="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Ms="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Cs="Su_Mo_Tu_We_Th_Fr_Sa".split("_");I("H",["HH",2],0,"hour"),I("h",["hh",2],0,function(){return this.hours()%12||12}),He("a",!0),He("A",!1),D("hour","h"),F("a",Be),F("A",Be),F("H",Wi),F("h",Wi),F("HH",Wi,Ri),F("hh",Wi,Ri),B(["H","HH"],is),B(["a","A"],function(t,e,i){i._isPm=i._locale.isPM(t),i._meridiem=t}),B(["h","hh"],function(t,e,i){e[is]=f(t),i._pf.bigHour=!0});var Ts=/[ap]\.?m?\.?/i,Os=T("Hours",!0);I("m",["mm",2],0,"minute"),D("minute","m"),F("m",Wi),F("mm",Wi,Ri),B(["m","mm"],ss);var Es=T("Minutes",!1);I("s",["ss",2],0,"second"),D("second","s"),F("s",Wi),F("ss",Wi,Ri),B(["s","ss"],os);var ks=T("Seconds",!1);I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),Ge("SSS"),Ge("SSSS"),D("millisecond","ms"),F("S",Gi,Fi),F("SS",Gi,Ri),F("SSS",Gi,Hi),F("SSSS",Ui),B(["S","SS","SSS","SSSS"],function(t,e){e[ns]=f(1e3*("0."+t))});var Ns=T("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var Is=u.prototype;Is.add=_s,Is.calendar=Jt,Is.clone=te,Is.diff=re,Is.endOf=ge,Is.format=le,Is.from=ce,Is.fromNow=pe,Is.get=k,Is.invalidAt=Se,Is.isAfter=ee,Is.isBefore=ie,Is.isBetween=se,Is.isSame=oe,Is.isValid=xe,Is.lang=ws,Is.locale=ue,Is.localeData=me,Is.max=gs,Is.min=fs,Is.parsingFlags=we,Is.set=k,Is.startOf=fe,Is.subtract=xs,Is.toArray=_e,Is.toDate=be,Is.toISOString=de,Is.toJSON=de,Is.toString=he,Is.unix=ye,Is.valueOf=ve,Is.year=us,Is.isLeapYear=rt,Is.weekYear=Ce,Is.isoWeekYear=Te,Is.quarter=Is.quarters=ke,Is.month=q,Is.daysInMonth=Z,Is.week=Is.weeks=ct,Is.isoWeek=Is.isoWeeks=pt,Is.weeksInYear=Ee,Is.isoWeeksInYear=Oe,Is.date=Ss,Is.day=Is.days=Pe,Is.weekday=Fe,Is.isoWeekday=Re,Is.dayOfYear=mt,Is.hour=Is.hours=Os,Is.minute=Is.minutes=Es,Is.second=Is.seconds=ks,Is.millisecond=Is.milliseconds=Ns,Is.utcOffset=Pt,Is.utc=Rt,Is.local=Ht,Is.parseZone=Bt,Is.hasAlignedHourOffset=Yt,Is.isDST=Wt,Is.isDSTShifted=Gt,Is.isLocal=jt,Is.isUtcOffset=Vt,Is.isUtc=Ut,Is.isUTC=Ut,Is.zoneAbbr=je,Is.zoneName=Ve,Is.dates=$("dates accessor is deprecated. Use date instead.",Ss),Is.months=$("months accessor is deprecated. Use month instead",q),Is.years=$("years accessor is deprecated. Use year instead",us),Is.zone=$("moment().zone is deprecated, use moment().utcOffset instead. https://github.com/moment/moment/issues/1779",Ft); + +var Ls=Is,zs={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},As={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY LT",LLLL:"dddd, MMMM D, YYYY LT"},Ps="Invalid date",Fs="%d",Rs=/\d{1,2}/,Hs={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"},Bs=v.prototype;Bs._calendar=zs,Bs.calendar=qe,Bs._longDateFormat=As,Bs.longDateFormat=Ze,Bs._invalidDate=Ps,Bs.invalidDate=Qe,Bs._ordinal=Fs,Bs.ordinal=Ke,Bs._ordinalParse=Rs,Bs.preparse=$e,Bs.postformat=$e,Bs._relativeTime=Hs,Bs.relativeTime=Je,Bs.pastFuture=ti,Bs.set=ei,Bs.months=j,Bs._months=rs,Bs.monthsShort=V,Bs._monthsShort=as,Bs.monthsParse=U,Bs.week=ht,Bs._week=ms,Bs.firstDayOfYear=lt,Bs.firstDayOfWeek=dt,Bs.weekdays=Ie,Bs._weekdays=Ds,Bs.weekdaysMin=ze,Bs._weekdaysMin=Cs,Bs.weekdaysShort=Le,Bs._weekdaysShort=Ms,Bs.weekdaysParse=Ae,Bs.isPM=Ye,Bs._meridiemParse=Ts,Bs.meridiem=We,x("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===f(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),e.lang=$("moment.lang is deprecated. Use moment.locale instead.",x),e.langData=$("moment.langData is deprecated. Use moment.localeData instead.",S);var Ys=Math.abs,Ws=yi("ms"),Gs=yi("s"),js=yi("m"),Vs=yi("h"),Us=yi("d"),Xs=yi("w"),qs=yi("M"),Zs=yi("y"),Qs=_i("milliseconds"),Ks=_i("seconds"),$s=_i("minutes"),Js=_i("hours"),to=_i("days"),eo=_i("months"),io=_i("years"),so=Math.round,oo={s:45,m:45,h:22,d:26,M:11},no=Math.abs,ro=kt.prototype;ro.abs=di,ro.add=ci,ro.subtract=pi,ro.as=gi,ro.asMilliseconds=Ws,ro.asSeconds=Gs,ro.asMinutes=js,ro.asHours=Vs,ro.asDays=Us,ro.asWeeks=Xs,ro.asMonths=qs,ro.asYears=Zs,ro.valueOf=vi,ro._bubble=ui,ro.get=bi,ro.milliseconds=Qs,ro.seconds=Ks,ro.minutes=$s,ro.hours=Js,ro.days=to,ro.weeks=xi,ro.months=eo,ro.years=io,ro.humanize=Mi,ro.toISOString=Ci,ro.toString=Ci,ro.toJSON=Ci,ro.locale=ue,ro.localeData=me,ro.toIsoString=$("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Ci),ro.lang=ws,I("X",0,0,"unix"),I("x",0,0,"valueOf"),F("x",Xi),F("X",Zi),B("X",function(t,e,i){i._d=new Date(1e3*parseFloat(t,10))}),B("x",function(t,e,i){i._d=new Date(f(t))}),e.version="2.10.0",i(Ct),e.fn=Ls,e.min=Ot,e.max=Et,e.utc=d,e.unix=Ue,e.months=oi,e.isDate=n,e.locale=x,e.invalid=c,e.duration=Xt,e.isMoment=m,e.weekdays=ri,e.parseZone=Xe,e.localeData=S,e.isDuration=Nt,e.monthsShort=ni,e.weekdaysMin=hi,e.defineLocale=w,e.weekdaysShort=ai,e.normalizeUnits=M,e.relativeTimeThreshold=Di;var ao=e;return ao})}).call(e,i(71)(t))},function(t,e,i){var s;!function(o,n){function r(){a.READY||(w.determineEventTypes(),x.each(a.gestures,function(t){D.register(t)}),w.onTouch(a.DOCUMENT,v,D.detect),w.onTouch(a.DOCUMENT,y,D.detect),a.READY=!0)}var a=function M(t,e){return new M.Instance(t,e||{})};a.VERSION="1.1.3",a.defaults={behavior:{userSelect:"none",touchAction:"pan-y",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},a.DOCUMENT=document,a.HAS_POINTEREVENTS=navigator.pointerEnabled||navigator.msPointerEnabled,a.HAS_TOUCHEVENTS="ontouchstart"in o,a.IS_MOBILE=/mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent),a.NO_MOUSEEVENTS=a.HAS_TOUCHEVENTS&&a.IS_MOBILE||a.HAS_POINTEREVENTS,a.CALCULATE_INTERVAL=25;var h={},d=a.DIRECTION_DOWN="down",l=a.DIRECTION_LEFT="left",c=a.DIRECTION_UP="up",p=a.DIRECTION_RIGHT="right",u=a.POINTER_MOUSE="mouse",m=a.POINTER_TOUCH="touch",f=a.POINTER_PEN="pen",g=a.EVENT_START="start",v=a.EVENT_MOVE="move",y=a.EVENT_END="end",b=a.EVENT_RELEASE="release",_=a.EVENT_TOUCH="touch";a.READY=!1,a.plugins=a.plugins||{},a.gestures=a.gestures||{};var x=a.utils={extend:function(t,e,i){for(var s in e)!e.hasOwnProperty(s)||t[s]!==n&&i||(t[s]=e[s]);return t},on:function(t,e,i){t.addEventListener(e,i,!1)},off:function(t,e,i){t.removeEventListener(e,i,!1)},each:function(t,e,i){var s,o;if("forEach"in t)t.forEach(e,i);else if(t.length!==n){for(s=0,o=t.length;o>s;s++)if(e.call(i,t[s],s,t)===!1)return}else for(s in t)if(t.hasOwnProperty(s)&&e.call(i,t[s],s,t)===!1)return},inStr:function(t,e){return t.indexOf(e)>-1},inArray:function(t,e){if(t.indexOf){var i=t.indexOf(e);return-1===i?!1:i}for(var s=0,o=t.length;o>s;s++)if(t[s]===e)return s;return!1},toArray:function(t){return Array.prototype.slice.call(t,0)},hasParent:function(t,e){for(;t;){if(t==e)return!0;t=t.parentNode}return!1},getCenter:function(t){var e=[],i=[],s=[],o=[],n=Math.min,r=Math.max;return 1===t.length?{pageX:t[0].pageX,pageY:t[0].pageY,clientX:t[0].clientX,clientY:t[0].clientY}:(x.each(t,function(t){e.push(t.pageX),i.push(t.pageY),s.push(t.clientX),o.push(t.clientY)}),{pageX:(n.apply(Math,e)+r.apply(Math,e))/2,pageY:(n.apply(Math,i)+r.apply(Math,i))/2,clientX:(n.apply(Math,s)+r.apply(Math,s))/2,clientY:(n.apply(Math,o)+r.apply(Math,o))/2})},getVelocity:function(t,e,i){return{x:Math.abs(e/t)||0,y:Math.abs(i/t)||0}},getAngle:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return 180*Math.atan2(s,i)/Math.PI},getDirection:function(t,e){var i=Math.abs(t.clientX-e.clientX),s=Math.abs(t.clientY-e.clientY);return i>=s?t.clientX-e.clientX>0?l:p:t.clientY-e.clientY>0?c:d},getDistance:function(t,e){var i=e.clientX-t.clientX,s=e.clientY-t.clientY;return Math.sqrt(i*i+s*s)},getScale:function(t,e){return t.length>=2&&e.length>=2?this.getDistance(e[0],e[1])/this.getDistance(t[0],t[1]):1},getRotation:function(t,e){return t.length>=2&&e.length>=2?this.getAngle(e[1],e[0])-this.getAngle(t[1],t[0]):0},isVertical:function(t){return t==c||t==d},setPrefixedCss:function(t,e,i,s){var o=["","Webkit","Moz","O","ms"];e=x.toCamelCase(e);for(var n=0;n0&&this.started&&(r=v),this.started=!0;var d=this.collectEventData(i,r,o,t);return e!=y&&s.call(D,d),a&&(d.changedLength=h,d.eventType=a,s.call(D,d),d.eventType=r,delete d.changedLength),r==y&&(s.call(D,d),this.started=!1),r},determineEventTypes:function(){var t;return t=a.HAS_POINTEREVENTS?o.PointerEvent?["pointerdown","pointermove","pointerup pointercancel lostpointercapture"]:["MSPointerDown","MSPointerMove","MSPointerUp MSPointerCancel MSLostPointerCapture"]:a.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],h[g]=t[0],h[v]=t[1],h[y]=t[2],h},getTouchList:function(t,e){if(a.HAS_POINTEREVENTS)return S.getTouchList();if(t.touches){if(e==v)return t.touches;var i=[],s=[].concat(x.toArray(t.touches),x.toArray(t.changedTouches)),o=[];return x.each(s,function(t){x.inArray(i,t.identifier)===!1&&o.push(t),i.push(t.identifier)}),o}return t.identifier=1,[t]},collectEventData:function(t,e,i,s){var o=m;return x.inStr(s.type,"mouse")||S.matchType(u,s)?o=u:S.matchType(f,s)&&(o=f),{center:x.getCenter(i),timeStamp:Date.now(),target:s.target,touches:i,eventType:e,pointerType:o,srcEvent:s,preventDefault:function(){var t=this.srcEvent;t.preventManipulation&&t.preventManipulation(),t.preventDefault&&t.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return D.stopDetect()}}}},S=a.PointerEvent={pointers:{},getTouchList:function(){var t=[];return x.each(this.pointers,function(e){t.push(e)}),t},updatePointer:function(t,e){t==y||t!=y&&1!==e.buttons?delete this.pointers[e.pointerId]:(e.identifier=e.pointerId,this.pointers[e.pointerId]=e)},matchType:function(t,e){if(!e.pointerType)return!1;var i=e.pointerType,s={};return s[u]=i===(e.MSPOINTER_TYPE_MOUSE||u),s[m]=i===(e.MSPOINTER_TYPE_TOUCH||m),s[f]=i===(e.MSPOINTER_TYPE_PEN||f),s[t]},reset:function(){this.pointers={}}},D=a.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(t,e){this.current||(this.stopped=!1,this.current={inst:t,startEvent:x.extend({},e),lastEvent:!1,lastCalcEvent:!1,futureCalcEvent:!1,lastCalcData:{},name:""},this.detect(e))},detect:function(t){if(this.current&&!this.stopped){t=this.extendEventData(t);var e=this.current.inst,i=e.options;return x.each(this.gestures,function(s){!this.stopped&&e.enabled&&i[s.name]&&s.handler.call(s,t,e)},this),this.current&&(this.current.lastEvent=t),t.eventType==y&&this.stopDetect(),t}},stopDetect:function(){this.previous=x.extend({},this.current),this.current=null,this.stopped=!0},getCalculatedData:function(t,e,i,s,o){var n=this.current,r=!1,h=n.lastCalcEvent,d=n.lastCalcData;h&&t.timeStamp-h.timeStamp>a.CALCULATE_INTERVAL&&(e=h.center,i=t.timeStamp-h.timeStamp,s=t.center.clientX-h.center.clientX,o=t.center.clientY-h.center.clientY,r=!0),(t.eventType==_||t.eventType==b)&&(n.futureCalcEvent=t),(!n.lastCalcEvent||r)&&(d.velocity=x.getVelocity(i,s,o),d.angle=x.getAngle(e,t.center),d.direction=x.getDirection(e,t.center),n.lastCalcEvent=n.futureCalcEvent||t,n.futureCalcEvent=t),t.velocityX=d.velocity.x,t.velocityY=d.velocity.y,t.interimAngle=d.angle,t.interimDirection=d.direction},extendEventData:function(t){var e=this.current,i=e.startEvent,s=e.lastEvent||i;(t.eventType==_||t.eventType==b)&&(i.touches=[],x.each(t.touches,function(t){i.touches.push({clientX:t.clientX,clientY:t.clientY})}));var o=t.timeStamp-i.timeStamp,n=t.center.clientX-i.center.clientX,r=t.center.clientY-i.center.clientY;return this.getCalculatedData(t,s.center,o,n,r),x.extend(t,{startEvent:i,deltaTime:o,deltaX:n,deltaY:r,distance:x.getDistance(i.center,t.center),angle:x.getAngle(i.center,t.center),direction:x.getDirection(i.center,t.center),scale:x.getScale(i.touches,t.touches),rotation:x.getRotation(i.touches,t.touches)}),t},register:function(t){var e=t.defaults||{};return e[t.name]===n&&(e[t.name]=!0),x.extend(a.defaults,e,!0),t.index=t.index||1e3,this.gestures.push(t),this.gestures.sort(function(t,e){return t.indexe.index?1:0}),this.gestures}};a.Instance=function(t,e){var i=this;r(),this.element=t,this.enabled=!0,x.each(e,function(t,i){delete e[i],e[x.toCamelCase(i)]=t}),this.options=x.extend(x.extend({},a.defaults),e||{}),this.options.behavior&&x.toggleBehavior(this.element,this.options.behavior,!0),this.eventStartHandler=w.onTouch(t,g,function(t){i.enabled&&t.eventType==g?D.startDetect(i,t):t.eventType==_&&D.detect(t)}),this.eventHandlers=[]},a.Instance.prototype={on:function(t,e){var i=this;return w.on(i.element,t,e,function(t){i.eventHandlers.push({gesture:t,handler:e})}),i},off:function(t,e){var i=this;return w.off(i.element,t,e,function(t){var s=x.inArray({gesture:t,handler:e});s!==!1&&i.eventHandlers.splice(s,1)}),i},trigger:function(t,e){e||(e={});var i=a.DOCUMENT.createEvent("Event");i.initEvent(t,!0,!0),i.gesture=e;var s=this.element;return x.hasParent(e.target,s)&&(s=e.target),s.dispatchEvent(i),this},enable:function(t){return this.enabled=t,this},dispose:function(){var t,e;for(x.toggleBehavior(this.element,this.options.behavior,!1),t=-1;e=this.eventHandlers[++t];)x.off(this.element,e.gesture,e.handler);return this.eventHandlers=[],w.off(this.element,h[g],this.eventStartHandler),null}},function(t){function e(e,s){var o=D.current;if(!(s.options.dragMaxTouches>0&&e.touches.length>s.options.dragMaxTouches))switch(e.eventType){case g:i=!1;break;case v:if(e.distance0)){var r=Math.abs(s.options.dragMinDistance/e.distance);n.pageX+=e.deltaX*r,n.pageY+=e.deltaY*r,n.clientX+=e.deltaX*r,n.clientY+=e.deltaY*r,e=D.extendEventData(e)}(o.lastEvent.dragLockToAxis||s.options.dragLockToAxis&&s.options.dragLockMinDistance<=e.distance)&&(e.dragLockToAxis=!0);var a=o.lastEvent.direction;e.dragLockToAxis&&a!==e.direction&&(e.direction=x.isVertical(a)?e.deltaY<0?c:d:e.deltaX<0?l:p),i||(s.trigger(t+"start",e),i=!0),s.trigger(t,e),s.trigger(t+e.direction,e);var h=x.isVertical(e.direction);(s.options.dragBlockVertical&&h||s.options.dragBlockHorizontal&&!h)&&e.preventDefault();break;case b:i&&e.changedLength<=s.options.dragMaxTouches&&(s.trigger(t+"end",e),i=!1);break;case y:i=!1}}var i=!1;a.gestures.Drag={name:t,index:50,handler:e,defaults:{dragMinDistance:10,dragDistanceCorrection:!0,dragMaxTouches:1,dragBlockHorizontal:!1,dragBlockVertical:!1,dragLockToAxis:!1,dragLockMinDistance:25}}}("drag"),a.gestures.Gesture={name:"gesture",index:1337,handler:function(t,e){e.trigger(this.name,t)}},function(t){function e(e,s){var o=s.options,n=D.current;switch(e.eventType){case g:clearTimeout(i),n.name=t,i=setTimeout(function(){n&&n.name==t&&s.trigger(t,e)},o.holdTimeout);break;case v:e.distance>o.holdThreshold&&clearTimeout(i);break;case b:clearTimeout(i)}}var i;a.gestures.Hold={name:t,index:10,defaults:{holdTimeout:500,holdThreshold:2},handler:e}}("hold"),a.gestures.Release={name:"release",index:1/0,handler:function(t,e){t.eventType==b&&e.trigger(this.name,t)}},a.gestures.Swipe={name:"swipe",index:40,defaults:{swipeMinTouches:1,swipeMaxTouches:1,swipeVelocityX:.6,swipeVelocityY:.6},handler:function(t,e){if(t.eventType==b){var i=t.touches.length,s=e.options;if(is.swipeMaxTouches)return;(t.velocityX>s.swipeVelocityX||t.velocityY>s.swipeVelocityY)&&(e.trigger(this.name,t),e.trigger(this.name+t.direction,t))}}},function(t){function e(e,s){var o,n,r=s.options,a=D.current,h=D.previous;switch(e.eventType){case g:i=!1;break;case v:i=i||e.distance>r.tapMaxDistance;break;case y:!x.inStr(e.srcEvent.type,"cancel")&&e.deltaTimes.options.transformMinRotation&&s.trigger("rotate",e),o>s.options.transformMinScale&&(s.trigger("pinch",e),s.trigger("pinch"+(e.scale<1?"in":"out"),e));break;case b:i&&e.changedLength<2&&(s.trigger(t+"end",e),i=!1)}}var i=!1;a.gestures.Transform={name:t,index:45,defaults:{transformMinScale:.01,transformMinRotation:1},handler:e}}("transform"),s=function(){return a}.call(e,i,e,t),!(s!==n&&(t.exports=s))}(window)},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
', +this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var d;d=document.getElementById("graph_BH_gc"),d.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),d=document.getElementById("graph_BH_cg"),d.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),d=document.getElementById("graph_BH_sc"),d.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),d=document.getElementById("graph_BH_sl"),d.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),d=document.getElementById("graph_BH_damp"),d.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),d=document.getElementById("graph_R_nd"),d.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),d=document.getElementById("graph_R_cg"),d.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),d=document.getElementById("graph_R_sc"),d.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),d=document.getElementById("graph_R_sl"),d.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),d=document.getElementById("graph_R_damp"),d.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),d=document.getElementById("graph_H_nd"),d.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),d=document.getElementById("graph_H_cg"),d.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),d=document.getElementById("graph_H_sc"),d.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),d=document.getElementById("graph_H_sl"),d.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),d=document.getElementById("graph_H_damp"),d.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),d=document.getElementById("graph_H_direction"),d.onchange=a.bind(this,"graph_H_direction",i,"hierarchicalLayout_direction"),d=document.getElementById("graph_H_levsep"),d.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),d=document.getElementById("graph_H_nspac"),d.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var l=document.getElementById("graph_physicsMethod1"),c=document.getElementById("graph_physicsMethod2"),p=document.getElementById("graph_physicsMethod3");c.checked=!0,this.constants.physics.barnesHut.enabled&&(l.checked=!0),this.constants.hierarchicalLayout.enabled&&(p.checked=!0);var u=document.getElementById("graph_toggleSmooth"),m=document.getElementById("graph_repositionNodes"),f=document.getElementById("graph_generateOptions");u.onclick=s.bind(this),m.onclick=o.bind(this),f.onclick=n.bind(this),u.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),l.onchange=r.bind(this),c.onchange=r.bind(this),p.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t,e,i){e.startWithClustering=function(){this.clusterToFit(this.constants.clustering.initialMaxNodes,!0),this.updateLabels(),1==this.constants.stabilize&&this._stabilize(),this.start()},e.clusterToFit=function(t,e){for(var i=this.nodeIndices.length,s=50,o=0;i>t&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),this.forceAggregateHubs(!0),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&1==this.constants.clustering.clusterByZoom&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length,r=this.previousScalethis.scale&&0==t;1==a&&this._collapseSector(),1==a||-1==t?this._formClusters(i):(1==r||1==t)&&(1==i?this._openClusters(e,i):this._openClusters(e,!1)),this._updateNodeIndexList(),this.nodeIndices.length!=n||1!=a&&-1!=t||(this._aggregateHubs(i),this._updateNodeIndexList()),(1==a||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this.updateLabels(),this._updateCalculationNodes(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){if(1==this.constants.clustering.clusterByZoom)for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(void 0===s&&(s=!1),e=s||e,t.formationScalei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdges.length?this._addToCluster(r,a,!1):1==r.dynamicEdges.length&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdges.length>=this.hubThreshold&&0==i||t.dynamicEdges.length==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e){var u=[],m={};for(c=0;l>c;c++){p=this.edges[d[c]];var f=this.nodes[p.fromId==t.id?p.toId:p.fromId];void 0===m[f.id]&&(m[f.id]=!0,u.push(f))}for(c=0;c1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdges.length),t+=n.dynamicEdges.length,e+=Math.pow(n.dynamicEdges.length,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdges.length&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdges.length&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37),r=i(45);e._clearManipulatorBar=function(){this._recursiveDOMDelete(this.manipulationDiv),this.manipulationDOM={},this._cleanManipulatorHammers(),this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1,this.freezeSimulation(!1)},e._cleanManipulatorHammers=function(){if(0!=this.manipulationHammers.length){for(var t=0;t1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag;var a=this;this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=a.edges.connectionEdge;i.to.x=a._XconvertDOMtoCanvas(e.x),i.to.y=a._YconvertDOMtoCanvas(e.y),a._redraw()},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start()}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button");var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.length){for(var t=0;t0){var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s,o,n=0;n1&&s.hierarchyEnumerated===!1&&this._setLevelDirected(s.level,s.edges,s.id)},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e,i){function s(t){throw new Error("Cannot find module '"+t+"'.")}s.keys=function(){return[]},s.resolve=s,t.exports=s,s.id=67},function(t,e,i){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=Math.max(i,.01*g),s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e,i){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.thetaInverted){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},e._placeInRegion=function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},e._splitBranch=function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},function(t,e,i){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}}])}); //# sourceMappingURL=vis.map diff --git a/docs/graph2d.html b/docs/graph2d.html index 68aad11c..652a94ae 100644 --- a/docs/graph2d.html +++ b/docs/graph2d.html @@ -852,6 +852,13 @@ Graph2d.clear({options: true}); // clear options only + + fit() + none + Adjust the visible window such that it fits all items. + + + getCurrentTime() Date @@ -904,9 +911,13 @@ Graph2d.clear({options: true}); // clear options only - fit() + hiddenDates + Object none - Adjust the visible window such that it fits all items. + This option allows you to hide specific timespans from the time axis. The dates can be supplied as an object: + {start: '2014-03-21 00:00:00', end: '2014-03-28 00:00:00', [repeat:'daily']} or as an Array of these objects. The repeat argument is optional. + The possible values are (case-sensitive): daily, weekly, monthly, yearly. To hide a weekend, pick any Saturday as start and the following Monday as end + and set repeat to weekly. diff --git a/docs/timeline.html b/docs/timeline.html index 5034cb9e..bb3ebebd 100644 --- a/docs/timeline.html +++ b/docs/timeline.html @@ -554,6 +554,13 @@ var options = { A map with i18n locales. See section Localization for more information. + + margin + Number | Object + Object + When a number, applies the margin to margin.axis, margin.item.horizontal, and margin.item.vertical. + + margin.axis Number @@ -680,9 +687,23 @@ var options = { orientation + String | Object + 'bottom' + Orientation of the timelines axis and items. When orientation is a string, the value is applied to both items and axis. Can be 'top', 'bottom' (default), or 'both'. + + + + orientation.axis + String + 'bottom' + Orientation of the timeline axis: 'top', 'bottom' (default), or 'both'. If orientation is 'bottom', the time axis is drawn at the bottom. When 'top', the axis is drawn on top. When 'both', two axes are drawn, both on top and at the bottom. + + + + orientation.item String 'bottom' - Orientation of the timeline: 'top', 'bottom' (default), or 'both'. If orientation is 'bottom', the time axis is drawn at the bottom. When 'top', the axis is drawn on top. When 'both', two axes are drawn, both on top and at the bottom. + Orientation of the timeline items: 'top' or 'bottom' (default). Determines whether items are aligned to the top or bottom of the Timeline. diff --git a/download/vis.zip b/download/vis.zip index eec4119e..f2fb83db 100644 Binary files a/download/vis.zip and b/download/vis.zip differ diff --git a/examples/graph2d/01_basic.html b/examples/graph2d/01_basic.html index 84565a9e..8b0510b8 100644 --- a/examples/graph2d/01_basic.html +++ b/examples/graph2d/01_basic.html @@ -44,7 +44,7 @@ var dataset = new vis.DataSet(items); var options = { start: '2014-06-10', - end: '2014-06-18', + end: '2014-06-18' }; var graph2d = new vis.Graph2d(container, dataset, options); diff --git a/examples/graph2d/13_localization.html b/examples/graph2d/13_localization.html index 777f558e..d9a0cf53 100644 --- a/examples/graph2d/13_localization.html +++ b/examples/graph2d/13_localization.html @@ -13,7 +13,7 @@ } - + diff --git a/examples/graph2d/index.html b/examples/graph2d/index.html index 560f9d3f..83eeaf42 100644 --- a/examples/graph2d/index.html +++ b/examples/graph2d/index.html @@ -25,6 +25,7 @@

16_bothAxis_titles.html

17_dynamicStyling.html

18_scatterplot.html

+

19_labels.html

diff --git a/index.html b/index.html index 88f36891..3934aeb8 100644 --- a/index.html +++ b/index.html @@ -221,7 +221,7 @@

download

- vis.zip (version 3.11.0) + vis.zip (version 3.12.0)