diff --git a/HISTORY.md b/HISTORY.md index ea20d4e8..5ad4d874 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,6 +2,13 @@ http://visjs.org +## not yet released, version 3.7.3 + +### Graph2d + +- Fixed round-off errors of zero on the y-axis. + + ## 2014-12-09, version 3.7.2 ### Timeline diff --git a/dist/vis.js b/dist/vis.js index 905a1130..26b5d27f 100644 --- a/dist/vis.js +++ b/dist/vis.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.7.2-SNAPSHOT - * @date 2014-12-16 + * @date 2014-12-18 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -7619,7 +7619,10 @@ return /******/ (function(modules) { // webpackBootstrap * @return {String} current The current date */ DataStep.prototype.getCurrent = function(decimals) { - var toPrecision = '' + Number(this.current).toPrecision(5); + // prevent round-off errors when close to zero + var current = (Math.abs(this.current) < this.step / 2) ? 0 : this.current; + var toPrecision = '' + Number(current).toPrecision(5); + // If decimals is specified, then limit or extend the string as required if(decimals !== undefined && !isNaN(Number(decimals))) { // If string includes exponent, then we need to add it to the end @@ -26744,2168 +26747,2470 @@ return /******/ (function(modules) { // webpackBootstrap /* 59 */ /***/ function(module, exports, __webpack_require__) { - var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v1.1.3 - 2014-05-20 - * http://eightmedia.github.io/hammer.js + var __WEBPACK_AMD_DEFINE_RESULT__;/*! Hammer.JS - v2.0.4 - 2014-09-28 + * http://hammerjs.github.io/ * - * Copyright (c) 2014 Jorik Tangelder ; + * Copyright (c) 2014 Jorik Tangelder; * Licensed under the MIT license */ - - (function(window, undefined) { + (function(window, document, exportName, undefined) { 'use strict'; - /** - * @main - * @module hammer - * - * @class Hammer - * @static - */ + var VENDOR_PREFIXES = ['', 'webkit', 'moz', 'MS', 'ms', 'o']; + var TEST_ELEMENT = document.createElement('div'); + + var TYPE_FUNCTION = 'function'; + + var round = Math.round; + var abs = Math.abs; + var now = Date.now; /** - * Hammer, use this to create instances - * ```` - * var hammertime = new Hammer(myElement); - * ```` - * - * @method Hammer - * @param {HTMLElement} element - * @param {Object} [options={}] - * @return {Hammer.Instance} + * set a timeout with a given scope + * @param {Function} fn + * @param {Number} timeout + * @param {Object} context + * @returns {number} */ - var Hammer = function Hammer(element, options) { - return new Hammer.Instance(element, options || {}); - }; + function setTimeoutContext(fn, timeout, context) { + return setTimeout(bindFn(fn, context), timeout); + } /** - * version, as defined in package.json - * the value will be set at each build - * @property VERSION - * @final - * @type {String} + * if the argument is an array, we want to execute the fn on each entry + * if it aint an array we don't want to do a thing. + * this is used by all the methods that accept a single and array argument. + * @param {*|Array} arg + * @param {String} fn + * @param {Object} [context] + * @returns {Boolean} */ - Hammer.VERSION = '1.1.3'; + function invokeArrayArg(arg, fn, context) { + if (Array.isArray(arg)) { + each(arg, context[fn], context); + return true; + } + return false; + } /** - * default settings. - * more settings are defined per gesture at `/gestures`. Each gesture can be disabled/enabled - * by setting it's name (like `swipe`) to false. - * You can set the defaults for all instances by changing this object before creating an instance. - * @example - * ```` - * Hammer.defaults.drag = false; - * Hammer.defaults.behavior.touchAction = 'pan-y'; - * delete Hammer.defaults.behavior.userSelect; - * ```` - * @property defaults - * @type {Object} + * walk objects and arrays + * @param {Object} obj + * @param {Function} iterator + * @param {Object} context */ - Hammer.defaults = { - /** - * this setting object adds styles and attributes to the element to prevent the browser from doing - * its native behavior. The css properties are auto prefixed for the browsers when needed. - * @property defaults.behavior - * @type {Object} - */ - behavior: { - /** - * Disables text selection to improve the dragging gesture. When the value is `none` it also sets - * `onselectstart=false` for IE on the element. Mainly for desktop browsers. - * @property defaults.behavior.userSelect - * @type {String} - * @default 'none' - */ - userSelect: 'none', - - /** - * Specifies whether and how a given region can be manipulated by the user (for instance, by panning or zooming). - * Used by Chrome 35> and IE10>. By default this makes the element blocking any touch event. - * @property defaults.behavior.touchAction - * @type {String} - * @default: 'pan-y' - */ - touchAction: 'pan-y', - - /** - * Disables the default callout shown when you touch and hold a touch target. - * On iOS, when you touch and hold a touch target such as a link, Safari displays - * a callout containing information about the link. This property allows you to disable that callout. - * @property defaults.behavior.touchCallout - * @type {String} - * @default 'none' - */ - touchCallout: 'none', - - /** - * Specifies whether zooming is enabled. Used by IE10> - * @property defaults.behavior.contentZooming - * @type {String} - * @default 'none' - */ - contentZooming: 'none', + function each(obj, iterator, context) { + var i; - /** - * Specifies that an entire element should be draggable instead of its contents. - * Mainly for desktop browsers. - * @property defaults.behavior.userDrag - * @type {String} - * @default 'none' - */ - userDrag: 'none', + if (!obj) { + return; + } - /** - * Overrides the highlight color shown when the user taps a link or a JavaScript - * clickable element in Safari on iPhone. This property obeys the alpha value, if specified. - * - * If you don't specify an alpha value, Safari on iPhone applies a default alpha value - * to the color. To disable tap highlighting, set the alpha value to 0 (invisible). - * If you set the alpha value to 1.0 (opaque), the element is not visible when tapped. - * @property defaults.behavior.tapHighlightColor - * @type {String} - * @default 'rgba(0,0,0,0)' - */ - tapHighlightColor: 'rgba(0,0,0,0)' + if (obj.forEach) { + obj.forEach(iterator, context); + } else if (obj.length !== undefined) { + i = 0; + while (i < obj.length) { + iterator.call(context, obj[i], i, obj); + i++; + } + } else { + for (i in obj) { + obj.hasOwnProperty(i) && iterator.call(context, obj[i], i, obj); + } } - }; + } /** - * hammer document where the base events are added at - * @property DOCUMENT - * @type {HTMLElement} - * @default window.document + * extend object. + * means that properties in dest will be overwritten by the ones in src. + * @param {Object} dest + * @param {Object} src + * @param {Boolean} [merge] + * @returns {Object} dest */ - Hammer.DOCUMENT = document; + function extend(dest, src, merge) { + var keys = Object.keys(src); + var i = 0; + while (i < keys.length) { + if (!merge || (merge && dest[keys[i]] === undefined)) { + dest[keys[i]] = src[keys[i]]; + } + i++; + } + return dest; + } /** - * detect support for pointer events - * @property HAS_POINTEREVENTS - * @type {Boolean} + * merge the values from src in the dest. + * means that properties that exist in dest will not be overwritten by src + * @param {Object} dest + * @param {Object} src + * @returns {Object} dest */ - Hammer.HAS_POINTEREVENTS = navigator.pointerEnabled || navigator.msPointerEnabled; + function merge(dest, src) { + return extend(dest, src, true); + } /** - * detect support for touch events - * @property HAS_TOUCHEVENTS - * @type {Boolean} + * simple class inheritance + * @param {Function} child + * @param {Function} base + * @param {Object} [properties] */ - Hammer.HAS_TOUCHEVENTS = ('ontouchstart' in window); + function inherit(child, base, properties) { + var baseP = base.prototype, + childP; + + childP = child.prototype = Object.create(baseP); + childP.constructor = child; + childP._super = baseP; + + if (properties) { + extend(childP, properties); + } + } /** - * detect mobile browsers - * @property IS_MOBILE - * @type {Boolean} + * simple function bind + * @param {Function} fn + * @param {Object} context + * @returns {Function} */ - Hammer.IS_MOBILE = /mobile|tablet|ip(ad|hone|od)|android|silk/i.test(navigator.userAgent); + function bindFn(fn, context) { + return function boundFn() { + return fn.apply(context, arguments); + }; + } /** - * detect if we want to support mouseevents at all - * @property NO_MOUSEEVENTS - * @type {Boolean} + * let a boolean value also be a function that must return a boolean + * this first item in args will be used as the context + * @param {Boolean|Function} val + * @param {Array} [args] + * @returns {Boolean} */ - Hammer.NO_MOUSEEVENTS = (Hammer.HAS_TOUCHEVENTS && Hammer.IS_MOBILE) || Hammer.HAS_POINTEREVENTS; + function boolOrFn(val, args) { + if (typeof val == TYPE_FUNCTION) { + return val.apply(args ? args[0] || undefined : undefined, args); + } + return val; + } /** - * interval in which Hammer recalculates current velocity/direction/angle in ms - * @property CALCULATE_INTERVAL - * @type {Number} - * @default 25 + * use the val2 when val1 is undefined + * @param {*} val1 + * @param {*} val2 + * @returns {*} */ - Hammer.CALCULATE_INTERVAL = 25; + function ifUndefined(val1, val2) { + return (val1 === undefined) ? val2 : val1; + } /** - * eventtypes per touchevent (start, move, end) are filled by `Event.determineEventTypes` on `setup` - * the object contains the DOM event names per type (`EVENT_START`, `EVENT_MOVE`, `EVENT_END`) - * @property EVENT_TYPES - * @private - * @writeOnce - * @type {Object} + * addEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler */ - var EVENT_TYPES = {}; + function addEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.addEventListener(type, handler, false); + }); + } /** - * direction strings, for safe comparisons - * @property DIRECTION_DOWN|LEFT|UP|RIGHT - * @final - * @type {String} - * @default 'down' 'left' 'up' 'right' + * removeEventListener with multiple events at once + * @param {EventTarget} target + * @param {String} types + * @param {Function} handler */ - var DIRECTION_DOWN = Hammer.DIRECTION_DOWN = 'down'; - var DIRECTION_LEFT = Hammer.DIRECTION_LEFT = 'left'; - var DIRECTION_UP = Hammer.DIRECTION_UP = 'up'; - var DIRECTION_RIGHT = Hammer.DIRECTION_RIGHT = 'right'; + function removeEventListeners(target, types, handler) { + each(splitStr(types), function(type) { + target.removeEventListener(type, handler, false); + }); + } /** - * pointertype strings, for safe comparisons - * @property POINTER_MOUSE|TOUCH|PEN - * @final - * @type {String} - * @default 'mouse' 'touch' 'pen' + * find if a node is in the given parent + * @method hasParent + * @param {HTMLElement} node + * @param {HTMLElement} parent + * @return {Boolean} found */ - var POINTER_MOUSE = Hammer.POINTER_MOUSE = 'mouse'; - var POINTER_TOUCH = Hammer.POINTER_TOUCH = 'touch'; - var POINTER_PEN = Hammer.POINTER_PEN = 'pen'; + function hasParent(node, parent) { + while (node) { + if (node == parent) { + return true; + } + node = node.parentNode; + } + return false; + } /** - * eventtypes - * @property EVENT_START|MOVE|END|RELEASE|TOUCH - * @final - * @type {String} - * @default 'start' 'change' 'move' 'end' 'release' 'touch' + * small indexOf wrapper + * @param {String} str + * @param {String} find + * @returns {Boolean} found */ - var EVENT_START = Hammer.EVENT_START = 'start'; - var EVENT_MOVE = Hammer.EVENT_MOVE = 'move'; - var EVENT_END = Hammer.EVENT_END = 'end'; - var EVENT_RELEASE = Hammer.EVENT_RELEASE = 'release'; - var EVENT_TOUCH = Hammer.EVENT_TOUCH = 'touch'; + function inStr(str, find) { + return str.indexOf(find) > -1; + } /** - * if the window events are set... - * @property READY - * @writeOnce - * @type {Boolean} - * @default false + * split string on whitespace + * @param {String} str + * @returns {Array} words */ - Hammer.READY = false; + function splitStr(str) { + return str.trim().split(/\s+/g); + } /** - * plugins namespace - * @property plugins - * @type {Object} + * find if a array contains the object using indexOf or a simple polyFill + * @param {Array} src + * @param {String} find + * @param {String} [findByKey] + * @return {Boolean|Number} false when not found, or the index */ - Hammer.plugins = Hammer.plugins || {}; + function inArray(src, find, findByKey) { + if (src.indexOf && !findByKey) { + return src.indexOf(find); + } else { + var i = 0; + while (i < src.length) { + if ((findByKey && src[i][findByKey] == find) || (!findByKey && src[i] === find)) { + return i; + } + i++; + } + return -1; + } + } /** - * gestures namespace - * see `/gestures` for the definitions - * @property gestures - * @type {Object} + * convert array-like objects to real arrays + * @param {Object} obj + * @returns {Array} */ - Hammer.gestures = Hammer.gestures || {}; + function toArray(obj) { + return Array.prototype.slice.call(obj, 0); + } /** - * setup events to detect gestures on the document - * this function is called when creating an new instance - * @private + * unique array with objects based on a key (like 'id') or just by the array's value + * @param {Array} src [{id:1},{id:2},{id:1}] + * @param {String} [key] + * @param {Boolean} [sort=False] + * @returns {Array} [{id:1},{id:2}] */ - function setup() { - if(Hammer.READY) { - return; - } - - // find what eventtypes we add listeners to - Event.determineEventTypes(); + function uniqueArray(src, key, sort) { + var results = []; + var values = []; + var i = 0; - // Register all gestures inside Hammer.gestures - Utils.each(Hammer.gestures, function(gesture) { - Detection.register(gesture); - }); + while (i < src.length) { + var val = key ? src[i][key] : src[i]; + if (inArray(values, val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } - // Add touch events on the document - Event.onTouch(Hammer.DOCUMENT, EVENT_MOVE, Detection.detect); - Event.onTouch(Hammer.DOCUMENT, EVENT_END, Detection.detect); + if (sort) { + if (!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } - // Hammer is ready...! - Hammer.READY = true; + return results; } /** - * @module hammer - * - * @class Utils - * @static + * get the prefixed property + * @param {Object} obj + * @param {String} property + * @returns {String|Undefined} prefixed */ - var Utils = Hammer.utils = { - /** - * extend method, could also be used for cloning when `dest` is an empty object. - * changes the dest object - * @method extend - * @param {Object} dest - * @param {Object} src - * @param {Boolean} [merge=false] do a merge - * @return {Object} dest - */ - extend: function extend(dest, src, merge) { - for(var key in src) { - if(!src.hasOwnProperty(key) || (dest[key] !== undefined && merge)) { - continue; - } - dest[key] = src[key]; - } - return dest; - }, - - /** - * simple addEventListener wrapper - * @method on - * @param {HTMLElement} element - * @param {String} type - * @param {Function} handler - */ - on: function on(element, type, handler) { - element.addEventListener(type, handler, false); - }, + function prefixed(obj, property) { + var prefix, prop; + var camelProp = property[0].toUpperCase() + property.slice(1); - /** - * simple removeEventListener wrapper - * @method off - * @param {HTMLElement} element - * @param {String} type - * @param {Function} handler - */ - off: function off(element, type, handler) { - element.removeEventListener(type, handler, false); - }, + var i = 0; + while (i < VENDOR_PREFIXES.length) { + prefix = VENDOR_PREFIXES[i]; + prop = (prefix) ? prefix + camelProp : property; - /** - * forEach over arrays and objects - * @method each - * @param {Object|Array} obj - * @param {Function} iterator - * @param {any} iterator.item - * @param {Number} iterator.index - * @param {Object|Array} iterator.obj the source object - * @param {Object} context value to use as `this` in the iterator - */ - each: function each(obj, iterator, context) { - var i, len; - - // native forEach on arrays - if('forEach' in obj) { - obj.forEach(iterator, context); - // arrays - } else if(obj.length !== undefined) { - for(i = 0, len = obj.length; i < len; i++) { - if(iterator.call(context, obj[i], i, obj) === false) { - return; - } - } - // objects - } else { - for(i in obj) { - if(obj.hasOwnProperty(i) && - iterator.call(context, obj[i], i, obj) === false) { - return; - } - } + if (prop in obj) { + return prop; } - }, + i++; + } + return undefined; + } - /** - * find if a string contains the string using indexOf - * @method inStr - * @param {String} src - * @param {String} find - * @return {Boolean} found - */ - inStr: function inStr(src, find) { - return src.indexOf(find) > -1; - }, + /** + * get a unique id + * @returns {number} uniqueId + */ + var _uniqueId = 1; + function uniqueId() { + return _uniqueId++; + } - /** - * find if a array contains the object using indexOf or a simple polyfill - * @method inArray - * @param {String} src - * @param {String} find - * @return {Boolean|Number} false when not found, or the index - */ - inArray: function inArray(src, find) { - if(src.indexOf) { - var index = src.indexOf(find); - return (index === -1) ? false : index; - } else { - for(var i = 0, len = src.length; i < len; i++) { - if(src[i] === find) { - return i; - } - } - return false; - } - }, + /** + * get the window object of an element + * @param {HTMLElement} element + * @returns {DocumentView|Window} + */ + function getWindowForElement(element) { + var doc = element.ownerDocument; + return (doc.defaultView || doc.parentWindow); + } - /** - * convert an array-like object (`arguments`, `touchlist`) to an array - * @method toArray - * @param {Object} obj - * @return {Array} - */ - toArray: function toArray(obj) { - return Array.prototype.slice.call(obj, 0); - }, + var MOBILE_REGEX = /mobile|tablet|ip(ad|hone|od)|android/i; - /** - * find if a node is in the given parent - * @method hasParent - * @param {HTMLElement} node - * @param {HTMLElement} parent - * @return {Boolean} found - */ - hasParent: function hasParent(node, parent) { - while(node) { - if(node == parent) { - return true; - } - node = node.parentNode; - } - return false; - }, + var SUPPORT_TOUCH = ('ontouchstart' in window); + var SUPPORT_POINTER_EVENTS = prefixed(window, 'PointerEvent') !== undefined; + var SUPPORT_ONLY_TOUCH = SUPPORT_TOUCH && MOBILE_REGEX.test(navigator.userAgent); - /** - * get the center of all the touches - * @method getCenter - * @param {Array} touches - * @return {Object} center contains `pageX`, `pageY`, `clientX` and `clientY` properties - */ - getCenter: function getCenter(touches) { - var pageX = [], - pageY = [], - clientX = [], - clientY = [], - min = Math.min, - max = Math.max; - - // no need to loop when only one touch - if(touches.length === 1) { - return { - pageX: touches[0].pageX, - pageY: touches[0].pageY, - clientX: touches[0].clientX, - clientY: touches[0].clientY - }; - } + var INPUT_TYPE_TOUCH = 'touch'; + var INPUT_TYPE_PEN = 'pen'; + var INPUT_TYPE_MOUSE = 'mouse'; + var INPUT_TYPE_KINECT = 'kinect'; - Utils.each(touches, function(touch) { - pageX.push(touch.pageX); - pageY.push(touch.pageY); - clientX.push(touch.clientX); - clientY.push(touch.clientY); - }); + var COMPUTE_INTERVAL = 25; - return { - pageX: (min.apply(Math, pageX) + max.apply(Math, pageX)) / 2, - pageY: (min.apply(Math, pageY) + max.apply(Math, pageY)) / 2, - clientX: (min.apply(Math, clientX) + max.apply(Math, clientX)) / 2, - clientY: (min.apply(Math, clientY) + max.apply(Math, clientY)) / 2 - }; - }, + var INPUT_START = 1; + var INPUT_MOVE = 2; + var INPUT_END = 4; + var INPUT_CANCEL = 8; - /** - * calculate the velocity between two points. unit is in px per ms. - * @method getVelocity - * @param {Number} deltaTime - * @param {Number} deltaX - * @param {Number} deltaY - * @return {Object} velocity `x` and `y` - */ - getVelocity: function getVelocity(deltaTime, deltaX, deltaY) { - return { - x: Math.abs(deltaX / deltaTime) || 0, - y: Math.abs(deltaY / deltaTime) || 0 - }; - }, + var DIRECTION_NONE = 1; + var DIRECTION_LEFT = 2; + var DIRECTION_RIGHT = 4; + var DIRECTION_UP = 8; + var DIRECTION_DOWN = 16; - /** - * calculate the angle between two coordinates - * @method getAngle - * @param {Touch} touch1 - * @param {Touch} touch2 - * @return {Number} angle - */ - getAngle: function getAngle(touch1, touch2) { - var x = touch2.clientX - touch1.clientX, - y = touch2.clientY - touch1.clientY; + var DIRECTION_HORIZONTAL = DIRECTION_LEFT | DIRECTION_RIGHT; + var DIRECTION_VERTICAL = DIRECTION_UP | DIRECTION_DOWN; + var DIRECTION_ALL = DIRECTION_HORIZONTAL | DIRECTION_VERTICAL; - return Math.atan2(y, x) * 180 / Math.PI; - }, + var PROPS_XY = ['x', 'y']; + var PROPS_CLIENT_XY = ['clientX', 'clientY']; - /** - * do a small comparision to get the direction between two touches. - * @method getDirection - * @param {Touch} touch1 - * @param {Touch} touch2 - * @return {String} direction matches `DIRECTION_LEFT|RIGHT|UP|DOWN` - */ - getDirection: function getDirection(touch1, touch2) { - var x = Math.abs(touch1.clientX - touch2.clientX), - y = Math.abs(touch1.clientY - touch2.clientY); + /** + * create new input type manager + * @param {Manager} manager + * @param {Function} callback + * @returns {Input} + * @constructor + */ + function Input(manager, callback) { + var self = this; + this.manager = manager; + this.callback = callback; + this.element = manager.element; + this.target = manager.options.inputTarget; - if(x >= y) { - return touch1.clientX - touch2.clientX > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + // smaller wrapper around the handler, for the scope and the enabled state of the manager, + // so when disabled the input events are completely bypassed. + this.domHandler = function(ev) { + if (boolOrFn(manager.options.enable, [manager])) { + self.handler(ev); } - return touch1.clientY - touch2.clientY > 0 ? DIRECTION_UP : DIRECTION_DOWN; - }, + }; - /** - * calculate the distance between two touches - * @method getDistance - * @param {Touch}touch1 - * @param {Touch} touch2 - * @return {Number} distance - */ - getDistance: function getDistance(touch1, touch2) { - var x = touch2.clientX - touch1.clientX, - y = touch2.clientY - touch1.clientY; + this.init(); - return Math.sqrt((x * x) + (y * y)); - }, + } + Input.prototype = { /** - * calculate the scale factor between two touchLists - * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out - * @method getScale - * @param {Array} start array of touches - * @param {Array} end array of touches - * @return {Number} scale + * should handle the inputEvent data and trigger the callback + * @virtual */ - getScale: function getScale(start, end) { - // need two fingers... - if(start.length >= 2 && end.length >= 2) { - return this.getDistance(end[0], end[1]) / this.getDistance(start[0], start[1]); - } - return 1; - }, + handler: function() { }, /** - * calculate the rotation degrees between two touchLists - * @method getRotation - * @param {Array} start array of touches - * @param {Array} end array of touches - * @return {Number} rotation + * bind the events */ - getRotation: function getRotation(start, end) { - // need two fingers - if(start.length >= 2 && end.length >= 2) { - return this.getAngle(end[1], end[0]) - this.getAngle(start[1], start[0]); - } - return 0; + init: function() { + this.evEl && addEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && addEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && addEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); }, /** - * find out if the direction is vertical * - * @method isVertical - * @param {String} direction matches `DIRECTION_UP|DOWN` - * @return {Boolean} is_vertical + * unbind the events */ - isVertical: function isVertical(direction) { - return direction == DIRECTION_UP || direction == DIRECTION_DOWN; - }, + destroy: function() { + this.evEl && removeEventListeners(this.element, this.evEl, this.domHandler); + this.evTarget && removeEventListeners(this.target, this.evTarget, this.domHandler); + this.evWin && removeEventListeners(getWindowForElement(this.element), this.evWin, this.domHandler); + } + }; - /** - * set css properties with their prefixes - * @param {HTMLElement} element - * @param {String} prop - * @param {String} value - * @param {Boolean} [toggle=true] - * @return {Boolean} - */ - setPrefixedCss: function setPrefixedCss(element, prop, value, toggle) { - var prefixes = ['', 'Webkit', 'Moz', 'O', 'ms']; - prop = Utils.toCamelCase(prop); - - for(var i = 0; i < prefixes.length; i++) { - var p = prop; - // prefixes - if(prefixes[i]) { - p = prefixes[i] + p.slice(0, 1).toUpperCase() + p.slice(1); - } + /** + * create new input type manager + * called by the Manager constructor + * @param {Hammer} manager + * @returns {Input} + */ + function createInputInstance(manager) { + var Type; + var inputClass = manager.options.inputClass; - // test the style - if(p in element.style) { - element.style[p] = (toggle == null || toggle) && value || ''; - break; - } - } - }, + if (inputClass) { + Type = inputClass; + } else if (SUPPORT_POINTER_EVENTS) { + Type = PointerEventInput; + } else if (SUPPORT_ONLY_TOUCH) { + Type = TouchInput; + } else if (!SUPPORT_TOUCH) { + Type = MouseInput; + } else { + Type = TouchMouseInput; + } + return new (Type)(manager, inputHandler); + } - /** - * toggle browser default behavior by setting css properties. - * `userSelect='none'` also sets `element.onselectstart` to false - * `userDrag='none'` also sets `element.ondragstart` to false - * - * @method toggleBehavior - * @param {HtmlElement} element - * @param {Object} props - * @param {Boolean} [toggle=true] - */ - toggleBehavior: function toggleBehavior(element, props, toggle) { - if(!props || !element || !element.style) { - return; - } + /** + * handle input events + * @param {Manager} manager + * @param {String} eventType + * @param {Object} input + */ + function inputHandler(manager, eventType, input) { + var pointersLen = input.pointers.length; + var changedPointersLen = input.changedPointers.length; + var isFirst = (eventType & INPUT_START && (pointersLen - changedPointersLen === 0)); + var isFinal = (eventType & (INPUT_END | INPUT_CANCEL) && (pointersLen - changedPointersLen === 0)); - // set the css properties - Utils.each(props, function(value, prop) { - Utils.setPrefixedCss(element, prop, value, toggle); - }); + input.isFirst = !!isFirst; + input.isFinal = !!isFinal; - var falseFn = toggle && function() { - return false; - }; + if (isFirst) { + manager.session = {}; + } - // also the disable onselectstart - if(props.userSelect == 'none') { - element.onselectstart = falseFn; - } - // and disable ondragstart - if(props.userDrag == 'none') { - element.ondragstart = falseFn; - } - }, + // source event is the normalized value of the domEvents + // like 'touchstart, mouseup, pointerdown' + input.eventType = eventType; - /** - * convert a string with underscores to camelCase - * so prevent_default becomes preventDefault - * @param {String} str - * @return {String} camelCaseStr - */ - toCamelCase: function toCamelCase(str) { - return str.replace(/[_-]([a-z])/g, function(s) { - return s[1].toUpperCase(); - }); - } - }; + // compute scale, rotation etc + computeInputData(manager, input); + // emit secret event + manager.emit('hammer.input', input); + + manager.recognize(input); + manager.session.prevInput = input; + } /** - * @module hammer - */ - /** - * @class Event - * @static + * extend the data with some usable properties like scale, rotate, velocity etc + * @param {Object} manager + * @param {Object} input */ - var Event = Hammer.event = { - /** - * when touch events have been fired, this is true - * this is used to stop mouse events - * @property prevent_mouseevents - * @private - * @type {Boolean} - */ - preventMouseEvents: false, + function computeInputData(manager, input) { + var session = manager.session; + var pointers = input.pointers; + var pointersLength = pointers.length; - /** - * if EVENT_START has been fired - * @property started - * @private - * @type {Boolean} - */ - started: false, + // store the first input to calculate the distance and direction + if (!session.firstInput) { + session.firstInput = simpleCloneInputData(input); + } - /** - * when the mouse is hold down, this is true - * @property should_detect - * @private - * @type {Boolean} - */ - shouldDetect: false, + // to compute scale and rotation we need to store the multiple touches + if (pointersLength > 1 && !session.firstMultiple) { + session.firstMultiple = simpleCloneInputData(input); + } else if (pointersLength === 1) { + session.firstMultiple = false; + } - /** - * simple event binder with a hook and support for multiple types - * @method on - * @param {HTMLElement} element - * @param {String} type - * @param {Function} handler - * @param {Function} [hook] - * @param {Object} hook.type - */ - on: function on(element, type, handler, hook) { - var types = type.split(' '); - Utils.each(types, function(type) { - Utils.on(element, type, handler); - hook && hook(type); - }); - }, + var firstInput = session.firstInput; + var firstMultiple = session.firstMultiple; + var offsetCenter = firstMultiple ? firstMultiple.center : firstInput.center; - /** - * simple event unbinder with a hook and support for multiple types - * @method off - * @param {HTMLElement} element - * @param {String} type - * @param {Function} handler - * @param {Function} [hook] - * @param {Object} hook.type - */ - off: function off(element, type, handler, hook) { - var types = type.split(' '); - Utils.each(types, function(type) { - Utils.off(element, type, handler); - hook && hook(type); - }); - }, + var center = input.center = getCenter(pointers); + input.timeStamp = now(); + input.deltaTime = input.timeStamp - firstInput.timeStamp; + + input.angle = getAngle(offsetCenter, center); + input.distance = getDistance(offsetCenter, center); + + computeDeltaXY(session, input); + input.offsetDirection = getDirection(input.deltaX, input.deltaY); + + input.scale = firstMultiple ? getScale(firstMultiple.pointers, pointers) : 1; + input.rotation = firstMultiple ? getRotation(firstMultiple.pointers, pointers) : 0; + + computeIntervalInputData(session, input); + + // find the correct target + var target = manager.element; + if (hasParent(input.srcEvent.target, target)) { + target = input.srcEvent.target; + } + input.target = target; + } + + function computeDeltaXY(session, input) { + var center = input.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevInput = session.prevInput || {}; + + if (input.eventType === INPUT_START || prevInput.eventType === INPUT_END) { + prevDelta = session.prevDelta = { + x: prevInput.deltaX || 0, + y: prevInput.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + + input.deltaX = prevDelta.x + (center.x - offset.x); + input.deltaY = prevDelta.y + (center.y - offset.y); + } + + /** + * velocity is calculated every x ms + * @param {Object} session + * @param {Object} input + */ + function computeIntervalInputData(session, input) { + var last = session.lastInterval || input, + deltaTime = input.timeStamp - last.timeStamp, + velocity, velocityX, velocityY, direction; + + if (input.eventType != INPUT_CANCEL && (deltaTime > COMPUTE_INTERVAL || last.velocity === undefined)) { + var deltaX = last.deltaX - input.deltaX; + var deltaY = last.deltaY - input.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY); + + session.lastInterval = input; + } else { + // use latest velocity info if it doesn't overtake a minimum period + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + input.velocity = velocity; + input.velocityX = velocityX; + input.velocityY = velocityY; + input.direction = direction; + } + /** + * create a simple clone from the input used for storage of firstInput and firstMultiple + * @param {Object} input + * @returns {Object} clonedInputData + */ + function simpleCloneInputData(input) { + // make a simple copy of the pointers because we will get a reference if we don't + // we only need clientXY for the calculations + var pointers = []; + var i = 0; + while (i < input.pointers.length) { + pointers[i] = { + clientX: round(input.pointers[i].clientX), + clientY: round(input.pointers[i].clientY) + }; + i++; + } + + return { + timeStamp: now(), + pointers: pointers, + center: getCenter(pointers), + deltaX: input.deltaX, + deltaY: input.deltaY + }; + } + + /** + * get the center of all the pointers + * @param {Array} pointers + * @return {Object} center contains `x` and `y` properties + */ + function getCenter(pointers) { + var pointersLength = pointers.length; + + // no need to loop when only one touch + if (pointersLength === 1) { + return { + x: round(pointers[0].clientX), + y: round(pointers[0].clientY) + }; + } + + var x = 0, y = 0, i = 0; + while (i < pointersLength) { + x += pointers[i].clientX; + y += pointers[i].clientY; + i++; + } + + return { + x: round(x / pointersLength), + y: round(y / pointersLength) + }; + } + + /** + * calculate the velocity between two points. unit is in px per ms. + * @param {Number} deltaTime + * @param {Number} x + * @param {Number} y + * @return {Object} velocity `x` and `y` + */ + function getVelocity(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; + } + + /** + * get the direction between two points + * @param {Number} x + * @param {Number} y + * @return {Number} direction + */ + function getDirection(x, y) { + if (x === y) { + return DIRECTION_NONE; + } + + if (abs(x) >= abs(y)) { + return x > 0 ? DIRECTION_LEFT : DIRECTION_RIGHT; + } + return y > 0 ? DIRECTION_UP : DIRECTION_DOWN; + } + + /** + * calculate the absolute distance between two points + * @param {Object} p1 {x, y} + * @param {Object} p2 {x, y} + * @param {Array} [props] containing x and y keys + * @return {Number} distance + */ + function getDistance(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + + return Math.sqrt((x * x) + (y * y)); + } + + /** + * calculate the angle between two coordinates + * @param {Object} p1 + * @param {Object} p2 + * @param {Array} [props] containing x and y keys + * @return {Number} angle + */ + function getAngle(p1, p2, props) { + if (!props) { + props = PROPS_XY; + } + var x = p2[props[0]] - p1[props[0]], + y = p2[props[1]] - p1[props[1]]; + return Math.atan2(y, x) * 180 / Math.PI; + } + + /** + * calculate the rotation degrees between two pointersets + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} rotation + */ + function getRotation(start, end) { + return getAngle(end[1], end[0], PROPS_CLIENT_XY) - getAngle(start[1], start[0], PROPS_CLIENT_XY); + } + + /** + * calculate the scale factor between two pointersets + * no scale is 1, and goes down to 0 when pinched together, and bigger when pinched out + * @param {Array} start array of pointers + * @param {Array} end array of pointers + * @return {Number} scale + */ + function getScale(start, end) { + return getDistance(end[0], end[1], PROPS_CLIENT_XY) / getDistance(start[0], start[1], PROPS_CLIENT_XY); + } + + var MOUSE_INPUT_MAP = { + mousedown: INPUT_START, + mousemove: INPUT_MOVE, + mouseup: INPUT_END + }; + + var MOUSE_ELEMENT_EVENTS = 'mousedown'; + var MOUSE_WINDOW_EVENTS = 'mousemove mouseup'; + + /** + * Mouse events input + * @constructor + * @extends Input + */ + function MouseInput() { + this.evEl = MOUSE_ELEMENT_EVENTS; + this.evWin = MOUSE_WINDOW_EVENTS; + + this.allow = true; // used by Input.TouchMouse to disable mouse events + this.pressed = false; // mousedown state + + Input.apply(this, arguments); + } + + inherit(MouseInput, Input, { /** - * the core touch event handler. - * this finds out if we should to detect gestures - * @method onTouch - * @param {HTMLElement} element - * @param {String} eventType matches `EVENT_START|MOVE|END` - * @param {Function} handler - * @return onTouchHandler {Function} the core event handler + * handle mouse events + * @param {Object} ev */ - onTouch: function onTouch(element, eventType, handler) { - var self = this; + handler: function MEhandler(ev) { + var eventType = MOUSE_INPUT_MAP[ev.type]; - var onTouchHandler = function onTouchHandler(ev) { - var srcType = ev.type.toLowerCase(), - isPointer = Hammer.HAS_POINTEREVENTS, - isMouse = Utils.inStr(srcType, 'mouse'), - triggerType; + // on start we want to have the left mouse button down + if (eventType & INPUT_START && ev.button === 0) { + this.pressed = true; + } - // if we are in a mouseevent, but there has been a touchevent triggered in this session - // we want to do nothing. simply break out of the event. - if(isMouse && self.preventMouseEvents) { - return; + if (eventType & INPUT_MOVE && ev.which !== 1) { + eventType = INPUT_END; + } - // mousebutton must be down - } else if(isMouse && eventType == EVENT_START && ev.button === 0) { - self.preventMouseEvents = false; - self.shouldDetect = true; - } else if(isPointer && eventType == EVENT_START) { - self.shouldDetect = (ev.buttons === 1 || PointerEvent.matchType(POINTER_TOUCH, ev)); - // just a valid start event, but no mouse - } else if(!isMouse && eventType == EVENT_START) { - self.preventMouseEvents = true; - self.shouldDetect = true; - } + // mouse must be down, and mouse events are allowed (see the TouchMouse input) + if (!this.pressed || !this.allow) { + return; + } - // update the pointer event before entering the detection - if(isPointer && eventType != EVENT_END) { - PointerEvent.updatePointer(eventType, ev); - } + if (eventType & INPUT_END) { + this.pressed = false; + } - // we are in a touch/down state, so allowed detection of gestures - if(self.shouldDetect) { - triggerType = self.doDetect.call(self, ev, eventType, element, handler); - } + this.callback(this.manager, eventType, { + pointers: [ev], + changedPointers: [ev], + pointerType: INPUT_TYPE_MOUSE, + srcEvent: ev + }); + } + }); - // ...and we are done with the detection - // so reset everything to start each detection totally fresh - if(triggerType == EVENT_END) { - self.preventMouseEvents = false; - self.shouldDetect = false; - PointerEvent.reset(); - // update the pointerevent object after the detection - } + var POINTER_INPUT_MAP = { + pointerdown: INPUT_START, + pointermove: INPUT_MOVE, + pointerup: INPUT_END, + pointercancel: INPUT_CANCEL, + pointerout: INPUT_CANCEL + }; - if(isPointer && eventType == EVENT_END) { - PointerEvent.updatePointer(eventType, ev); - } - }; + // in IE10 the pointer types is defined as an enum + var IE10_POINTER_TYPE_ENUM = { + 2: INPUT_TYPE_TOUCH, + 3: INPUT_TYPE_PEN, + 4: INPUT_TYPE_MOUSE, + 5: INPUT_TYPE_KINECT // see https://twitter.com/jacobrossi/status/480596438489890816 + }; - this.on(element, EVENT_TYPES[eventType], onTouchHandler); - return onTouchHandler; - }, + var POINTER_ELEMENT_EVENTS = 'pointerdown'; + var POINTER_WINDOW_EVENTS = 'pointermove pointerup pointercancel'; + + // IE10 has prefixed support, and case-sensitive + if (window.MSPointerEvent) { + POINTER_ELEMENT_EVENTS = 'MSPointerDown'; + POINTER_WINDOW_EVENTS = 'MSPointerMove MSPointerUp MSPointerCancel'; + } + + /** + * Pointer events input + * @constructor + * @extends Input + */ + function PointerEventInput() { + this.evEl = POINTER_ELEMENT_EVENTS; + this.evWin = POINTER_WINDOW_EVENTS; + Input.apply(this, arguments); + + this.store = (this.manager.session.pointerEvents = []); + } + + inherit(PointerEventInput, Input, { /** - * the core detection method - * this finds out what hammer-touch-events to trigger - * @method doDetect + * handle mouse events * @param {Object} ev - * @param {String} eventType matches `EVENT_START|MOVE|END` - * @param {HTMLElement} element - * @param {Function} handler - * @return {String} triggerType matches `EVENT_START|MOVE|END` */ - doDetect: function doDetect(ev, eventType, element, handler) { - var touchList = this.getTouchList(ev, eventType); - var touchListLength = touchList.length; - var triggerType = eventType; - var triggerChange = touchList.trigger; // used by fakeMultitouch plugin - var changedLength = touchListLength; + handler: function PEhandler(ev) { + var store = this.store; + var removePointer = false; - // at each touchstart-like event we want also want to trigger a TOUCH event... - if(eventType == EVENT_START) { - triggerChange = EVENT_TOUCH; - // ...the same for a touchend-like event - } else if(eventType == EVENT_END) { - triggerChange = EVENT_RELEASE; + var eventTypeNormalized = ev.type.toLowerCase().replace('ms', ''); + var eventType = POINTER_INPUT_MAP[eventTypeNormalized]; + var pointerType = IE10_POINTER_TYPE_ENUM[ev.pointerType] || ev.pointerType; - // keep track of how many touches have been removed - changedLength = touchList.length - ((ev.changedTouches) ? ev.changedTouches.length : 1); + var isTouch = (pointerType == INPUT_TYPE_TOUCH); + + // get index of the event in the store + var storeIndex = inArray(store, ev.pointerId, 'pointerId'); + + // start and mouse must be down + if (eventType & INPUT_START && (ev.button === 0 || isTouch)) { + if (storeIndex < 0) { + store.push(ev); + storeIndex = store.length - 1; + } + } else if (eventType & (INPUT_END | INPUT_CANCEL)) { + removePointer = true; } - // after there are still touches on the screen, - // we just want to trigger a MOVE event. so change the START or END to a MOVE - // but only after detection has been started, the first time we actualy want a START - if(changedLength > 0 && this.started) { - triggerType = EVENT_MOVE; + // it not found, so the pointer hasn't been down (so it's probably a hover) + if (storeIndex < 0) { + return; } - // detection has been started, we keep track of this, see above - this.started = true; + // update the event in the store + store[storeIndex] = ev; - // generate some event data, some basic information - var evData = this.collectEventData(element, triggerType, touchList, ev); + this.callback(this.manager, eventType, { + pointers: store, + changedPointers: [ev], + pointerType: pointerType, + srcEvent: ev + }); - // trigger the triggerType event before the change (TOUCH, RELEASE) events - // but the END event should be at last - if(eventType != EVENT_END) { - handler.call(Detection, evData); + if (removePointer) { + // remove from the store + store.splice(storeIndex, 1); } + } + }); + + var SINGLE_TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; - // trigger a change (TOUCH, RELEASE) event, this means the length of the touches changed - if(triggerChange) { - evData.changedLength = changedLength; - evData.eventType = triggerChange; + var SINGLE_TOUCH_TARGET_EVENTS = 'touchstart'; + var SINGLE_TOUCH_WINDOW_EVENTS = 'touchstart touchmove touchend touchcancel'; - handler.call(Detection, evData); + /** + * Touch events input + * @constructor + * @extends Input + */ + function SingleTouchInput() { + this.evTarget = SINGLE_TOUCH_TARGET_EVENTS; + this.evWin = SINGLE_TOUCH_WINDOW_EVENTS; + this.started = false; + + Input.apply(this, arguments); + } - evData.eventType = triggerType; - delete evData.changedLength; + inherit(SingleTouchInput, Input, { + handler: function TEhandler(ev) { + var type = SINGLE_TOUCH_INPUT_MAP[ev.type]; + + // should we handle the touch events? + if (type === INPUT_START) { + this.started = true; } - // trigger the END event - if(triggerType == EVENT_END) { - handler.call(Detection, evData); + if (!this.started) { + return; + } - // ...and we are done with the detection - // so reset everything to start each detection totally fresh + var touches = normalizeSingleTouches.call(this, ev, type); + + // when done, reset the started state + if (type & (INPUT_END | INPUT_CANCEL) && touches[0].length - touches[1].length === 0) { this.started = false; } - return triggerType; - }, + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } + }); - /** - * we have different events for each device/browser - * determine what we need and set them in the EVENT_TYPES constant - * the `onTouch` method is bind to these properties. - * @method determineEventTypes - * @return {Object} events - */ - determineEventTypes: function determineEventTypes() { - var types; - if(Hammer.HAS_POINTEREVENTS) { - if(window.PointerEvent) { - types = [ - 'pointerdown', - 'pointermove', - 'pointerup pointercancel lostpointercapture' - ]; - } else { - types = [ - 'MSPointerDown', - 'MSPointerMove', - 'MSPointerUp MSPointerCancel MSLostPointerCapture' - ]; - } - } else if(Hammer.NO_MOUSEEVENTS) { - types = [ - 'touchstart', - 'touchmove', - 'touchend touchcancel' - ]; - } else { - types = [ - 'touchstart mousedown', - 'touchmove mousemove', - 'touchend touchcancel mouseup' - ]; - } + /** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ + function normalizeSingleTouches(ev, type) { + var all = toArray(ev.touches); + var changed = toArray(ev.changedTouches); - EVENT_TYPES[EVENT_START] = types[0]; - EVENT_TYPES[EVENT_MOVE] = types[1]; - EVENT_TYPES[EVENT_END] = types[2]; - return EVENT_TYPES; - }, + if (type & (INPUT_END | INPUT_CANCEL)) { + all = uniqueArray(all.concat(changed), 'identifier', true); + } - /** - * create touchList depending on the event - * @method getTouchList - * @param {Object} ev - * @param {String} eventType - * @return {Array} touches - */ - getTouchList: function getTouchList(ev, eventType) { - // get the fake pointerEvent touchlist - if(Hammer.HAS_POINTEREVENTS) { - return PointerEvent.getTouchList(); + return [all, changed]; + } + + var TOUCH_INPUT_MAP = { + touchstart: INPUT_START, + touchmove: INPUT_MOVE, + touchend: INPUT_END, + touchcancel: INPUT_CANCEL + }; + + var TOUCH_TARGET_EVENTS = 'touchstart touchmove touchend touchcancel'; + + /** + * Multi-user touch events input + * @constructor + * @extends Input + */ + function TouchInput() { + this.evTarget = TOUCH_TARGET_EVENTS; + this.targetIds = {}; + + Input.apply(this, arguments); + } + + inherit(TouchInput, Input, { + handler: function MTEhandler(ev) { + var type = TOUCH_INPUT_MAP[ev.type]; + var touches = getTouches.call(this, ev, type); + if (!touches) { + return; } - // get the touchlist - if(ev.touches) { - if(eventType == EVENT_MOVE) { - return ev.touches; - } + this.callback(this.manager, type, { + pointers: touches[0], + changedPointers: touches[1], + pointerType: INPUT_TYPE_TOUCH, + srcEvent: ev + }); + } + }); - var identifiers = []; - var concat = [].concat(Utils.toArray(ev.touches), Utils.toArray(ev.changedTouches)); - var touchList = []; + /** + * @this {TouchInput} + * @param {Object} ev + * @param {Number} type flag + * @returns {undefined|Array} [all, changed] + */ + function getTouches(ev, type) { + var allTouches = toArray(ev.touches); + var targetIds = this.targetIds; - Utils.each(concat, function(touch) { - if(Utils.inArray(identifiers, touch.identifier) === false) { - touchList.push(touch); - } - identifiers.push(touch.identifier); - }); + // when there is only one touch, the process can be simplified + if (type & (INPUT_START | INPUT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + return [allTouches, allTouches]; + } + + var i, + targetTouches, + changedTouches = toArray(ev.changedTouches), + changedTargetTouches = [], + target = this.target; + + // get target touches from touches + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, target); + }); - return touchList; + // collect touches + if (type === INPUT_START) { + i = 0; + while (i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; } + } - // make fake touchList from mouse position - ev.identifier = 1; - return [ev]; - }, + // filter changed touches to only contain touches that exist in the collected target ids + i = 0; + while (i < changedTouches.length) { + if (targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + + // cleanup removed touches + if (type & (INPUT_END | INPUT_CANCEL)) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if (!changedTargetTouches.length) { + return; + } + + return [ + // merge targetTouches with changedTargetTouches so it contains ALL touches, including 'end' and 'cancel' + uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true), + changedTargetTouches + ]; + } + + /** + * Combined touch and mouse input + * + * Touch has a higher priority then mouse, and while touching no mouse events are allowed. + * This because touch devices also emit mouse events while doing a touch. + * + * @constructor + * @extends Input + */ + function TouchMouseInput() { + Input.apply(this, arguments); + + var handler = bindFn(this.handler, this); + this.touch = new TouchInput(this.manager, handler); + this.mouse = new MouseInput(this.manager, handler); + } + inherit(TouchMouseInput, Input, { /** - * collect basic event data - * @method collectEventData - * @param {HTMLElement} element - * @param {String} eventType matches `EVENT_START|MOVE|END` - * @param {Array} touches - * @param {Object} ev - * @return {Object} ev + * handle mouse and touch events + * @param {Hammer} manager + * @param {String} inputEvent + * @param {Object} inputData */ - collectEventData: function collectEventData(element, eventType, touches, ev) { - // find out pointerType - var pointerType = POINTER_TOUCH; - if(Utils.inStr(ev.type, 'mouse') || PointerEvent.matchType(POINTER_MOUSE, ev)) { - pointerType = POINTER_MOUSE; - } else if(PointerEvent.matchType(POINTER_PEN, ev)) { - pointerType = POINTER_PEN; + handler: function TMEhandler(manager, inputEvent, inputData) { + var isTouch = (inputData.pointerType == INPUT_TYPE_TOUCH), + isMouse = (inputData.pointerType == INPUT_TYPE_MOUSE); + + // when we're in a touch event, so block all upcoming mouse events + // most mobile browser also emit mouseevents, right after touchstart + if (isTouch) { + this.mouse.allow = false; + } else if (isMouse && !this.mouse.allow) { + return; } - return { - center: Utils.getCenter(touches), - timeStamp: Date.now(), - target: ev.target, - touches: touches, - eventType: eventType, - pointerType: pointerType, - srcEvent: ev, - - /** - * prevent the browser default actions - * mostly used to disable scrolling of the browser - */ - preventDefault: function() { - var srcEvent = this.srcEvent; - srcEvent.preventManipulation && srcEvent.preventManipulation(); - srcEvent.preventDefault && srcEvent.preventDefault(); - }, + // reset the allowMouse when we're done + if (inputEvent & (INPUT_END | INPUT_CANCEL)) { + this.mouse.allow = true; + } - /** - * stop bubbling the event up to its parents - */ - stopPropagation: function() { - this.srcEvent.stopPropagation(); - }, + this.callback(manager, inputEvent, inputData); + }, - /** - * immediately stop gesture detection - * might be useful after a swipe was detected - * @return {*} - */ - stopDetect: function() { - return Detection.stopDetect(); - } - }; + /** + * remove the event listeners + */ + destroy: function destroy() { + this.touch.destroy(); + this.mouse.destroy(); } - }; + }); + var PREFIXED_TOUCH_ACTION = prefixed(TEST_ELEMENT.style, 'touchAction'); + var NATIVE_TOUCH_ACTION = PREFIXED_TOUCH_ACTION !== undefined; + + // magical touchAction value + var TOUCH_ACTION_COMPUTE = 'compute'; + var TOUCH_ACTION_AUTO = 'auto'; + var TOUCH_ACTION_MANIPULATION = 'manipulation'; // not implemented + var TOUCH_ACTION_NONE = 'none'; + var TOUCH_ACTION_PAN_X = 'pan-x'; + var TOUCH_ACTION_PAN_Y = 'pan-y'; /** - * @module hammer - * - * @class PointerEvent - * @static + * Touch Action + * sets the touchAction property or uses the js alternative + * @param {Manager} manager + * @param {String} value + * @constructor */ - var PointerEvent = Hammer.PointerEvent = { + function TouchAction(manager, value) { + this.manager = manager; + this.set(value); + } + + TouchAction.prototype = { /** - * holds all pointers, by `identifier` - * @property pointers - * @type {Object} + * set the touchAction value on the element or enable the polyfill + * @param {String} value */ - pointers: {}, + set: function(value) { + // find out the touch-action by the event handlers + if (value == TOUCH_ACTION_COMPUTE) { + value = this.compute(); + } + + if (NATIVE_TOUCH_ACTION) { + this.manager.element.style[PREFIXED_TOUCH_ACTION] = value; + } + this.actions = value.toLowerCase().trim(); + }, /** - * get the pointers as an array - * @method getTouchList - * @return {Array} touchlist + * just re-set the touchAction value */ - getTouchList: function getTouchList() { - var touchlist = []; - // we can use forEach since pointerEvents only is in IE10 - Utils.each(this.pointers, function(pointer) { - touchlist.push(pointer); - }); - return touchlist; + update: function() { + this.set(this.manager.options.touchAction); }, /** - * update the position of a pointer - * @method updatePointer - * @param {String} eventType matches `EVENT_START|MOVE|END` - * @param {Object} pointerEvent + * compute the value for the touchAction property based on the recognizer's settings + * @returns {String} value */ - updatePointer: function updatePointer(eventType, pointerEvent) { - if(eventType == EVENT_END || (eventType != EVENT_END && pointerEvent.buttons !== 1)) { - delete this.pointers[pointerEvent.pointerId]; - } else { - pointerEvent.identifier = pointerEvent.pointerId; - this.pointers[pointerEvent.pointerId] = pointerEvent; - } + compute: function() { + var actions = []; + each(this.manager.recognizers, function(recognizer) { + if (boolOrFn(recognizer.options.enable, [recognizer])) { + actions = actions.concat(recognizer.getTouchAction()); + } + }); + return cleanTouchActions(actions.join(' ')); }, /** - * check if ev matches pointertype - * @method matchType - * @param {String} pointerType matches `POINTER_MOUSE|TOUCH|PEN` - * @param {PointerEvent} ev + * this method is called on each input cycle and provides the preventing of the browser behavior + * @param {Object} input */ - matchType: function matchType(pointerType, ev) { - if(!ev.pointerType) { - return false; + preventDefaults: function(input) { + // not needed with native support for the touchAction property + if (NATIVE_TOUCH_ACTION) { + return; } - var pt = ev.pointerType, - types = {}; + var srcEvent = input.srcEvent; + var direction = input.offsetDirection; - types[POINTER_MOUSE] = (pt === (ev.MSPOINTER_TYPE_MOUSE || POINTER_MOUSE)); - types[POINTER_TOUCH] = (pt === (ev.MSPOINTER_TYPE_TOUCH || POINTER_TOUCH)); - types[POINTER_PEN] = (pt === (ev.MSPOINTER_TYPE_PEN || POINTER_PEN)); - return types[pointerType]; + // if the touch action did prevented once this session + if (this.manager.session.prevented) { + srcEvent.preventDefault(); + return; + } + + var actions = this.actions; + var hasNone = inStr(actions, TOUCH_ACTION_NONE); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + + if (hasNone || + (hasPanY && direction & DIRECTION_HORIZONTAL) || + (hasPanX && direction & DIRECTION_VERTICAL)) { + return this.preventSrc(srcEvent); + } }, /** - * reset the stored pointers - * @method reset + * call preventDefault to prevent the browser's default behavior (scrolling in most cases) + * @param {Object} srcEvent */ - reset: function resetList() { - this.pointers = {}; + preventSrc: function(srcEvent) { + this.manager.session.prevented = true; + srcEvent.preventDefault(); } }; + /** + * when the touchActions are collected they are not a valid value, so we need to clean things up. * + * @param {String} actions + * @returns {*} + */ + function cleanTouchActions(actions) { + // none + if (inStr(actions, TOUCH_ACTION_NONE)) { + return TOUCH_ACTION_NONE; + } + + var hasPanX = inStr(actions, TOUCH_ACTION_PAN_X); + var hasPanY = inStr(actions, TOUCH_ACTION_PAN_Y); + + // pan-x and pan-y can be combined + if (hasPanX && hasPanY) { + return TOUCH_ACTION_PAN_X + ' ' + TOUCH_ACTION_PAN_Y; + } + + // pan-x OR pan-y + if (hasPanX || hasPanY) { + return hasPanX ? TOUCH_ACTION_PAN_X : TOUCH_ACTION_PAN_Y; + } + + // manipulation + if (inStr(actions, TOUCH_ACTION_MANIPULATION)) { + return TOUCH_ACTION_MANIPULATION; + } + + return TOUCH_ACTION_AUTO; + } /** - * @module hammer - * - * @class Detection - * @static + * Recognizer flow explained; * + * All recognizers have the initial state of POSSIBLE when a input session starts. + * The definition of a input session is from the first input until the last input, with all it's movement in it. * + * Example session for mouse-input: mousedown -> mousemove -> mouseup + * + * On each recognizing cycle (see Manager.recognize) the .recognize() method is executed + * which determines with state it should be. + * + * If the recognizer has the state FAILED, CANCELLED or RECOGNIZED (equals ENDED), it is reset to + * POSSIBLE to give it another change on the next cycle. + * + * Possible + * | + * +-----+---------------+ + * | | + * +-----+-----+ | + * | | | + * Failed Cancelled | + * +-------+------+ + * | | + * Recognized Began + * | + * Changed + * | + * Ended/Recognized + */ + var STATE_POSSIBLE = 1; + var STATE_BEGAN = 2; + var STATE_CHANGED = 4; + var STATE_ENDED = 8; + var STATE_RECOGNIZED = STATE_ENDED; + var STATE_CANCELLED = 16; + var STATE_FAILED = 32; + + /** + * Recognizer + * Every recognizer needs to extend from this class. + * @constructor + * @param {Object} options */ - var Detection = Hammer.detection = { - // contains all registred Hammer.gestures in the correct order - gestures: [], + function Recognizer(options) { + this.id = uniqueId(); + + this.manager = null; + this.options = merge(options || {}, this.defaults); + + // default is enable true + this.options.enable = ifUndefined(this.options.enable, true); + + this.state = STATE_POSSIBLE; - // data of the current Hammer.gesture detection session - current: null, + this.simultaneous = {}; + this.requireFail = []; + } - // the previous Hammer.gesture session data - // is a full clone of the previous gesture.current object - previous: null, + Recognizer.prototype = { + /** + * @virtual + * @type {Object} + */ + defaults: {}, - // when this becomes true, no gestures are fired - stopped: false, + /** + * set options + * @param {Object} options + * @return {Recognizer} + */ + set: function(options) { + extend(this.options, options); + + // also update the touchAction, in case something changed about the directions/enabled state + this.manager && this.manager.touchAction.update(); + return this; + }, /** - * start Hammer.gesture detection - * @method startDetect - * @param {Hammer.Instance} inst - * @param {Object} eventData + * recognize simultaneous with an other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this */ - startDetect: function startDetect(inst, eventData) { - // already busy with a Hammer.gesture detection on an element - if(this.current) { - return; + recognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'recognizeWith', this)) { + return this; } - this.stopped = false; + var simultaneous = this.simultaneous; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (!simultaneous[otherRecognizer.id]) { + simultaneous[otherRecognizer.id] = otherRecognizer; + otherRecognizer.recognizeWith(this); + } + return this; + }, - // holds current session - this.current = { - inst: inst, // reference to HammerInstance we're working for - startEvent: Utils.extend({}, eventData), // start eventData for distances, timing etc - lastEvent: false, // last eventData - lastCalcEvent: false, // last eventData for calculations. - futureCalcEvent: false, // last eventData for calculations. - lastCalcData: {}, // last lastCalcData - name: '' // current gesture we're in/detected, can be 'tap', 'hold' etc - }; + /** + * drop the simultaneous link. it doesnt remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRecognizeWith: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRecognizeWith', this)) { + return this; + } - this.detect(eventData); + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + delete this.simultaneous[otherRecognizer.id]; + return this; }, /** - * Hammer.gesture detection - * @method detect - * @param {Object} eventData - * @return {any} + * recognizer can only run when an other is failing + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this */ - detect: function detect(eventData) { - if(!this.current || this.stopped) { - return; + requireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'requireFailure', this)) { + return this; } - // extend event data with calculations about scale, distance etc - eventData = this.extendEventData(eventData); - - // hammer instance and instance options - var inst = this.current.inst, - instOptions = inst.options; - - // call Hammer.gesture handlers - Utils.each(this.gestures, function triggerGesture(gesture) { - // only when the instance options have enabled this gesture - if(!this.stopped && inst.enabled && instOptions[gesture.name]) { - gesture.handler.call(gesture, eventData, inst); - } - }, this); + var requireFail = this.requireFail; + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + if (inArray(requireFail, otherRecognizer) === -1) { + requireFail.push(otherRecognizer); + otherRecognizer.requireFailure(this); + } + return this; + }, - // store as previous event event - if(this.current) { - this.current.lastEvent = eventData; + /** + * drop the requireFailure link. it does not remove the link on the other recognizer. + * @param {Recognizer} otherRecognizer + * @returns {Recognizer} this + */ + dropRequireFailure: function(otherRecognizer) { + if (invokeArrayArg(otherRecognizer, 'dropRequireFailure', this)) { + return this; } - if(eventData.eventType == EVENT_END) { - this.stopDetect(); + otherRecognizer = getRecognizerByNameIfManager(otherRecognizer, this); + var index = inArray(this.requireFail, otherRecognizer); + if (index > -1) { + this.requireFail.splice(index, 1); } + return this; + }, - return eventData; + /** + * has require failures boolean + * @returns {boolean} + */ + hasRequireFailures: function() { + return this.requireFail.length > 0; }, /** - * clear the Hammer.gesture vars - * this is called on endDetect, but can also be used when a final Hammer.gesture has been detected - * to stop other Hammer.gestures from being fired - * @method stopDetect + * if the recognizer can recognize simultaneous with an other recognizer + * @param {Recognizer} otherRecognizer + * @returns {Boolean} */ - stopDetect: function stopDetect() { - // clone current data to the store as the previous gesture - // used for the double tap gesture, since this is an other gesture detect session - this.previous = Utils.extend({}, this.current); - - // reset the current - this.current = null; - this.stopped = true; + canRecognizeWith: function(otherRecognizer) { + return !!this.simultaneous[otherRecognizer.id]; }, /** - * calculate velocity, angle and direction - * @method getVelocityData - * @param {Object} ev - * @param {Object} center - * @param {Number} deltaTime - * @param {Number} deltaX - * @param {Number} deltaY + * You should use `tryEmit` instead of `emit` directly to check + * that all the needed recognizers has failed before emitting. + * @param {Object} input */ - getCalculatedData: function getCalculatedData(ev, center, deltaTime, deltaX, deltaY) { - var cur = this.current, - recalc = false, - calcEv = cur.lastCalcEvent, - calcData = cur.lastCalcData; + emit: function(input) { + var self = this; + var state = this.state; - if(calcEv && ev.timeStamp - calcEv.timeStamp > Hammer.CALCULATE_INTERVAL) { - center = calcEv.center; - deltaTime = ev.timeStamp - calcEv.timeStamp; - deltaX = ev.center.clientX - calcEv.center.clientX; - deltaY = ev.center.clientY - calcEv.center.clientY; - recalc = true; + function emit(withState) { + self.manager.emit(self.options.event + (withState ? stateStr(state) : ''), input); } - if(ev.eventType == EVENT_TOUCH || ev.eventType == EVENT_RELEASE) { - cur.futureCalcEvent = ev; + // 'panstart' and 'panmove' + if (state < STATE_ENDED) { + emit(true); } - if(!cur.lastCalcEvent || recalc) { - calcData.velocity = Utils.getVelocity(deltaTime, deltaX, deltaY); - calcData.angle = Utils.getAngle(center, ev.center); - calcData.direction = Utils.getDirection(center, ev.center); + emit(); // simple 'eventName' events - cur.lastCalcEvent = cur.futureCalcEvent || ev; - cur.futureCalcEvent = ev; + // panend and pancancel + if (state >= STATE_ENDED) { + emit(true); } - - ev.velocityX = calcData.velocity.x; - ev.velocityY = calcData.velocity.y; - ev.interimAngle = calcData.angle; - ev.interimDirection = calcData.direction; }, /** - * extend eventData for Hammer.gestures - * @method extendEventData - * @param {Object} ev - * @return {Object} ev + * Check that all the require failure recognizers has failed, + * if true, it emits a gesture event, + * otherwise, setup the state to FAILED. + * @param {Object} input */ - extendEventData: function extendEventData(ev) { - var cur = this.current, - startEv = cur.startEvent, - lastEv = cur.lastEvent || startEv; - - // update the start touchlist to calculate the scale/rotation - if(ev.eventType == EVENT_TOUCH || ev.eventType == EVENT_RELEASE) { - startEv.touches = []; - Utils.each(ev.touches, function(touch) { - startEv.touches.push({ - clientX: touch.clientX, - clientY: touch.clientY - }); - }); + tryEmit: function(input) { + if (this.canEmit()) { + return this.emit(input); } + // it's failing anyway + this.state = STATE_FAILED; + }, - var deltaTime = ev.timeStamp - startEv.timeStamp, - deltaX = ev.center.clientX - startEv.center.clientX, - deltaY = ev.center.clientY - startEv.center.clientY; - - this.getCalculatedData(ev, lastEv.center, deltaTime, deltaX, deltaY); + /** + * can we emit? + * @returns {boolean} + */ + canEmit: function() { + var i = 0; + while (i < this.requireFail.length) { + if (!(this.requireFail[i].state & (STATE_FAILED | STATE_POSSIBLE))) { + return false; + } + i++; + } + return true; + }, - Utils.extend(ev, { - startEvent: startEv, + /** + * update the recognizer + * @param {Object} inputData + */ + recognize: function(inputData) { + // make a new copy of the inputData + // so we can change the inputData without messing up the other recognizers + var inputDataClone = extend({}, inputData); + + // is is enabled and allow recognizing? + if (!boolOrFn(this.options.enable, [this, inputDataClone])) { + this.reset(); + this.state = STATE_FAILED; + return; + } - deltaTime: deltaTime, - deltaX: deltaX, - deltaY: deltaY, + // reset when we've reached the end + if (this.state & (STATE_RECOGNIZED | STATE_CANCELLED | STATE_FAILED)) { + this.state = STATE_POSSIBLE; + } - distance: Utils.getDistance(startEv.center, ev.center), - angle: Utils.getAngle(startEv.center, ev.center), - direction: Utils.getDirection(startEv.center, ev.center), - scale: Utils.getScale(startEv.touches, ev.touches), - rotation: Utils.getRotation(startEv.touches, ev.touches) - }); + this.state = this.process(inputDataClone); - return ev; + // the recognizer has recognized a gesture + // so trigger an event + if (this.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED | STATE_CANCELLED)) { + this.tryEmit(inputDataClone); + } }, /** - * register new gesture - * @method register - * @param {Object} gesture object, see `gestures/` for documentation - * @return {Array} gestures + * return the state of the recognizer + * the actual recognizing happens in this method + * @virtual + * @param {Object} inputData + * @returns {Const} STATE */ - register: function register(gesture) { - // add an enable gesture options if there is no given - var options = gesture.defaults || {}; - if(options[gesture.name] === undefined) { - options[gesture.name] = true; - } + process: function(inputData) { }, // jshint ignore:line - // extend Hammer default options with the Hammer.gesture options - Utils.extend(Hammer.defaults, options, true); - - // set its index - gesture.index = gesture.index || 1000; - - // add Hammer.gesture to the list - this.gestures.push(gesture); + /** + * return the preferred touch-action + * @virtual + * @returns {Array} + */ + getTouchAction: function() { }, - // sort the list by index - this.gestures.sort(function(a, b) { - if(a.index < b.index) { - return -1; - } - if(a.index > b.index) { - return 1; - } - return 0; - }); + /** + * called when the gesture isn't allowed to recognize + * like when another is being recognized or it is disabled + * @virtual + */ + reset: function() { } + }; - return this.gestures; + /** + * get a usable string, used as event postfix + * @param {Const} state + * @returns {String} state + */ + function stateStr(state) { + if (state & STATE_CANCELLED) { + return 'cancel'; + } else if (state & STATE_ENDED) { + return 'end'; + } else if (state & STATE_CHANGED) { + return 'move'; + } else if (state & STATE_BEGAN) { + return 'start'; } - }; + return ''; + } + /** + * direction cons to string + * @param {Const} direction + * @returns {String} + */ + function directionStr(direction) { + if (direction == DIRECTION_DOWN) { + return 'down'; + } else if (direction == DIRECTION_UP) { + return 'up'; + } else if (direction == DIRECTION_LEFT) { + return 'left'; + } else if (direction == DIRECTION_RIGHT) { + return 'right'; + } + return ''; + } /** - * @module hammer + * get a recognizer by name if it is bound to a manager + * @param {Recognizer|String} otherRecognizer + * @param {Recognizer} recognizer + * @returns {Recognizer} */ + function getRecognizerByNameIfManager(otherRecognizer, recognizer) { + var manager = recognizer.manager; + if (manager) { + return manager.get(otherRecognizer); + } + return otherRecognizer; + } /** - * create new hammer instance - * all methods should return the instance itself, so it is chainable. - * - * @class Instance + * This recognizer is just used as a base for the simple attribute recognizers. * @constructor - * @param {HTMLElement} element - * @param {Object} [options={}] options are merged with `Hammer.defaults` - * @return {Hammer.Instance} + * @extends Recognizer */ - Hammer.Instance = function(element, options) { - var self = this; - - // setup HammerJS window events and register all gestures - // this also sets up the default options - setup(); + function AttrRecognizer() { + Recognizer.apply(this, arguments); + } + inherit(AttrRecognizer, Recognizer, { /** - * @property element - * @type {HTMLElement} + * @namespace + * @memberof AttrRecognizer */ - this.element = element; + defaults: { + /** + * @type {Number} + * @default 1 + */ + pointers: 1 + }, /** - * @property enabled - * @type {Boolean} - * @protected + * Used to check if it the recognizer receives valid input, like input.distance > 10. + * @memberof AttrRecognizer + * @param {Object} input + * @returns {Boolean} recognized */ - this.enabled = true; + attrTest: function(input) { + var optionPointers = this.options.pointers; + return optionPointers === 0 || input.pointers.length === optionPointers; + }, /** - * options, merged with the defaults - * options with an _ are converted to camelCase - * @property options - * @type {Object} + * Process the input and return the state for the recognizer + * @memberof AttrRecognizer + * @param {Object} input + * @returns {*} State */ - Utils.each(options, function(value, name) { - delete options[name]; - options[Utils.toCamelCase(name)] = value; - }); - - this.options = Utils.extend(Utils.extend({}, Hammer.defaults), options || {}); - - // add some css to the element to prevent the browser from doing its native behavoir - if(this.options.behavior) { - Utils.toggleBehavior(this.element, this.options.behavior, true); + process: function(input) { + var state = this.state; + var eventType = input.eventType; + + var isRecognized = state & (STATE_BEGAN | STATE_CHANGED); + var isValid = this.attrTest(input); + + // on cancel input and we've recognized before, return STATE_CANCELLED + if (isRecognized && (eventType & INPUT_CANCEL || !isValid)) { + return state | STATE_CANCELLED; + } else if (isRecognized || isValid) { + if (eventType & INPUT_END) { + return state | STATE_ENDED; + } else if (!(state & STATE_BEGAN)) { + return STATE_BEGAN; + } + return state | STATE_CHANGED; + } + return STATE_FAILED; } + }); - /** - * event start handler on the element to start the detection - * @property eventStartHandler - * @type {Object} - */ - this.eventStartHandler = Event.onTouch(element, EVENT_START, function(ev) { - if(self.enabled && ev.eventType == EVENT_START) { - Detection.startDetect(self, ev); - } else if(ev.eventType == EVENT_TOUCH) { - Detection.detect(ev); - } - }); + /** + * Pan + * Recognized when the pointer is down and moved in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ + function PanRecognizer() { + AttrRecognizer.apply(this, arguments); - /** - * keep a list of user event handlers which needs to be removed when calling 'dispose' - * @property eventHandlers - * @type {Array} - */ - this.eventHandlers = []; - }; + this.pX = null; + this.pY = null; + } - Hammer.Instance.prototype = { + inherit(PanRecognizer, AttrRecognizer, { /** - * bind events to the instance - * @method on - * @chainable - * @param {String} gestures multiple gestures by splitting with a space - * @param {Function} handler - * @param {Object} handler.ev event object + * @namespace + * @memberof PanRecognizer */ - on: function onEvent(gestures, handler) { - var self = this; - Event.on(self.element, gestures, handler, function(type) { - self.eventHandlers.push({ gesture: type, handler: handler }); - }); - return self; + defaults: { + event: 'pan', + threshold: 10, + pointers: 1, + direction: DIRECTION_ALL }, - /** - * unbind events to the instance - * @method off - * @chainable - * @param {String} gestures - * @param {Function} handler - */ - off: function offEvent(gestures, handler) { - var self = this; + getTouchAction: function() { + var direction = this.options.direction; + var actions = []; + if (direction & DIRECTION_HORIZONTAL) { + actions.push(TOUCH_ACTION_PAN_Y); + } + if (direction & DIRECTION_VERTICAL) { + actions.push(TOUCH_ACTION_PAN_X); + } + return actions; + }, - Event.off(self.element, gestures, handler, function(type) { - var index = Utils.inArray({ gesture: type, handler: handler }); - if(index !== false) { - self.eventHandlers.splice(index, 1); + directionTest: function(input) { + var options = this.options; + var hasMoved = true; + var distance = input.distance; + var direction = input.direction; + var x = input.deltaX; + var y = input.deltaY; + + // lock to axis? + if (!(direction & options.direction)) { + if (options.direction & DIRECTION_HORIZONTAL) { + direction = (x === 0) ? DIRECTION_NONE : (x < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; + hasMoved = x != this.pX; + distance = Math.abs(input.deltaX); + } else { + direction = (y === 0) ? DIRECTION_NONE : (y < 0) ? DIRECTION_UP : DIRECTION_DOWN; + hasMoved = y != this.pY; + distance = Math.abs(input.deltaY); } - }); - return self; + } + input.direction = direction; + return hasMoved && distance > options.threshold && direction & options.direction; }, - /** - * trigger gesture event - * @method trigger - * @chainable - * @param {String} gesture - * @param {Object} [eventData] - */ - trigger: function triggerEvent(gesture, eventData) { - // optional - if(!eventData) { - eventData = {}; - } + attrTest: function(input) { + return AttrRecognizer.prototype.attrTest.call(this, input) && + (this.state & STATE_BEGAN || (!(this.state & STATE_BEGAN) && this.directionTest(input))); + }, - // create DOM event - var event = Hammer.DOCUMENT.createEvent('Event'); - event.initEvent(gesture, true, true); - event.gesture = eventData; + emit: function(input) { + this.pX = input.deltaX; + this.pY = input.deltaY; - // trigger on the target if it is in the instance element, - // this is for event delegation tricks - var element = this.element; - if(Utils.hasParent(eventData.target, element)) { - element = eventData.target; + var direction = directionStr(input.direction); + if (direction) { + this.manager.emit(this.options.event + direction, input); } - element.dispatchEvent(event); - return this; - }, + this._super.emit.call(this, input); + } + }); + + /** + * Pinch + * Recognized when two or more pointers are moving toward (zoom-in) or away from each other (zoom-out). + * @constructor + * @extends AttrRecognizer + */ + function PinchRecognizer() { + AttrRecognizer.apply(this, arguments); + } + inherit(PinchRecognizer, AttrRecognizer, { /** - * enable of disable hammer.js detection - * @method enable - * @chainable - * @param {Boolean} state + * @namespace + * @memberof PinchRecognizer */ - enable: function enable(state) { - this.enabled = state; - return this; + defaults: { + event: 'pinch', + threshold: 0, + pointers: 2 }, - /** - * dispose this hammer instance - * @method dispose - * @return {Null} - */ - dispose: function dispose() { - var i, eh; + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, - // undo all changes made by stop_browser_behavior - Utils.toggleBehavior(this.element, this.options.behavior, false); + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.scale - 1) > this.options.threshold || this.state & STATE_BEGAN); + }, - // unbind all custom event handlers - for(i = -1; (eh = this.eventHandlers[++i]);) { - Utils.off(this.element, eh.gesture, eh.handler); + emit: function(input) { + this._super.emit.call(this, input); + if (input.scale !== 1) { + var inOut = input.scale < 1 ? 'in' : 'out'; + this.manager.emit(this.options.event + inOut, input); } - - this.eventHandlers = []; - - // unbind the start event listener - Event.off(this.element, EVENT_TYPES[EVENT_START], this.eventStartHandler); - - return null; } - }; + }); - - /** - * @module gestures - */ - /** - * Move with x fingers (default 1) around on the page. - * Preventing the default browser behavior is a good way to improve feel and working. - * ```` - * hammertime.on("drag", function(ev) { - * console.log(ev); - * ev.gesture.preventDefault(); - * }); - * ```` - * - * @class Drag - * @static - */ - /** - * @event drag - * @param {Object} ev - */ - /** - * @event dragstart - * @param {Object} ev - */ - /** - * @event dragend - * @param {Object} ev - */ - /** - * @event drapleft - * @param {Object} ev - */ - /** - * @event dragright - * @param {Object} ev - */ - /** - * @event dragup - * @param {Object} ev - */ /** - * @event dragdown - * @param {Object} ev + * Press + * Recognized when the pointer is down for x ms without any movement. + * @constructor + * @extends Recognizer */ + function PressRecognizer() { + Recognizer.apply(this, arguments); - /** - * @param {String} name - */ - (function(name) { - var triggered = false; + this._timer = null; + this._input = null; + } + + inherit(PressRecognizer, Recognizer, { + /** + * @namespace + * @memberof PressRecognizer + */ + defaults: { + event: 'press', + pointers: 1, + time: 500, // minimal time of the pointer to be pressed + threshold: 5 // a minimal movement is ok, but keep it low + }, + + getTouchAction: function() { + return [TOUCH_ACTION_AUTO]; + }, + + process: function(input) { + var options = this.options; + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTime = input.deltaTime > options.time; + + this._input = input; + + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (!validMovement || !validPointers || (input.eventType & (INPUT_END | INPUT_CANCEL) && !validTime)) { + this.reset(); + } else if (input.eventType & INPUT_START) { + this.reset(); + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.time, this); + } else if (input.eventType & INPUT_END) { + return STATE_RECOGNIZED; + } + return STATE_FAILED; + }, - function dragGesture(ev, inst) { - var cur = Detection.current; + reset: function() { + clearTimeout(this._timer); + }, - // max touches - if(inst.options.dragMaxTouches > 0 && - ev.touches.length > inst.options.dragMaxTouches) { + emit: function(input) { + if (this.state !== STATE_RECOGNIZED) { return; } - switch(ev.eventType) { - case EVENT_START: - triggered = false; - break; - - case EVENT_MOVE: - // when the distance we moved is too small we skip this gesture - // or we can be already in dragging - if(ev.distance < inst.options.dragMinDistance && - cur.name != name) { - return; - } + if (input && (input.eventType & INPUT_END)) { + this.manager.emit(this.options.event + 'up', input); + } else { + this._input.timeStamp = now(); + this.manager.emit(this.options.event, this._input); + } + } + }); - var startCenter = cur.startEvent.center; - - // we are dragging! - if(cur.name != name) { - cur.name = name; - if(inst.options.dragDistanceCorrection && ev.distance > 0) { - // When a drag is triggered, set the event center to dragMinDistance pixels from the original event center. - // Without this correction, the dragged distance would jumpstart at dragMinDistance pixels instead of at 0. - // It might be useful to save the original start point somewhere - var factor = Math.abs(inst.options.dragMinDistance / ev.distance); - startCenter.pageX += ev.deltaX * factor; - startCenter.pageY += ev.deltaY * factor; - startCenter.clientX += ev.deltaX * factor; - startCenter.clientY += ev.deltaY * factor; - - // recalculate event data using new start point - ev = Detection.extendEventData(ev); - } - } + /** + * Rotate + * Recognized when two or more pointer are moving in a circular motion. + * @constructor + * @extends AttrRecognizer + */ + function RotateRecognizer() { + AttrRecognizer.apply(this, arguments); + } - // lock drag to axis? - if(cur.lastEvent.dragLockToAxis || - ( inst.options.dragLockToAxis && - inst.options.dragLockMinDistance <= ev.distance - )) { - ev.dragLockToAxis = true; - } + inherit(RotateRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof RotateRecognizer + */ + defaults: { + event: 'rotate', + threshold: 0, + pointers: 2 + }, - // keep direction on the axis that the drag gesture started on - var lastDirection = cur.lastEvent.direction; - if(ev.dragLockToAxis && lastDirection !== ev.direction) { - if(Utils.isVertical(lastDirection)) { - ev.direction = (ev.deltaY < 0) ? DIRECTION_UP : DIRECTION_DOWN; - } else { - ev.direction = (ev.deltaX < 0) ? DIRECTION_LEFT : DIRECTION_RIGHT; - } - } + getTouchAction: function() { + return [TOUCH_ACTION_NONE]; + }, - // first time, trigger dragstart event - if(!triggered) { - inst.trigger(name + 'start', ev); - triggered = true; - } + attrTest: function(input) { + return this._super.attrTest.call(this, input) && + (Math.abs(input.rotation) > this.options.threshold || this.state & STATE_BEGAN); + } + }); - // trigger events - inst.trigger(name, ev); - inst.trigger(name + ev.direction, ev); + /** + * Swipe + * Recognized when the pointer is moving fast (velocity), with enough distance in the allowed direction. + * @constructor + * @extends AttrRecognizer + */ + function SwipeRecognizer() { + AttrRecognizer.apply(this, arguments); + } - var isVertical = Utils.isVertical(ev.direction); + inherit(SwipeRecognizer, AttrRecognizer, { + /** + * @namespace + * @memberof SwipeRecognizer + */ + defaults: { + event: 'swipe', + threshold: 10, + velocity: 0.65, + direction: DIRECTION_HORIZONTAL | DIRECTION_VERTICAL, + pointers: 1 + }, - // block the browser events - if((inst.options.dragBlockVertical && isVertical) || - (inst.options.dragBlockHorizontal && !isVertical)) { - ev.preventDefault(); - } - break; + getTouchAction: function() { + return PanRecognizer.prototype.getTouchAction.call(this); + }, - case EVENT_RELEASE: - if(triggered && ev.changedLength <= inst.options.dragMaxTouches) { - inst.trigger(name + 'end', ev); - triggered = false; - } - break; + attrTest: function(input) { + var direction = this.options.direction; + var velocity; - case EVENT_END: - triggered = false; - break; + if (direction & (DIRECTION_HORIZONTAL | DIRECTION_VERTICAL)) { + velocity = input.velocity; + } else if (direction & DIRECTION_HORIZONTAL) { + velocity = input.velocityX; + } else if (direction & DIRECTION_VERTICAL) { + velocity = input.velocityY; } - } - Hammer.gestures.Drag = { - name: name, - index: 50, - handler: dragGesture, - defaults: { - /** - * minimal movement that have to be made before the drag event gets triggered - * @property dragMinDistance - * @type {Number} - * @default 10 - */ - dragMinDistance: 10, - - /** - * Set dragDistanceCorrection to true to make the starting point of the drag - * be calculated from where the drag was triggered, not from where the touch started. - * Useful to avoid a jerk-starting drag, which can make fine-adjustments - * through dragging difficult, and be visually unappealing. - * @property dragDistanceCorrection - * @type {Boolean} - * @default true - */ - dragDistanceCorrection: true, - - /** - * set 0 for unlimited, but this can conflict with transform - * @property dragMaxTouches - * @type {Number} - * @default 1 - */ - dragMaxTouches: 1, - - /** - * prevent default browser behavior when dragging occurs - * be careful with it, it makes the element a blocking element - * when you are using the drag gesture, it is a good practice to set this true - * @property dragBlockHorizontal - * @type {Boolean} - * @default false - */ - dragBlockHorizontal: false, - - /** - * same as `dragBlockHorizontal`, but for vertical movement - * @property dragBlockVertical - * @type {Boolean} - * @default false - */ - dragBlockVertical: false, - - /** - * dragLockToAxis keeps the drag gesture on the axis that it started on, - * It disallows vertical directions if the initial direction was horizontal, and vice versa. - * @property dragLockToAxis - * @type {Boolean} - * @default false - */ - dragLockToAxis: false, - - /** - * drag lock only kicks in when distance > dragLockMinDistance - * This way, locking occurs only when the distance has become large enough to reliably determine the direction - * @property dragLockMinDistance - * @type {Number} - * @default 25 - */ - dragLockMinDistance: 25 + return this._super.attrTest.call(this, input) && + direction & input.direction && + input.distance > this.options.threshold && + abs(velocity) > this.options.velocity && input.eventType & INPUT_END; + }, + + emit: function(input) { + var direction = directionStr(input.direction); + if (direction) { + this.manager.emit(this.options.event + direction, input); } - }; - })('drag'); - /** - * @module gestures - */ - /** - * trigger a simple gesture event, so you can do anything in your handler. - * only usable if you know what your doing... - * - * @class Gesture - * @static - */ - /** - * @event gesture - * @param {Object} ev - */ - Hammer.gestures.Gesture = { - name: 'gesture', - index: 1337, - handler: function releaseGesture(ev, inst) { - inst.trigger(this.name, ev); + this.manager.emit(this.options.event, input); } - }; + }); /** - * @module gestures - */ - /** - * Touch stays at the same place for x time + * A tap is ecognized when the pointer is doing a small tap/click. Multiple taps are recognized if they occur + * between the given interval and position. The delay option can be used to recognize multi-taps without firing + * a single tap. * - * @class Hold - * @static - */ - /** - * @event hold - * @param {Object} ev + * The eventData from the emitted event contains the property `tapCount`, which contains the amount of + * multi-taps being recognized. + * @constructor + * @extends Recognizer */ + function TapRecognizer() { + Recognizer.apply(this, arguments); - /** - * @param {String} name - */ - (function(name) { - var timer; + // previous time and center, + // used for tap counting + this.pTime = false; + this.pCenter = false; + + this._timer = null; + this._input = null; + this.count = 0; + } - function holdGesture(ev, inst) { - var options = inst.options, - current = Detection.current; + inherit(TapRecognizer, Recognizer, { + /** + * @namespace + * @memberof PinchRecognizer + */ + defaults: { + event: 'tap', + pointers: 1, + taps: 1, + interval: 300, // max time between the multi-tap taps + time: 250, // max time of the pointer to be down (like finger on the screen) + threshold: 2, // a minimal movement is ok, but keep it low + posThreshold: 10 // a multi-tap can be a bit off the initial position + }, - switch(ev.eventType) { - case EVENT_START: - clearTimeout(timer); + getTouchAction: function() { + return [TOUCH_ACTION_MANIPULATION]; + }, - // set the gesture so we can check in the timeout if it still is - current.name = name; + process: function(input) { + var options = this.options; - // set timer and if after the timeout it still is hold, - // we trigger the hold event - timer = setTimeout(function() { - if(current && current.name == name) { - inst.trigger(name, ev); - } - }, options.holdTimeout); - break; + var validPointers = input.pointers.length === options.pointers; + var validMovement = input.distance < options.threshold; + var validTouchTime = input.deltaTime < options.time; - case EVENT_MOVE: - if(ev.distance > options.holdThreshold) { - clearTimeout(timer); - } - break; + this.reset(); - case EVENT_RELEASE: - clearTimeout(timer); - break; + if ((input.eventType & INPUT_START) && (this.count === 0)) { + return this.failTimeout(); } - } - Hammer.gestures.Hold = { - name: name, - index: 10, - defaults: { - /** - * @property holdTimeout - * @type {Number} - * @default 500 - */ - holdTimeout: 500, - - /** - * movement allowed while holding - * @property holdThreshold - * @type {Number} - * @default 2 - */ - holdThreshold: 2 - }, - handler: holdGesture - }; - })('hold'); + // we only allow little movement + // and we've reached an end event, so a tap is possible + if (validMovement && validTouchTime && validPointers) { + if (input.eventType != INPUT_END) { + return this.failTimeout(); + } + + var validInterval = this.pTime ? (input.timeStamp - this.pTime < options.interval) : true; + var validMultiTap = !this.pCenter || getDistance(this.pCenter, input.center) < options.posThreshold; + + this.pTime = input.timeStamp; + this.pCenter = input.center; + + if (!validMultiTap || !validInterval) { + this.count = 1; + } else { + this.count += 1; + } + + this._input = input; + + // if tap count matches we have recognized it, + // else it has began recognizing... + var tapCount = this.count % options.taps; + if (tapCount === 0) { + // no failing requirements, immediately trigger the tap event + // or wait as long as the multitap interval to trigger + if (!this.hasRequireFailures()) { + return STATE_RECOGNIZED; + } else { + this._timer = setTimeoutContext(function() { + this.state = STATE_RECOGNIZED; + this.tryEmit(); + }, options.interval, this); + return STATE_BEGAN; + } + } + } + return STATE_FAILED; + }, + + failTimeout: function() { + this._timer = setTimeoutContext(function() { + this.state = STATE_FAILED; + }, this.options.interval, this); + return STATE_FAILED; + }, + + reset: function() { + clearTimeout(this._timer); + }, - /** - * @module gestures - */ - /** - * when a touch is being released from the page - * - * @class Release - * @static - */ - /** - * @event release - * @param {Object} ev - */ - Hammer.gestures.Release = { - name: 'release', - index: Infinity, - handler: function releaseGesture(ev, inst) { - if(ev.eventType == EVENT_RELEASE) { - inst.trigger(this.name, ev); + emit: function() { + if (this.state == STATE_RECOGNIZED ) { + this._input.tapCount = this.count; + this.manager.emit(this.options.event, this._input); } } - }; + }); /** - * @module gestures - */ - /** - * triggers swipe events when the end velocity is above the threshold - * for best usage, set `preventDefault` (on the drag gesture) to `true` - * ```` - * hammertime.on("dragleft swipeleft", function(ev) { - * console.log(ev); - * ev.gesture.preventDefault(); - * }); - * ```` - * - * @class Swipe - * @static - */ - /** - * @event swipe - * @param {Object} ev - */ - /** - * @event swipeleft - * @param {Object} ev - */ - /** - * @event swiperight - * @param {Object} ev + * Simple way to create an manager with a default set of recognizers. + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor */ + function Hammer(element, options) { + options = options || {}; + options.recognizers = ifUndefined(options.recognizers, Hammer.defaults.preset); + return new Manager(element, options); + } + /** - * @event swipeup - * @param {Object} ev + * @const {string} */ + Hammer.VERSION = '2.0.4'; + /** - * @event swipedown - * @param {Object} ev + * default settings + * @namespace */ - Hammer.gestures.Swipe = { - name: 'swipe', - index: 40, - defaults: { + Hammer.defaults = { + /** + * set if DOM events are being triggered. + * But this is slower and unused by simple implementations, so disabled by default. + * @type {Boolean} + * @default false + */ + domEvents: false, + + /** + * The value for the touchAction property/fallback. + * When set to `compute` it will magically set the correct value based on the added recognizers. + * @type {String} + * @default compute + */ + touchAction: TOUCH_ACTION_COMPUTE, + + /** + * @type {Boolean} + * @default true + */ + enable: true, + + /** + * EXPERIMENTAL FEATURE -- can be removed/changed + * Change the parent input target element. + * If Null, then it is being set the to main element. + * @type {Null|EventTarget} + * @default null + */ + inputTarget: null, + + /** + * force an input class + * @type {Null|Function} + * @default null + */ + inputClass: null, + + /** + * Default recognizer setup when calling `Hammer()` + * When creating a new Manager these will be skipped. + * @type {Array} + */ + preset: [ + // RecognizerClass, options, [recognizeWith, ...], [requireFailure, ...] + [RotateRecognizer, { enable: false }], + [PinchRecognizer, { enable: false }, ['rotate']], + [SwipeRecognizer,{ direction: DIRECTION_HORIZONTAL }], + [PanRecognizer, { direction: DIRECTION_HORIZONTAL }, ['swipe']], + [TapRecognizer], + [TapRecognizer, { event: 'doubletap', taps: 2 }, ['tap']], + [PressRecognizer] + ], + + /** + * Some CSS properties can be used to improve the working of Hammer. + * Add them to this method and they will be set when creating a new Manager. + * @namespace + */ + cssProps: { /** - * @property swipeMinTouches - * @type {Number} - * @default 1 + * Disables text selection to improve the dragging gesture. Mainly for desktop browsers. + * @type {String} + * @default 'none' */ - swipeMinTouches: 1, + userSelect: 'none', /** - * @property swipeMaxTouches - * @type {Number} - * @default 1 + * Disable the Windows Phone grippers when pressing an element. + * @type {String} + * @default 'none' */ - swipeMaxTouches: 1, + touchSelect: 'none', /** - * horizontal swipe velocity - * @property swipeVelocityX - * @type {Number} - * @default 0.6 + * Disables the default callout shown when you touch and hold a touch target. + * On iOS, when you touch and hold a touch target such as a link, Safari displays + * a callout containing information about the link. This property allows you to disable that callout. + * @type {String} + * @default 'none' */ - swipeVelocityX: 0.6, + touchCallout: 'none', /** - * vertical swipe velocity - * @property swipeVelocityY - * @type {Number} - * @default 0.6 + * Specifies whether zooming is enabled. Used by IE10> + * @type {String} + * @default 'none' */ - swipeVelocityY: 0.6 - }, - - handler: function swipeGesture(ev, inst) { - if(ev.eventType == EVENT_RELEASE) { - var touches = ev.touches.length, - options = inst.options; + contentZooming: 'none', - // max touches - if(touches < options.swipeMinTouches || - touches > options.swipeMaxTouches) { - return; - } + /** + * Specifies that an entire element should be draggable instead of its contents. Mainly for desktop browsers. + * @type {String} + * @default 'none' + */ + userDrag: 'none', - // when the distance we moved is too small we skip this gesture - // or we can be already in dragging - if(ev.velocityX > options.swipeVelocityX || - ev.velocityY > options.swipeVelocityY) { - // trigger swipe events - inst.trigger(this.name, ev); - inst.trigger(this.name + ev.direction, ev); - } - } + /** + * Overrides the highlight color shown when the user taps a link or a JavaScript + * clickable element in iOS. This property obeys the alpha value, if specified. + * @type {String} + * @default 'rgba(0,0,0,0)' + */ + tapHighlightColor: 'rgba(0,0,0,0)' } }; - /** - * @module gestures - */ - /** - * Single tap and a double tap on a place - * - * @class Tap - * @static - */ - /** - * @event tap - * @param {Object} ev - */ - /** - * @event doubletap - * @param {Object} ev - */ + var STOP = 1; + var FORCED_STOP = 2; /** - * @param {String} name + * Manager + * @param {HTMLElement} element + * @param {Object} [options] + * @constructor */ - (function(name) { - var hasMoved = false; + function Manager(element, options) { + options = options || {}; - function tapGesture(ev, inst) { - var options = inst.options, - current = Detection.current, - prev = Detection.previous, - sincePrev, - didDoubleTap; + this.options = merge(options, Hammer.defaults); + this.options.inputTarget = this.options.inputTarget || element; - switch(ev.eventType) { - case EVENT_START: - hasMoved = false; - break; + this.handlers = {}; + this.session = {}; + this.recognizers = []; - case EVENT_MOVE: - hasMoved = hasMoved || (ev.distance > options.tapMaxDistance); - break; + this.element = element; + this.input = createInputInstance(this); + this.touchAction = new TouchAction(this, this.options.touchAction); - case EVENT_END: - if(!Utils.inStr(ev.srcEvent.type, 'cancel') && ev.deltaTime < options.tapMaxTime && !hasMoved) { - // previous gesture, for the double tap since these are two different gesture detections - sincePrev = prev && prev.lastEvent && ev.timeStamp - prev.lastEvent.timeStamp; - didDoubleTap = false; - - // check if double tap - if(prev && prev.name == name && - (sincePrev && sincePrev < options.doubleTapInterval) && - ev.distance < options.doubleTapDistance) { - inst.trigger('doubletap', ev); - didDoubleTap = true; - } + toggleCssProps(this, true); - // do a single tap - if(!didDoubleTap || options.tapAlways) { - current.name = name; - inst.trigger(current.name, ev); - } - } - break; + each(options.recognizers, function(item) { + var recognizer = this.add(new (item[0])(item[1])); + item[2] && recognizer.recognizeWith(item[2]); + item[3] && recognizer.requireFailure(item[3]); + }, this); + } + + Manager.prototype = { + /** + * set options + * @param {Object} options + * @returns {Manager} + */ + set: function(options) { + extend(this.options, options); + + // Options that need a little more setup + if (options.touchAction) { + this.touchAction.update(); } - } + if (options.inputTarget) { + // Clean up existing event listeners and reinitialize + this.input.destroy(); + this.input.target = options.inputTarget; + this.input.init(); + } + return this; + }, - Hammer.gestures.Tap = { - name: name, - index: 100, - handler: tapGesture, - defaults: { - /** - * max time of a tap, this is for the slow tappers - * @property tapMaxTime - * @type {Number} - * @default 250 - */ - tapMaxTime: 250, - - /** - * max distance of movement of a tap, this is for the slow tappers - * @property tapMaxDistance - * @type {Number} - * @default 10 - */ - tapMaxDistance: 10, - - /** - * always trigger the `tap` event, even while double-tapping - * @property tapAlways - * @type {Boolean} - * @default true - */ - tapAlways: true, - - /** - * max distance between two taps - * @property doubleTapDistance - * @type {Number} - * @default 20 - */ - doubleTapDistance: 20, - - /** - * max time between two taps - * @property doubleTapInterval - * @type {Number} - * @default 300 - */ - doubleTapInterval: 300 + /** + * stop recognizing for this session. + * This session will be discarded, when a new [input]start event is fired. + * When forced, the recognizer cycle is stopped immediately. + * @param {Boolean} [force] + */ + stop: function(force) { + this.session.stopped = force ? FORCED_STOP : STOP; + }, + + /** + * run the recognizers! + * called by the inputHandler function on every movement of the pointers (touches) + * it walks through all the recognizers and tries to detect the gesture that is being made + * @param {Object} inputData + */ + recognize: function(inputData) { + var session = this.session; + if (session.stopped) { + return; } - }; - })('tap'); - /** - * @module gestures - */ - /** - * when a touch is being touched at the page - * - * @class Touch - * @static - */ - /** - * @event touch - * @param {Object} ev - */ - Hammer.gestures.Touch = { - name: 'touch', - index: -Infinity, - defaults: { - /** - * call preventDefault at touchstart, and makes the element blocking by disabling the scrolling of the page, - * but it improves gestures like transforming and dragging. - * be careful with using this, it can be very annoying for users to be stuck on the page - * @property preventDefault - * @type {Boolean} - * @default false - */ - preventDefault: false, + // run the touch-action polyfill + this.touchAction.preventDefaults(inputData); - /** - * disable mouse events, so only touch (or pen!) input triggers events - * @property preventMouse - * @type {Boolean} - * @default false - */ - preventMouse: false + var recognizer; + var recognizers = this.recognizers; + + // this holds the recognizer that is being recognized. + // so the recognizer's state needs to be BEGAN, CHANGED, ENDED or RECOGNIZED + // if no recognizer is detecting a thing, it is set to `null` + var curRecognizer = session.curRecognizer; + + // reset when the last recognizer is recognized + // or when we're in a new session + if (!curRecognizer || (curRecognizer && curRecognizer.state & STATE_RECOGNIZED)) { + curRecognizer = session.curRecognizer = null; + } + + var i = 0; + while (i < recognizers.length) { + recognizer = recognizers[i]; + + // find out if we are allowed try to recognize the input for this one. + // 1. allow if the session is NOT forced stopped (see the .stop() method) + // 2. allow if we still haven't recognized a gesture in this session, or the this recognizer is the one + // that is being recognized. + // 3. allow if the recognizer is allowed to run simultaneous with the current recognized recognizer. + // this can be setup with the `recognizeWith()` method on the recognizer. + if (session.stopped !== FORCED_STOP && ( // 1 + !curRecognizer || recognizer == curRecognizer || // 2 + recognizer.canRecognizeWith(curRecognizer))) { // 3 + recognizer.recognize(inputData); + } else { + recognizer.reset(); + } + + // if the recognizer has been recognizing the input as a valid gesture, we want to store this one as the + // current active recognizer. but only if we don't already have an active recognizer + if (!curRecognizer && recognizer.state & (STATE_BEGAN | STATE_CHANGED | STATE_ENDED)) { + curRecognizer = session.curRecognizer = recognizer; + } + i++; + } }, - handler: function touchGesture(ev, inst) { - if(inst.options.preventMouse && ev.pointerType == POINTER_MOUSE) { - ev.stopDetect(); - return; + + /** + * get a recognizer by its event name. + * @param {Recognizer|String} recognizer + * @returns {Recognizer|Null} + */ + get: function(recognizer) { + if (recognizer instanceof Recognizer) { + return recognizer; } - if(inst.options.preventDefault) { - ev.preventDefault(); + var recognizers = this.recognizers; + for (var i = 0; i < recognizers.length; i++) { + if (recognizers[i].options.event == recognizer) { + return recognizers[i]; + } } + return null; + }, - if(ev.eventType == EVENT_TOUCH) { - inst.trigger('touch', ev); + /** + * add a recognizer to the manager + * existing recognizers with the same event name will be removed + * @param {Recognizer} recognizer + * @returns {Recognizer|Manager} + */ + add: function(recognizer) { + if (invokeArrayArg(recognizer, 'add', this)) { + return this; } - } - }; - /** - * @module gestures - */ - /** - * User want to scale or rotate with 2 fingers - * Preventing the default browser behavior is a good way to improve feel and working. This can be done with the - * `preventDefault` option. - * - * @class Transform - * @static - */ - /** - * @event transform - * @param {Object} ev - */ - /** - * @event transformstart - * @param {Object} ev - */ - /** - * @event transformend - * @param {Object} ev - */ - /** - * @event pinchin - * @param {Object} ev - */ - /** - * @event pinchout - * @param {Object} ev - */ - /** - * @event rotate - * @param {Object} ev - */ + // remove existing + var existing = this.get(recognizer.options.event); + if (existing) { + this.remove(existing); + } - /** - * @param {String} name - */ - (function(name) { - var triggered = false; + this.recognizers.push(recognizer); + recognizer.manager = this; - function transformGesture(ev, inst) { - switch(ev.eventType) { - case EVENT_START: - triggered = false; - break; + this.touchAction.update(); + return recognizer; + }, - case EVENT_MOVE: - // at least multitouch - if(ev.touches.length < 2) { - return; - } + /** + * remove a recognizer by name or instance + * @param {Recognizer|String} recognizer + * @returns {Manager} + */ + remove: function(recognizer) { + if (invokeArrayArg(recognizer, 'remove', this)) { + return this; + } - var scaleThreshold = Math.abs(1 - ev.scale); - var rotationThreshold = Math.abs(ev.rotation); + var recognizers = this.recognizers; + recognizer = this.get(recognizer); + recognizers.splice(inArray(recognizers, recognizer), 1); - // when the distance we moved is too small we skip this gesture - // or we can be already in dragging - if(scaleThreshold < inst.options.transformMinScale && - rotationThreshold < inst.options.transformMinRotation) { - return; - } + this.touchAction.update(); + return this; + }, - // we are transforming! - Detection.current.name = name; + /** + * bind event + * @param {String} events + * @param {Function} handler + * @returns {EventEmitter} this + */ + on: function(events, handler) { + var handlers = this.handlers; + each(splitStr(events), function(event) { + handlers[event] = handlers[event] || []; + handlers[event].push(handler); + }); + return this; + }, - // first time, trigger dragstart event - if(!triggered) { - inst.trigger(name + 'start', ev); - triggered = true; - } + /** + * unbind event, leave emit blank to remove all handlers + * @param {String} events + * @param {Function} [handler] + * @returns {EventEmitter} this + */ + off: function(events, handler) { + var handlers = this.handlers; + each(splitStr(events), function(event) { + if (!handler) { + delete handlers[event]; + } else { + handlers[event].splice(inArray(handlers[event], handler), 1); + } + }); + return this; + }, - inst.trigger(name, ev); // basic transform event + /** + * emit event to the listeners + * @param {String} event + * @param {Object} data + */ + emit: function(event, data) { + // we also want to trigger dom events + if (this.options.domEvents) { + triggerDomEvent(event, data); + } - // trigger rotate event - if(rotationThreshold > inst.options.transformMinRotation) { - inst.trigger('rotate', ev); - } + // no handlers, so skip it all + var handlers = this.handlers[event] && this.handlers[event].slice(); + if (!handlers || !handlers.length) { + return; + } - // trigger pinch event - if(scaleThreshold > inst.options.transformMinScale) { - inst.trigger('pinch', ev); - inst.trigger('pinch' + (ev.scale < 1 ? 'in' : 'out'), ev); - } - break; + data.type = event; + data.preventDefault = function() { + data.srcEvent.preventDefault(); + }; - case EVENT_RELEASE: - if(triggered && ev.changedLength < 2) { - inst.trigger(name + 'end', ev); - triggered = false; - } - break; + var i = 0; + while (i < handlers.length) { + handlers[i](data); + i++; } - } + }, - Hammer.gestures.Transform = { - name: name, - index: 45, - defaults: { - /** - * minimal scale factor, no scale is 1, zoomin is to 0 and zoomout until higher then 1 - * @property transformMinScale - * @type {Number} - * @default 0.01 - */ - transformMinScale: 0.01, - - /** - * rotation in degrees - * @property transformMinRotation - * @type {Number} - * @default 1 - */ - transformMinRotation: 1 - }, + /** + * destroy the manager and unbinds all events + * it doesn't unbind dom events, that is the user own responsibility + */ + destroy: function() { + this.element && toggleCssProps(this, false); - handler: transformGesture - }; - })('transform'); + this.handlers = {}; + this.session = {}; + this.input.destroy(); + this.element = null; + } + }; + + /** + * add/remove the css properties as defined in manager.options.cssProps + * @param {Manager} manager + * @param {Boolean} add + */ + function toggleCssProps(manager, add) { + var element = manager.element; + each(manager.options.cssProps, function(value, name) { + element.style[prefixed(element.style, name)] = add ? value : ''; + }); + } /** - * @module hammer + * trigger dom event + * @param {String} event + * @param {Object} data */ + function triggerDomEvent(event, data) { + var gestureEvent = document.createEvent('Event'); + gestureEvent.initEvent(event, true, true); + gestureEvent.gesture = data; + data.target.dispatchEvent(gestureEvent); + } - // AMD export - if(true) { + extend(Hammer, { + INPUT_START: INPUT_START, + INPUT_MOVE: INPUT_MOVE, + INPUT_END: INPUT_END, + INPUT_CANCEL: INPUT_CANCEL, + + STATE_POSSIBLE: STATE_POSSIBLE, + STATE_BEGAN: STATE_BEGAN, + STATE_CHANGED: STATE_CHANGED, + STATE_ENDED: STATE_ENDED, + STATE_RECOGNIZED: STATE_RECOGNIZED, + STATE_CANCELLED: STATE_CANCELLED, + STATE_FAILED: STATE_FAILED, + + DIRECTION_NONE: DIRECTION_NONE, + DIRECTION_LEFT: DIRECTION_LEFT, + DIRECTION_RIGHT: DIRECTION_RIGHT, + DIRECTION_UP: DIRECTION_UP, + DIRECTION_DOWN: DIRECTION_DOWN, + DIRECTION_HORIZONTAL: DIRECTION_HORIZONTAL, + DIRECTION_VERTICAL: DIRECTION_VERTICAL, + DIRECTION_ALL: DIRECTION_ALL, + + Manager: Manager, + Input: Input, + TouchAction: TouchAction, + + TouchInput: TouchInput, + MouseInput: MouseInput, + PointerEventInput: PointerEventInput, + TouchMouseInput: TouchMouseInput, + SingleTouchInput: SingleTouchInput, + + Recognizer: Recognizer, + AttrRecognizer: AttrRecognizer, + Tap: TapRecognizer, + Pan: PanRecognizer, + Swipe: SwipeRecognizer, + Pinch: PinchRecognizer, + Rotate: RotateRecognizer, + Press: PressRecognizer, + + on: addEventListeners, + off: removeEventListeners, + each: each, + merge: merge, + extend: extend, + inherit: inherit, + bindFn: bindFn, + prefixed: prefixed + }); + + if ("function" == TYPE_FUNCTION && __webpack_require__(72)) { !(__WEBPACK_AMD_DEFINE_RESULT__ = function() { return Hammer; }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); - // commonjs export - } else if(typeof module !== 'undefined' && module.exports) { + } else if (typeof module != 'undefined' && module.exports) { module.exports = Hammer; - // browser export } else { - window.Hammer = Hammer; + window[exportName] = Hammer; } - })(window); + })(window, document, 'Hammer'); + /***/ }, /* 60 */ @@ -33977,6 +34282,14 @@ return /******/ (function(modules) { // webpackBootstrap } +/***/ }, +/* 72 */ +/***/ function(module, exports, __webpack_require__) { + + /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; + + /* WEBPACK VAR INJECTION */}.call(exports, {})) + /***/ } /******/ ]) }); diff --git a/dist/vis.map b/dist/vis.map index 250231b2..4a5dca19 100644 --- a/dist/vis.map +++ b/dist/vis.map @@ -1 +1 @@ -{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","Math","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","value","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","GiveDec","Hex","Value","eval","GiveHex","Dec","parseColor","color","isValidRGB","rgb","substr","RGBToHex","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","min","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","hexToRGB","hex","replace","toUpperCase","substring","d","e","f","r","g","red","green","blue","RGBToHSV","minRGB","maxRGB","max","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","point","drawPoints","setAttributeNS","size","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","result","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","scale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","label","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xOffset","yOffset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","parseInt","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","content","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setGroups","setItems","Core","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","linegraph","getLegend","groupId","isGroupVisible","visibility","convertHiddenOptions","repeat","dateItem","updateHiddenDates","centerContainer","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","time","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","slice","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","pageX","pageY","hammerUtil","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","gesture","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","SCALE","DAY","MILLISECOND","SECOND","MINUTE","HOUR","WEEKDAY","MONTH","YEAR","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","newScale","newStep","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","format","getLabelMajor","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","locale","parent","backgroundVertical","title","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","Hammer","drag","prevent_default","setCustomTime","getCustomTime","stopPropagation","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","hide","show","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","changeCalled","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupIndex","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","foreground","marker","Element","getLabelWidth","restack","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","displayed","_calculateHeight","offsetTop","offsetLeft","ii","repositionY","resetSubgroups","labelSet","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","repositionX","initialPos","breakCondition","isVisible","align","groupOrder","selectable","editable","updateTime","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","markDirty","unselect","select","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","itemFromTarget","selected","dragLeftItem","dragRightItem","initialX","itemProps","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","srcEvent","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","getComputedStyle","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","autoSizeSVG","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","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","majorLines","majorTexts","minorLines","minorTexts","lineTop","lang","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","xFirstMajorLabel","cur","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_repaintDeleteButton","anchor","deleteButton","_updateContents","template","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","onTop","itemSubgroup","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","maxPhysicsTicksPerRender","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","level","highlightColor","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","navigation","keyboard","speed","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","existing","_new","animationSpeed","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","_getScriptPath","scripts","getElementsByTagName","src","_getRange","node","minY","maxY","minX","maxX","nodeId","_findCenter","animationOptions","initialZoom","disableStart","zoomLevel","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","getTitle","isOverlappingWith","edge","connected","popup","setPosition","setText","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","changedData","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","setValueRange","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","mainMovingStatus","supportMovingStatus","_doInAllActiveSectors","mainMoving","_doInSupportSector","_animationStep","_handleNavigation","calculationTime","maxSteps","timeRequired","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","ua","toLowerCase","requiresTimeout","iterations","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getScale","getCenterCoordinates","networkConstants","fromId","toId","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","quadraticCurveTo","lineCount","measureText","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","atan2","arrow","edgeSegmentLength","fromBorderDist","distanceToBorder","fromBorderPoint","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodePositions","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","defaultIndex","DEFAULT","load","url","brokenUrl","img","Image","onload","onerror","imagelist","grouplist","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","_setForce","_addForce","isFixed","velocity","getDistance","globalAlpha","drawImage","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","custom","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","hour","minute","second","millisecond","_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","updateOffset","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","DATE","_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","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_isPm","isPM","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","weekday","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","meridiem","SS","SSS","SSSS","Z","zone","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","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","defaultFormat","relativeTimeThreshold","threshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateTzOffset","inputString","asFloat","daysAdjust","that","zoneDiff","startOf","humanize","fromNow","sod","isDST","getDay","endOf","inputMs","isSame","localAdjust","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","setup","READY","Event","determineEventTypes","Utils","each","gestures","Detection","register","onTouch","DOCUMENT","EVENT_MOVE","detect","EVENT_END","Instance","defaults","behavior","userSelect","touchAction","touchCallout","contentZooming","userDrag","tapHighlightColor","HAS_POINTEREVENTS","pointerEnabled","msPointerEnabled","HAS_TOUCHEVENTS","IS_MOBILE","NO_MOUSEEVENTS","CALCULATE_INTERVAL","EVENT_TYPES","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_UP","DIRECTION_RIGHT","POINTER_MOUSE","POINTER_TOUCH","POINTER_PEN","EVENT_START","EVENT_RELEASE","EVENT_TOUCH","plugins","utils","dest","handler","iterator","inStr","find","inArray","hasParent","getCenter","getVelocity","deltaTime","getAngle","touch1","touch2","getDirection","getRotation","isVertical","setPrefixedCss","toggle","prefixes","toCamelCase","toggleBehavior","falseFn","onselectstart","ondragstart","str","preventMouseEvents","started","shouldDetect","hook","onTouchHandler","ev","triggerType","srcType","isPointer","isMouse","buttons","PointerEvent","matchType","updatePointer","doDetect","touchList","touchListLength","triggerChange","trigger","changedLength","changedTouches","evData","identifiers","identifier","pointerType","timeStamp","preventManipulation","stopDetect","pointers","touchlist","pointerEvent","pointerId","pt","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_TOUCH","MSPOINTER_TYPE_PEN","detection","stopped","startDetect","inst","eventData","startEvent","lastEvent","lastCalcEvent","futureCalcEvent","lastCalcData","extendEventData","instOptions","getCalculatedData","recalc","calcEv","calcData","velocityX","velocityY","interimAngle","interimDirection","startEv","lastEv","rotation","eventStartHandler","eventHandlers","createEvent","initEvent","dispatchEvent","state","dispose","eh","dragGesture","dragMaxTouches","triggered","dragMinDistance","startCenter","dragDistanceCorrection","dragLockToAxis","dragLockMinDistance","lastDirection","dragBlockVertical","dragBlockHorizontal","Drag","Gesture","holdGesture","holdTimeout","holdThreshold","Hold","Release","Swipe","swipeMinTouches","swipeMaxTouches","swipeVelocityX","swipeVelocityY","tapGesture","sincePrev","didDoubleTap","hasMoved","tapMaxDistance","tapMaxTime","doubleTapInterval","doubleTapDistance","tapAlways","Tap","Touch","preventMouse","transformGesture","scaleThreshold","rotationThreshold","transformMinScale","transformMinRotation","Transform","clusterToFit","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","repositionNodes","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_sector","_addSector","decreaseClusterLevel","_expandClusterNode","_updateDynamicEdges","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","_collapseSector","_formClusters","_openClusters","_openClustersBySize","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","openAll","containedNodeId","childNode","_expelChildFromParent","_unselectAll","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","correction","edgeToId","edgeFromId","k","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","total","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","overlappingNodes","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","overlappingEdges","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","_removeFromSelection","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","_createAddNodeToolbar","_createAddEdgeToolbar","_editNode","_createEditEdgeToolbar","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","supportNodes","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","_setLevelDirected","parentId","parentLevel","nodeMoved","_restoreNodes","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodeId","gravity","gravityForce","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","webpackContext","req","resolve","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","centerX","centerY","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackPolyfill","paths"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"vis.map","sources":["./dist/vis.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","util","DOMutil","DataSet","DataView","Queue","Graph3d","graph3d","Camera","Filter","Point2d","Point3d","Slider","StepNumber","Timeline","Graph2d","timeline","DateUtil","DataStep","Range","stack","TimeStep","components","items","Item","BackgroundItem","BoxItem","PointItem","RangeItem","Component","CurrentTime","CustomTime","DataAxis","GraphGroup","Group","BackgroundGroup","ItemSet","Legend","LineGraph","TimeAxis","Network","network","Edge","Groups","Images","Node","Popup","dotparser","gephiParser","Graph","Error","moment","hammer","isNumber","object","Number","isString","String","isDate","Date","match","ASPDateRegex","exec","isNaN","parse","isDataTable","google","visualization","DataTable","randomUUID","S4","Math","floor","random","toString","extend","a","i","len","arguments","length","other","prop","hasOwnProperty","selectiveExtend","props","Array","isArray","selectiveDeepExtend","b","TypeError","constructor","Object","undefined","deepExtend","selectiveNotDeepExtend","indexOf","equalArray","convert","type","Boolean","valueOf","isMoment","toDate","getType","toISOString","value","getAbsoluteLeft","elem","getBoundingClientRect","left","window","pageXOffset","getAbsoluteTop","top","pageYOffset","addClassName","className","classes","split","push","join","removeClassName","index","splice","forEach","callback","toArray","array","updateProperty","key","addEventListener","element","action","listener","useCapture","navigator","userAgent","attachEvent","removeEventListener","detachEvent","preventDefault","event","returnValue","getTarget","target","srcElement","nodeType","parentNode","option","asBoolean","defaultValue","asNumber","asString","asSize","asElement","GiveDec","Hex","Value","eval","GiveHex","Dec","parseColor","color","isValidRGB","rgb","substr","RGBToHex","isValidHex","hsv","hexToHSV","lighterColorHSV","h","s","v","min","darkerColorHSV","darkerColorHex","HSVToHex","lighterColorHex","background","border","highlight","hover","hexToRGB","hex","replace","toUpperCase","substring","d","e","f","r","g","red","green","blue","RGBToHSV","minRGB","maxRGB","max","hue","saturation","cssUtil","cssText","styles","style","trim","parts","keys","map","addCssText","currentStyles","newStyles","removeCssText","removeStyles","HSVToRGB","q","t","isOk","test","selectiveBridgeObject","fields","referenceObject","objectTo","create","bridgeObject","mergeOptions","mergeTarget","options","enabled","binarySearchCustom","orderedItems","searchFunction","field","field2","maxIterations","iteration","low","high","middle","item","searchResult","binarySearchValue","sidePreference","prevValue","nextValue","easeInOutQuad","start","end","duration","change","easingFunctions","linear","easeInQuad","easeOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","prepareElements","JSONcontainer","elementType","redundant","used","cleanupElements","removeChild","getSVGElement","svgContainer","shift","document","createElementNS","appendChild","getDOMElement","DOMContainer","insertBefore","createElement","drawPoint","x","y","group","point","drawPoints","setAttributeNS","size","drawBar","width","height","rect","data","_options","_data","_fieldId","fieldId","_type","_subscribers","add","setOptions","prototype","queue","_queue","destroy","on","subscribers","subscribe","off","filter","unsubscribe","_trigger","params","senderId","concat","subscriber","addedIds","me","_addItem","columns","_getColumnNames","row","rows","getNumberOfRows","col","cols","getValue","update","updatedIds","updatedData","addOrUpdate","_updateItem","get","ids","firstType","returnType","allowedValues","itemId","_getItem","order","_sort","_filterFields","_appendRow","result","getIds","getDataSet","mappedItems","filteredItem","name","sort","av","bv","remove","removedId","removedIds","_remove","clear","maxField","itemField","minField","distinct","values","fieldType","count","exists","types","raw","converted","JSON","stringify","dataTable","getNumberOfColumns","getColumnId","getColumnLabel","addRow","setValue","_ids","_onEvent","apply","setData","viewOptions","getArguments","defaultFilter","dataSet","added","updated","removed","delay","Infinity","_timeout","_extended","_flushIfNeeded","flush","methods","original","method","args","fn","context","entry","clearTimeout","setTimeout","container","SyntaxError","containerElement","margin","defaultXCenter","defaultYCenter","xLabel","yLabel","zLabel","passValueFn","xValueLabel","yValueLabel","zValueLabel","filterLabel","legendLabel","STYLE","DOT","showPerspective","showGrid","keepAspectRatio","showShadow","showGrayBottom","showTooltip","verticalRatio","animationInterval","animationPreload","camera","eye","dataPoints","colX","colY","colZ","colValue","colFilter","xMin","xStep","xMax","yMin","yStep","yMax","zMin","zStep","zMax","valueMin","valueMax","xBarWidth","yBarWidth","colorAxis","colorGrid","colorDot","colorDotBorder","getMouseX","clientX","targetTouches","getMouseY","clientY","Emitter","_setScale","scale","z","xCenter","yCenter","zCenter","setArmLocation","_convert3Dto2D","point3d","translation","_convertPointToTranslation","_convertTranslationToScreen","ax","ay","az","cx","getCameraLocation","cy","cz","sinTx","sin","getCameraRotation","cosTx","cos","sinTy","cosTy","sinTz","cosTz","dx","dy","dz","bx","by","ex","ey","ez","getArmLength","xcenter","frame","canvas","clientWidth","ycenter","_setBackgroundColor","backgroundColor","fill","stroke","strokeWidth","borderColor","borderWidth","borderStyle","BAR","BARCOLOR","BARSIZE","DOTLINE","DOTCOLOR","DOTSIZE","GRID","LINE","SURFACE","_getStyleNumber","styleName","_determineColumnIndexes","counter","column","getDistinctValues","distinctValues","getColumnRange","minMax","_dataInitialize","rawData","_onChange","dataFilter","setOnLoadCallback","redraw","withBars","defaultXBarWidth","dataX","defaultYBarWidth","dataY","xRange","defaultXMin","defaultXMax","defaultXStep","yRange","defaultYMin","defaultYMax","defaultYStep","zRange","defaultZMin","defaultZMax","defaultZStep","valueRange","defaultValueMin","defaultValueMax","_getDataPoints","obj","sortNumber","dataMatrix","xIndex","yIndex","trans","screen","bottom","pointRight","pointTop","pointCross","hasChildNodes","firstChild","position","overflow","noCanvas","fontWeight","padding","innerHTML","onmousedown","_onMouseDown","ontouchstart","_onTouchStart","onmousewheel","_onWheel","ontooltip","_onTooltip","onkeydown","setSize","_resizeCanvas","clientHeight","animationStart","slider","play","animationStop","stop","_resizeCenter","charAt","parseFloat","setCameraPosition","pos","horizontal","vertical","setArmRotation","distance","setArmLength","getCameraPosition","getArmRotation","_readData","_redrawFilter","animationAutoStart","cameraPosition","styleNumber","tooltip","showAnimationControls","_redrawSlider","_redrawClear","_redrawAxis","_redrawDataGrid","_redrawDataLine","_redrawDataBar","_redrawDataDot","_redrawInfo","_redrawLegend","ctx","getContext","clearRect","widthMin","widthMax","dotSize","right","lineWidth","font","ymin","ymax","_hsv2rgb","strokeStyle","beginPath","moveTo","lineTo","strokeRect","fillStyle","closePath","gridLineLen","step","getCurrent","next","textAlign","textBaseline","fillText","label","visible","setValues","setPlayInterval","onchange","getIndex","selectValue","setOnChangeCallback","lineStyle","getLabel","getSelectedValue","from","to","prettyStep","text","xText","yText","zText","offset","xOffset","yOffset","xMin2d","xMax2d","gridLenX","gridLenY","textMargin","armAngle","H","S","V","R","G","B","C","Hi","X","abs","parseInt","cross","topSideVisible","zAvg","transBottom","dist","sortDepth","aDiff","subtract","bDiff","crossproduct","crossProduct","radius","arc","PI","j","surface","corners","xWidth","yWidth","surfaces","center","avg","transCenter","diff","leftButtonDown","_onMouseUp","which","button","touchDown","startMouseX","startMouseY","startStart","startEnd","startArmRotation","cursor","onmousemove","_onMouseMove","onmouseup","diffX","diffY","horizontalNew","verticalNew","snapAngle","snapValue","round","parameters","emit","mouseX","mouseY","tooltipTimeout","_hideTooltip","dataPoint","_dataPointFromXY","_showTooltip","ontouchmove","_onTouchMove","ontouchend","_onTouchEnd","delta","wheelDelta","detail","oldLength","newLength","_insideTriangle","triangle","sign","as","bs","cs","distMax","closestDataPoint","closestDist","triangle1","triangle2","distX","distY","sqrt","content","line","dot","dom","borderRadius","boxShadow","borderLeft","contentWidth","offsetWidth","contentHeight","offsetHeight","lineHeight","dotWidth","dotHeight","armLocation","armRotation","armLength","cameraLocation","cameraRotation","calculateCameraOrientation","rot","graph","onLoadCallback","loadInBackground","isLoaded","getLoadedProgress","getColumn","getValues","dataView","progress","sub","sum","prev","bar","MozBorderRadius","slide","onclick","togglePlay","onChangeCallback","playTimeout","playInterval","playLoop","setIndex","playNext","interval","clearInterval","getPlayInterval","setPlayLoop","doLoop","onChange","indexToLeft","startClientX","startSlideX","leftToIndex","_start","_end","_step","precision","_current","setRange","setStep","calculatePrettyStep","log10","log","LN10","step1","pow","step2","step5","toPrecision","getStep","groups","forthArgument","defaultOptions","autoResize","orientation","maxHeight","minHeight","_create","body","domProps","emitter","bind","hiddenDates","snap","toScreen","_toScreen","toGlobalScreen","_toGlobalScreen","toTime","_toTime","toGlobalTime","_toGlobalTime","range","timeAxis","currentTime","customTime","itemSet","itemsData","groupsData","setGroups","setItems","Core","newDataSet","initialLoad","dataRange","_getDataRange","setWindow","animate","fit","setSelection","focus","getSelection","itemData","getItemRange","dataset","minItem","maxStartItem","maxEndItem","linegraph","getLegend","groupId","isGroupVisible","visibility","convertHiddenOptions","repeat","dateItem","updateHiddenDates","centerContainer","totalRange","pixelTime","startDate","endDate","_d","runUntil","clone","day","dayOfYear","year","dayOffset","date","month","console","removeDuplicates","startHidden","isHidden","endHidden","rangeStart","rangeEnd","hidden","startToFront","endToFront","_applyRange","safeDates","printDates","dates","stepOverHiddenDates","timeStep","previousTime","stepInHidden","currentValue","current","newValue","switchedYear","switchedMonth","switchedDay","time","conversion","getHiddenDurationBetween","correctTimeForHidden","hiddenDuration","totalDuration","partialDuration","accumulatedHiddenDuration","getAccumulatedHiddenDuration","newTime","getHiddenDurationBefore","timeOffset","requiredDuration","previousPoint","snapAwayFromHidden","direction","correctionEnabled","minimumStep","containerHeight","customRange","alignZeros","autoScale","stepIndex","marginStart","marginEnd","deadSpace","majorSteps","minorSteps","setMinimumStep","setFirst","safeSize","minimumStepValue","orderOfMagnitude","minorStepIdx","magnitudefactor","solutionFound","stepSize","niceStart","niceEnd","roundToMinor","marginRange","rounded","hasNext","previous","decimals","slice","exp","cnt","isMajor","now","hours","minutes","seconds","milliseconds","deltaDifference","scaleOffset","moveable","zoomable","zoomMin","zoomMax","touch","animateTimer","_onDragStart","_onDrag","_onDragEnd","_onHold","_onMouseWheel","_onTouch","_onPinch","validateDirection","getPointer","pageX","pageY","hammerUtil","_cancelAnimation","initStart","initEnd","initTime","anyChanged","dragging","done","changed","newStart","newEnd","getRange","totalHidden","previousDelta","allowDragging","gesture","deltaX","deltaY","diffRange","safeStart","safeEnd","fakeGesture","pointer","pointerDate","_pointerToDate","zoom","touches","centerDate","hiddenDurationBefore","hiddenDurationAfter","move","EPSILON","orderByStart","orderByEnd","aTime","bTime","force","iMax","axis","collidingItem","jj","collision","nostack","subgroups","newTop","subgroup","SCALE","DAY","MILLISECOND","SECOND","MINUTE","HOUR","WEEKDAY","MONTH","YEAR","first","setFullYear","getFullYear","setMonth","setDate","setHours","setMinutes","setSeconds","setMilliseconds","getMilliseconds","getSeconds","getMinutes","getHours","getDate","getMonth","setScale","newScale","newStep","setAutoScale","enable","stepYear","stepMonth","stepDay","stepHour","stepMinute","stepSecond","stepMillisecond","getLabelMinor","format","getLabelMajor","_isResized","resized","_previousWidth","_previousHeight","showCurrentTime","locales","locale","parent","backgroundVertical","title","currentTimeTimer","setCurrentTime","getCurrentTime","showCustomTime","eventParams","Hammer","drag","prevent_default","setCustomTime","getCustomTime","stopPropagation","svg","linegraphOptions","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","linegraphSVG","DOMelements","lines","labels","conversionFactor","minWidth","stepPixels","stepPixelsForced","zeroCrossing","lineOffset","master","svgElements","iconsRemoved","amountOfGroups","lineContainer","scrollTop","addGroup","graphOptions","updateGroup","removeGroup","hide","show","display","_redrawGroupIcons","iconHeight","iconOffset","drawIcon","_cleanupIcons","backgroundHorizontal","changeCalled","activeGroups","_calculateCharSize","minorLabelHeight","minorCharHeight","majorLabelHeight","majorCharHeight","minorLineWidth","minorLineHeight","majorLineWidth","majorLineHeight","_redrawLabels","_redrawTitle","amountOfSteps","stepDifference","zeroStepDifference","valueAtZero","marginStartPos","maxLabelSize","_redrawLabel","_redrawLine","titleWidth","titleCharHeight","convertValue","invertedValue","convertedValue","characterHeight","largestWidth","majorCharWidth","minorCharWidth","textMinor","createTextNode","measureCharMinor","textMajor","measureCharMajor","textTitle","measureCharTitle","titleCharWidth","groupsUsingDefaultStyles","usingDefaultStyle","zeroPosition","Line","Bar","Points","setZeroPosition","catmullRom","parametrization","alpha","SVGcontainer","path","fillPath","fillHeight","outline","shaded","barWidth","bar1Height","bar2Height","icon","yAxisOrientation","getYRange","groupData","draw","framework","subgroupIndex","subgroupOrderer","subgroupOrder","visibleItems","byStart","byEnd","checkRangedItems","inner","foreground","marker","Element","getLabelWidth","restack","_updateVisibleItems","markerHeight","lastMarkerHeight","dirty","displayed","_calculateHeight","offsetTop","offsetLeft","ii","repositionY","resetSubgroups","labelSet","setParent","orderSubgroups","_checkIfVisible","sortArray","sortField","removeFromDataSet","removeItem","startArray","endArray","oldVisibleItems","visibleItemsLookup","lowerBound","upperBound","_checkIfVisibleWithReference","initialPosByStart","_traceVisible","initialPosByEnd","repositionX","initialPos","breakCondition","isVisible","align","groupOrder","selectable","editable","updateTime","onAdd","onUpdate","onMove","onRemove","onMoving","itemOptions","itemListeners","_onAdd","_onUpdate","_onRemove","groupListeners","_onAddGroups","_onUpdateGroups","_onRemoveGroups","groupIds","selection","stackDirty","touchParams","UNGROUPED","BACKGROUND","box","_updateUngrouped","backgroundGroup","_onSelectItem","_onMultiSelectItem","_onAddItem","addCallback","Function","markDirty","unselect","select","getVisibleItems","rawVisibleItems","_deselect","_orderGroups","visibleInterval","zoomed","lastVisibleInterval","lastWidth","firstGroup","_firstGroup","firstMargin","nonFirstMargin","groupMargin","groupResized","firstGroupIndex","firstGroupId","ungrouped","_getGroupId","getLabelSet","oldItemsData","getItems","_order","getGroups","_getType","_removeItem","groupOptions","oldGroupId","oldGroup","_constructByEndArray","itemFromTarget","selected","dragLeftItem","dragRightItem","initialX","itemProps","newProps","initial","groupFromTarget","_updateItemProps","_moveToGroup","changes","ctrlKey","srcEvent","shiftKey","oldSelection","newSelection","xAbs","newItem","_getItemRange","_item","itemSetFromTarget","side","iconSize","iconSpacing","textArea","scrollableHeight","drawLegendIcons","getComputedStyle","paddingTop","defaultGroup","sampling","graphHeight","barChart","handleOverlap","dataAxis","legend","abortedGraphUpdate","autoSizeSVG","lastStart","COUNTER","BarGraphFunctions","yAxisLeft","yAxisRight","legendLeft","legendRight","_updateAllGroupData","_updateGroup","groupsContent","ungroupedCounter","forceGraphUpdate","_updateGraph","rangePerPixelInv","preprocessedGroupData","processedGroupData","groupRanges","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","majorLines","majorTexts","minorLines","minorTexts","lineTop","lang","parentChanged","foregroundNextSibling","nextSibling","backgroundNextSibling","_repaintLabels","timeLabelsize","xFirstMajorLabel","cur","_repaintMinorText","_repaintMajorText","_repaintMajorLine","_repaintMinorLine","leftTime","leftText","widthText","arr","pop","childNodes","nodeValue","_repaintDeleteButton","anchor","deleteButton","_updateContents","template","_updateTitle","removeAttribute","_updateDataAttributes","dataAttributes","attributes","setAttribute","_updateStyle","emptyContent","baseClassName","onTop","itemSubgroup","itemSetHeight","marginLeft","maxWidth","_repaintDragLeft","_repaintDragRight","contentLeft","parentWidth","boxWidth","dragLeft","dragRight","_initializeMixinLoaders","renderRefreshRate","renderTimestep","renderTime","maxPhysicsTicksPerRender","physicsDiscreteStepsize","initializing","triggerFunctions","edit","editEdge","connect","del","nodes","mass","radiusMin","radiusMax","shape","image","fontColor","fontSize","fontFace","fontFill","level","highlightColor","borderWidthSelected","edges","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","gap","altLength","inheritColor","configurePhysics","physics","barnesHut","theta","gravitationalConstant","centralGravity","springLength","springConstant","damping","repulsion","nodeDistance","hierarchicalRepulsion","clustering","initialMaxNodes","clusterThreshold","reduceToNodes","chainThreshold","clusterEdgeThreshold","sectorThreshold","screenSizeThreshold","fontSizeMultiplier","maxFontSize","forceAmplification","distanceAmplification","edgeGrowth","nodeScaling","maxNodeSizeIncrements","activeAreaBoxSize","clusterLevelDifference","navigation","keyboard","speed","dataManipulation","initiallyVisible","hierarchicalLayout","levelSeparation","nodeSpacing","layout","freezeForStabilization","smoothCurves","dynamic","roundness","maxVelocity","minVelocity","stabilize","stabilizationIterations","dragNetwork","dragNodes","hideEdgesOnDrag","hideNodesOnDrag","constants","pixelRatio","hoverObj","controlNodesActive","navigationHammers","existing","_new","animationSpeed","animationEasingFunction","easingTime","sourceScale","targetScale","sourceTranslation","targetTranslation","lockedOnNodeId","lockedOnNodeOffset","touchTime","images","setOnloadCallback","_redraw","xIncrement","yIncrement","zoomIncrement","_loadPhysicsSystem","_loadSectorSystem","_loadClusterSystem","_loadSelectionSystem","_loadHierarchySystem","_setTranslation","freezeSimulation","cachedFunctions","startedStabilization","stabilized","draggingNodes","calculationNodes","calculationNodeIndices","nodeIndices","canvasTopLeft","canvasBottomRight","pointerPosition","areaCenter","previousScale","nodesData","edgesData","nodesListeners","_addNodes","_updateNodes","_removeNodes","edgesListeners","_addEdges","_updateEdges","_removeEdges","moving","timer","_setupHierarchicalLayout","zoomExtent","startWithClustering","keycharm","MixinLoader","Activator","_getScriptPath","scripts","getElementsByTagName","src","_getRange","node","minY","maxY","minX","maxX","nodeId","_findCenter","animationOptions","initialZoom","disableStart","zoomLevel","numberOfNodes","factor","yDistance","xZoomLevel","yZoomLevel","animation","_updateNodeIndexList","_clearNodeIndexList","idx","dotData","DOTToGraph","gephi","gephiData","parseGephi","_setNodes","_setEdges","_putDataInSector","_resetLevels","_stabilize","onEdit","onEditEdge","onConnect","onDelete","editMode","newColorObj","groupname","clickToUse","activator","_createKeyBinds","_loadNavigationControls","_loadManipulationSystem","_configureSmoothCurves","devicePixelRatio","webkitBackingStorePixelRatio","mozBackingStorePixelRatio","msBackingStorePixelRatio","oBackingStorePixelRatio","backingStorePixelRatio","setTransform","pinch","_onTap","_onDoubleTap","_onMouseMoveTitle","hammerFrame","_onRelease","reset","isActive","_moveUp","_yStopMoving","_moveDown","_moveLeft","_xStopMoving","_moveRight","_zoomIn","_stopZoom","_zoomOut","_createManipulatorBar","_deleteSelected","_getPointer","pinched","_getScale","_handleTouch","_handleDragStart","_getNodeAt","_getTranslation","isSelected","_selectObject","nodeIds","objectId","selectionObj","xFixed","yFixed","_handleOnDrag","releaseNode","_XconvertDOMtoCanvas","_XconvertCanvasToDOM","_YconvertDOMtoCanvas","_YconvertCanvasToDOM","_handleDragEnd","_handleTap","_handleDoubleTap","_handleOnHold","_handleOnRelease","_zoom","scaleOld","preScaleDragPointer","DOMtoCanvas","scaleFrac","tx","ty","updateClustersDefault","postScaleDragPointer","canvasToDOM","popupObj","_checkHidePopup","checkShow","_checkShowPopup","popupTimer","edgeId","_getEdgeAt","_hoverObject","_blurObject","lastPopupNode","getTitle","isOverlappingWith","edge","connected","popup","setPosition","setText","emitEvent","oldWidth","oldHeight","oldNodesData","_updateSelection","angle","_updateCalculationNodes","_reconnectEdges","_updateValueRange","updateLabels","changedData","setProperties","properties","oldEdgesData","oldEdge","disconnect","showInternalIds","_createBezierNodes","via","sectors","dynamicEdges","setValueRange","w","save","translate","_doInAllSectors","restore","offsetX","offsetY","_drawNodes","alwaysShow","setScaleAndPos","inArea","sMax","_drawEdges","_drawControlNodes","_freezeDefinedNodes","_physicsTick","_restoreFrozenNodes","fixedData","_isMoving","vmin","isMoving","_discreteStepNodes","nodesPresent","discreteStepLimited","discreteStep","vminCorrected","mainMovingStatus","supportMovingStatus","_doInAllActiveSectors","mainMoving","_doInSupportSector","_animationStep","_handleNavigation","calculationTime","maxSteps","timeRequired","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","ua","toLowerCase","requiresTimeout","iterations","toggleFreeze","parentEdgeId","internalMultiplier","positionBezierNode","mixin","storePosition","storePositions","dataArray","allowedToMoveX","allowedToMoveY","getPositions","focusOnNode","nodePosition","lockedOnNode","easingFunction","animateView","locked","_transitionRedraw","viewCenter","distanceFromCenter","_classicRedraw","_lockedRedraw","active","getScale","getCenterCoordinates","networkConstants","fromId","toId","widthSelected","labelDimensions","yLine","dirtyLabel","fromBackup","toBackup","originalFromId","originalToId","widthFixed","lengthFixed","controlNodesEnabled","controlNodes","positions","connectedNode","_drawLine","_drawArrow","_drawArrowCenter","_drawDashLine","attachEdge","detachEdge","xFrom","yFrom","xTo","yTo","xObj","yObj","_getDistanceToEdge","_getColor","colorObj","_getLineWidth","_line","midpointX","midpointY","_pointOnLine","_label","resize","_circle","_pointOnCircle","networkScaleInv","_getViaCoordinates","xVia","yVia","quadraticCurveTo","lineCount","measureText","fillRect","mozDash","setLineDash","pattern","lineDashOffset","mozDashOffset","lineCap","dashedLine","percentage","atan2","arrow","edgeSegmentLength","fromBorderDist","distanceToBorder","fromBorderPoint","toBorderDist","toBorderPoint","x1","y1","x2","y2","x3","y3","lastX","lastY","minDistance","_getDistanceToLine","px","py","something","u","nodeIdFrom","nodeIdTo","getControlNodePositions","_enableControlNodes","_disableControlNodes","_getSelectedControlNode","fromDistance","toDistance","_restoreControlNodes","defaultIndex","DEFAULT","load","url","brokenUrl","img","Image","onload","onerror","imagelist","grouplist","reroutedEdges","fontDrawThreshold","horizontalAlignLeft","verticalAlignTop","baseRadiusValue","radiusFixed","preassignedLevel","hierarchyEnumerated","fx","fy","vx","vy","resetCluster","dynamicEdgesLength","clusterSession","clusterSizeWidthFactor","clusterSizeHeightFactor","clusterSizeRadiusFactor","growthIndicator","networkScale","formationScale","clusterSize","containedNodes","containedEdges","clusterSessions","originalLabel","triggerFunction","groupObj","imageObj","brokenImage","_drawDatabase","_resizeDatabase","_drawBox","_resizeBox","_drawCircle","_resizeCircle","_drawEllipse","_resizeEllipse","_drawImage","_resizeImage","_drawText","_resizeText","_drawDot","_resizeShape","_drawSquare","_drawTriangle","_drawTriangleDown","_drawStar","_reset","clearSizeCache","_setForce","_addForce","isFixed","velocity","getDistance","globalAlpha","drawImage","textSize","getTextSize","clusterLineWidth","selectionLineWidth","roundRect","database","diameter","circle","defaultSize","ellipse","_drawShape","radiusMultiplier","baseline","labelUnderNode","inView","clearVelocity","updateVelocity","massBeforeClustering","energyBefore","styleAttr","fontFamily","WebkitBorderRadius","whiteSpace","parseDOT","parseGraph","nextPreview","isAlphaNumeric","regexAlphaNumeric","merge","o","addNode","graphs","attr","addEdge","createEdge","getToken","tokenType","TOKENTYPE","NULL","token","isComment","DELIMITER","c2","DELIMITERS","IDENTIFIER","newSyntaxError","UNKNOWN","chop","strict","parseStatements","parseStatement","subgraph","parseSubgraph","parseEdge","parseAttributeStatement","parseNodeStatement","subgraphs","parseAttributeList","message","maxLength","forEach2","array1","array2","elem1","elem2","graphData","dotNode","graphNode","convertEdge","dotEdge","graphEdge","subEdge","{","}","[","]",";","=",",","->","--","gephiJSON","allowedToMove","gEdges","gNodes","gEdge","source","gNode","leftContainer","rightContainer","shadowTop","shadowBottom","shadowTopLeft","shadowBottomLeft","shadowTopRight","shadowBottomRight","_redrawTimer","listeners","events","scrollTopMin","redrawCount","_initAutoResize","component","_stopAutoResize","what","getWindow","borderRootHeight","borderRootWidth","autoHeight","centerWidth","_updateScrollTop","visibilityTop","visibilityBottom","MAX_REDRAWS","repaint","_startAutoResize","_onResize","lastHeight","watchTimer","setInterval","initialScrollTop","oldScrollTop","_getScrollTop","newScrollTop","_setScrollTop","eventType","getTouchList","collectEventData","custom","back","editNode","addDescription","edgeDescription","editEdgeDescription","createEdgeError","deleteClusterError","CanvasRenderingContext2D","square","s2","ir","triangleDown","star","n","r2d","kappa","ox","oy","xe","ye","xm","ym","bezierCurveTo","wEllipse","hEllipse","ymb","yeb","xt","yt","xi","yi","xl","yl","xr","yr","dashArray","dashLength","dashCount","slope","distRemaining","dashIndex","_catmullRom","_linear","dFill","_catmullRomUniform","p0","p1","p2","p3","bp1","bp2","normalization","d1","d2","d3","A","N","M","d3powA","d2powA","d3pow2A","d2pow2A","d1pow2A","d1powA","Bargraph","barCombinedData","coreDistance","drawData","combinedData","intersections","barPoints","_getDataIntersections","heightOffset","_getSafeDrawData","nextKey","amount","resolved","prevKey","accumulated","groupLabel","_getStackedBarYRange","xpos","PhysicsMixin","ClusterMixin","SectorsMixin","SelectionMixin","ManipulationMixin","NavigationMixin","HierarchicalLayoutMixin","_loadMixin","sourceVariable","mixinFunction","_clearMixin","_loadSelectedForceSolver","_loadPhysicsConfiguration","hubThreshold","activeSector","drawingNode","blockConnectingEdgeSelection","forceAppendSelection","manipulationDiv","editModeDiv","closeDiv","_cleanNavigation","_loadNavigationElements","overlay","_onTapOverlay","windowHammer","_hasParent","deactivate","escListener","activate","unbind","_callbacks","once","self","removeListener","removeAllListeners","callbacks","cb","hasListeners","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","_exportFunctions","_bound","keydown","keyup","_keys","fromCharCode","code","down","handleEvent","up","keyCode","bound","bindAll","getKey","newBindings","global","dfl","hasOwnProp","defaultParsingFlags","empty","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","printMsg","msg","suppressDeprecationWarnings","warn","deprecate","firstTime","deprecateSimple","deprecations","padToken","func","leftZeroFill","ordinalizeToken","period","localeData","ordinal","Locale","Moment","config","skipOverflow","checkOverflow","copyConfig","Duration","normalizedInput","normalizeObjectUnits","years","quarters","quarter","months","weeks","week","days","hour","minute","second","millisecond","_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","updateOffset","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","DATE","_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","timezoneMinutesFromString","string","possibleTzMatches","tzChunk","parseTimezoneChunker","addTimeToArrayFromToken","datePartArray","monthsParse","_dayOfYear","parseTwoDigitYear","_isPm","isPM","_useUTC","weekdaysParse","_w","invalidWeekday","dayOfYearFromWeekInfo","weekYear","weekday","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","meridiem","SS","SSS","SSSS","Z","zone","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","_invalidDate","ret","parseIso","diffRes","isDuration","inp","version","defaultFormat","relativeTimeThreshold","threshold","limit","defineLocale","_abbr","abbr","langData","flags","parseZone","isDSTShifted","parsingFlags","invalidAt","keepLocalTime","_dateTzOffset","inputString","asFloat","daysAdjust","that","zoneDiff","startOf","humanize","fromNow","sod","isDST","getDay","endOf","inputMs","isSame","localAdjust","_changeInProgress","hasAlignedHourOffset","isoWeeksInYear","weekInfo","newLocaleData","getTimezoneOffset","isoWeeks","toJSON","withSuffix","toIsoString","asSeconds","asMilliseconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","ordinalParse","require","noGlobal","exportName","setTimeoutContext","timeout","bindFn","invokeArrayArg","arg","each","iterator","dest","inherit","child","childP","baseP","_super","boolOrFn","TYPE_FUNCTION","ifUndefined","val1","val2","addEventListeners","handler","splitStr","removeEventListeners","hasParent","inStr","str","find","inArray","findByKey","uniqueArray","prefixed","property","prefix","camelProp","VENDOR_PREFIXES","uniqueId","_uniqueId","getWindowForElement","doc","ownerDocument","defaultView","parentWindow","Input","manager","inputTarget","domHandler","ev","init","createInputInstance","Type","inputClass","SUPPORT_POINTER_EVENTS","PointerEventInput","SUPPORT_ONLY_TOUCH","TouchInput","SUPPORT_TOUCH","TouchMouseInput","MouseInput","inputHandler","pointersLen","pointers","changedPointersLen","changedPointers","isFirst","INPUT_START","isFinal","INPUT_END","INPUT_CANCEL","session","computeInputData","recognize","prevInput","pointersLength","firstInput","simpleCloneInputData","firstMultiple","offsetCenter","getCenter","timeStamp","deltaTime","getAngle","computeDeltaXY","offsetDirection","getDirection","rotation","getRotation","computeIntervalInputData","offsetDelta","prevDelta","velocityX","velocityY","last","lastInterval","COMPUTE_INTERVAL","getVelocity","DIRECTION_NONE","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DIRECTION_DOWN","PROPS_XY","PROPS_CLIENT_XY","evEl","MOUSE_ELEMENT_EVENTS","evWin","MOUSE_WINDOW_EVENTS","allow","pressed","POINTER_ELEMENT_EVENTS","POINTER_WINDOW_EVENTS","store","pointerEvents","SingleTouchInput","evTarget","SINGLE_TOUCH_TARGET_EVENTS","SINGLE_TOUCH_WINDOW_EVENTS","started","normalizeSingleTouches","all","changedTouches","TOUCH_TARGET_EVENTS","targetIds","getTouches","allTouches","INPUT_MOVE","identifier","changedTargetTouches","mouse","TouchAction","cleanTouchActions","actions","TOUCH_ACTION_NONE","hasPanX","TOUCH_ACTION_PAN_X","hasPanY","TOUCH_ACTION_PAN_Y","TOUCH_ACTION_MANIPULATION","TOUCH_ACTION_AUTO","Recognizer","defaults","state","STATE_POSSIBLE","simultaneous","requireFail","stateStr","STATE_CANCELLED","STATE_ENDED","STATE_CHANGED","STATE_BEGAN","directionStr","getRecognizerByNameIfManager","otherRecognizer","recognizer","AttrRecognizer","PanRecognizer","pX","pY","PinchRecognizer","PressRecognizer","_timer","_input","RotateRecognizer","SwipeRecognizer","TapRecognizer","pTime","pCenter","recognizers","preset","Manager","handlers","touchAction","toggleCssProps","recognizeWith","requireFailure","cssProps","triggerDomEvent","gestureEvent","createEvent","initEvent","dispatchEvent","TEST_ELEMENT","MOBILE_REGEX","INPUT_TYPE_TOUCH","INPUT_TYPE_PEN","INPUT_TYPE_MOUSE","INPUT_TYPE_KINECT","DIRECTION_HORIZONTAL","DIRECTION_VERTICAL","DIRECTION_ALL","MOUSE_INPUT_MAP","mousedown","mousemove","mouseup","pointerType","POINTER_INPUT_MAP","pointerdown","pointermove","pointerup","pointercancel","pointerout","IE10_POINTER_TYPE_ENUM",2,3,4,5,"MSPointerEvent","removePointer","eventTypeNormalized","isTouch","storeIndex","pointerId","SINGLE_TOUCH_INPUT_MAP","touchstart","touchmove","touchend","touchcancel","TOUCH_INPUT_MAP","inputEvent","inputData","isMouse","PREFIXED_TOUCH_ACTION","NATIVE_TOUCH_ACTION","TOUCH_ACTION_COMPUTE","compute","getTouchAction","preventDefaults","prevented","hasNone","preventSrc","STATE_RECOGNIZED","STATE_FAILED","dropRecognizeWith","dropRequireFailure","hasRequireFailures","canRecognizeWith","withState","tryEmit","canEmit","inputDataClone","process","attrTest","optionPointers","isRecognized","directionTest","hasMoved","inOut","validPointers","validMovement","validTime","taps","posThreshold","validTouchTime","failTimeout","validInterval","validMultiTap","tapCount","domEvents","userSelect","touchSelect","touchCallout","contentZooming","userDrag","tapHighlightColor","STOP","FORCED_STOP","stopped","curRecognizer","Tap","Pan","Swipe","Pinch","Rotate","Press","clusterToFit","maxNumberOfNodes","reposition","maxLevels","forceAggregateHubs","normalizeClusterLevels","increaseClusterLevel","repositionNodes","openCluster","isMovingBeforeClustering","_nodeInActiveArea","_sector","_addSector","decreaseClusterLevel","_expandClusterNode","_updateDynamicEdges","updateClusters","zoomDirection","recursive","doNotStart","amountOfNodes","_collapseSector","_formClusters","_openClusters","_openClustersBySize","_aggregateHubs","handleChains","chainPercentage","_getChainFraction","_reduceAmountOfChains","_getHubSize","_formClustersByHub","openAll","containedNodeId","childNode","_expelChildFromParent","_unselectAll","_releaseContainedEdges","_connectEdgeBackToChild","_validateEdges","othersPresent","childNodeId","_repositionBezierNodes","_formClustersByZoom","_forceClustersByZoom","minLength","_addToCluster","_clusterToSmallestNeighbour","smallestNeighbour","smallestNeighbourNode","neighbour","onlyEqual","_formClusterFromHub","hubNode","absorptionSizeOffset","allowCluster","edgesIdarray","amountOfInitialEdges","_addToContainedEdges","_connectEdgeToCluster","_containCircularEdgesFromNode","massBefore","correction","edgeToId","edgeFromId","k","_addToReroutedEdges","maxLevel","minLevel","clusterLevel","targetLevel","average","averageSquared","hubCounter","largestHub","variance","standardDeviation","fraction","reduceAmount","chains","total","_switchToSector","sectorId","sectorType","_switchToActiveSector","_switchToFrozenSector","_switchToSupportSector","_loadLatestSector","_previousSector","_setActiveSector","newId","_forgetLastSector","_createNewSector","_deleteActiveSector","_deleteFrozenSector","_freezeSector","_activateSector","_mergeThisWithFrozen","_collapseThisToSingleCluster","sector","unqiueIdentifier","previousSector","runFunction","argument","returnValues","_doInAllFrozenSectors","_drawSectorNodes","_drawAllSectorNodes","_getNodesOverlappingWith","overlappingNodes","_getAllNodesOverlappingWith","_pointerToPositionObject","positionObject","_getEdgesOverlappingWith","overlappingEdges","_getAllEdgesOverlappingWith","_addToSelection","_addToHover","_removeFromSelection","doNotTrigger","_unselectClusters","_getSelectedNodeCount","_getSelectedNode","_getSelectedEdge","_getSelectedEdgeCount","_getSelectedObjectCount","_selectionIsEmpty","_clusterInSelection","_selectConnectedEdges","_hoverConnectedEdges","_unselectConnectedEdges","append","highlightEdges","overrideSelectable","DOM","_manipulationReleaseOverload","_navigationReleaseOverload","getSelectedNodes","edgeIds","getSelectedEdges","idArray","selectNodes","RangeError","selectEdges","_clearManipulatorBar","manipulationDOM","_restoreOverloadedFunctions","functionName","_toggleEditMode","toolbar","boundFunction","edgeBeingEdited","selectedControlNode","_createAddNodeToolbar","_createAddEdgeToolbar","_editNode","_createEditEdgeToolbar","_addNode","_handleConnect","_finishConnect","_selectControlNode","_controlNodeDrag","_releaseControlNode","newNode","_editEdge","alert","supportNodes","targetNode","connectionEdge","connectFromId","_createEdge","defaultData","finalizedData","sourceNodeId","targetNodeId","selectedNodes","selectedEdges","dispose","navigationDivs","navigationDivActions","_stopMovement","_zoomExtent","hubsize","definedLevel","undefinedLevel","_changeConstants","_determineLevels","_determineLevelsDirected","distribution","_getDistribution","_placeNodesByHierarchy","minPos","_placeBranchNodes","maxCount","_setLevel","_setLevelDirected","parentId","parentLevel","nodeMoved","_restoreNodes","graphToggleSmoothCurves","graph_toggleSmooth","getElementById","graphRepositionNodes","showValueOfRange","graphGenerateOptions","optionsSpecific","radioButton1","radioButton2","checked","backupConstants","optionsDiv","switchConfigurations","radioButton","querySelector","tableId","table","constantsVariableName","valueId","rangeValue","_overWriteGraphConstants","RepulsionMixin","HierarchialRepulsionMixin","BarnesHutMixin","_toggleBarnesHut","barnesHutTree","_initializeForceCalculation","_calculateForces","_calculateGravitationalForces","_calculateNodeForces","_calculateSpringForcesWithSupport","_calculateHierarchicalSpringForces","_calculateSpringForces","supportNodeId","gravity","gravityForce","edgeLength","springForce","combinedClusterSize","node1","node2","node3","_calculateSpringForce","physicsConfiguration","hierarchicalLayoutDirections","parentElement","rangeElement","radioButton3","graph_repositionNodes","graph_generateOptions","dynamicSmoothCurves","nameArray","webpackContext","req","resolve","repulsingForce","a_base","minimumDistance","steepness","springFx","springFy","totalFx","totalFy","correctionFx","correctionFy","nodeCount","_formBarnesHutTree","_getForceContribution","children","NW","NE","SW","SE","parentBranch","childrenCount","centerOfMass","calcSize","MAX_VALUE","sizeDiff","minimumTreeSize","rootSize","halfRootSize","centerX","centerY","_splitBranch","_placeInTree","_updateBranchMass","totalMass","totalMassInv","biggestSize","skipMassUpdate","_placeInRegion","region","containedNode","_insertRegion","childSize","_drawTree","_drawBranch","branch","webpackPolyfill","paths","__webpack_amd_options__"],"mappings":"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"} \ No newline at end of file diff --git a/dist/vis.min.js b/dist/vis.min.js index 63897f3d..fcff8307 100644 --- a/dist/vis.min.js +++ b/dist/vis.min.js @@ -5,7 +5,7 @@ * A dynamic, browser-based visualization library. * * @version 3.7.2-SNAPSHOT - * @date 2014-12-16 + * @date 2014-12-18 * * @license * Copyright (C) 2011-2014 Almende B.V, http://almende.com @@ -24,16 +24,16 @@ */ "use strict";!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):"object"==typeof exports?exports.vis=e():t.vis=e()}(this,function(){return function(t){function e(s){if(i[s])return i[s].exports;var o=i[s]={exports:{},id:s,loaded:!1};return t[s].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var i={};return e.m=t,e.c=i,e.p="",e(0)}([function(t,e,i){e.util=i(1),e.DOMutil=i(2),e.DataSet=i(3),e.DataView=i(4),e.Queue=i(5),e.Graph3d=i(6),e.graph3d={Camera:i(7),Filter:i(8),Point2d:i(9),Point3d:i(10),Slider:i(11),StepNumber:i(12)},e.Timeline=i(13),e.Graph2d=i(14),e.timeline={DateUtil:i(15),DataStep:i(16),Range:i(17),stack:i(18),TimeStep:i(19),components:{items:{Item:i(31),BackgroundItem:i(32),BoxItem:i(33),PointItem:i(34),RangeItem:i(35)},Component:i(20),CurrentTime:i(21),CustomTime:i(22),DataAxis:i(23),GraphGroup:i(24),Group:i(25),BackgroundGroup:i(26),ItemSet:i(27),Legend:i(28),LineGraph:i(29),TimeAxis:i(30)}},e.Network=i(36),e.network={Edge:i(37),Groups:i(38),Images:i(39),Node:i(40),Popup:i(41),dotparser:i(42),gephiParser:i(43)},e.Graph=function(){throw new Error("Graph is renamed to Network. Please create a graph as new vis.Network(...)")},e.moment=i(44),e.hammer=i(45)},function(module,exports,__webpack_require__){var moment=__webpack_require__(44);exports.isNumber=function(t){return t instanceof Number||"number"==typeof t},exports.isString=function(t){return t instanceof String||"string"==typeof t},exports.isDate=function(t){if(t instanceof Date)return!0;if(exports.isString(t)){var e=ASPDateRegex.exec(t);if(e)return!0;if(!isNaN(Date.parse(t)))return!0}return!1},exports.isDataTable=function(t){return"undefined"!=typeof google&&google.visualization&&google.visualization.DataTable&&t instanceof google.visualization.DataTable},exports.randomUUID=function(){var t=function(){return Math.floor(65536*Math.random()).toString(16)};return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()},exports.extend=function(t){for(var e=1,i=arguments.length;i>e;e++){var s=arguments[e];for(var o in s)s.hasOwnProperty(o)&&(t[o]=s[o])}return t},exports.selectiveExtend=function(t,e){if(!Array.isArray(t))throw new Error("Array with property names expected as first argument");for(var i=2;ii;i++)if(t[i]!=e[i])return!1;return!0},exports.convert=function(t,e){var i;if(void 0===t)return void 0;if(null===t)return null;if(!e)return t;if("string"!=typeof e&&!(e instanceof String))throw new Error("Type must be a string");switch(e){case"boolean":case"Boolean":return Boolean(t);case"number":case"Number":return Number(t.valueOf());case"string":case"String":return String(t);case"Date":if(exports.isNumber(t))return new Date(t);if(t instanceof Date)return new Date(t.valueOf());if(moment.isMoment(t))return new Date(t.valueOf());if(exports.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])):moment(t).toDate();throw new Error("Cannot convert object of type "+exports.getType(t)+" to type Date");case"Moment":if(exports.isNumber(t))return moment(t);if(t instanceof Date)return moment(t.valueOf());if(moment.isMoment(t))return moment(t);if(exports.isString(t))return i=ASPDateRegex.exec(t),moment(i?Number(i[1]):t);throw new Error("Cannot convert object of type "+exports.getType(t)+" to type Date");case"ISODate":if(exports.isNumber(t))return new Date(t);if(t instanceof Date)return t.toISOString();if(moment.isMoment(t))return t.toDate().toISOString();if(exports.isString(t))return i=ASPDateRegex.exec(t),i?new Date(Number(i[1])).toISOString():new Date(t).toISOString();throw new Error("Cannot convert object of type "+exports.getType(t)+" to type ISODate");case"ASPDate":if(exports.isNumber(t))return"/Date("+t+")/";if(t instanceof Date)return"/Date("+t.valueOf()+")/";if(exports.isString(t)){i=ASPDateRegex.exec(t);var s;return s=i?new Date(Number(i[1])).valueOf():new Date(t).valueOf(),"/Date("+s+")/"}throw new Error("Cannot convert object of type "+exports.getType(t)+" to type ASPDate");default:throw new Error('Unknown type "'+e+'"')}};var ASPDateRegex=/^\/?Date\((\-?\d+)/i;exports.getType=function(t){var e=typeof t;return"object"==e?null==t?"null":t instanceof Boolean?"Boolean":t instanceof Number?"Number":t instanceof String?"String":Array.isArray(t)?"Array":t instanceof Date?"Date":"Object":"number"==e?"Number":"boolean"==e?"Boolean":"string"==e?"String":e},exports.getAbsoluteLeft=function(t){return t.getBoundingClientRect().left+window.pageXOffset},exports.getAbsoluteTop=function(t){return t.getBoundingClientRect().top+window.pageYOffset},exports.addClassName=function(t,e){var i=t.className.split(" ");-1==i.indexOf(e)&&(i.push(e),t.className=i.join(" "))},exports.removeClassName=function(t,e){var i=t.className.split(" "),s=i.indexOf(e);-1!=s&&(i.splice(s,1),t.className=i.join(" "))},exports.forEach=function(t,e){var i,s;if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)e(t[i],i,t);else for(i in t)t.hasOwnProperty(i)&&e(t[i],i,t)},exports.toArray=function(t){var e=[];for(var i in t)t.hasOwnProperty(i)&&e.push(t[i]);return e},exports.updateProperty=function(t,e,i){return t[e]!==i?(t[e]=i,!0):!1},exports.addEventListener=function(t,e,i,s){t.addEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.addEventListener(e,i,s)):t.attachEvent("on"+e,i)},exports.removeEventListener=function(t,e,i,s){t.removeEventListener?(void 0===s&&(s=!1),"mousewheel"===e&&navigator.userAgent.indexOf("Firefox")>=0&&(e="DOMMouseScroll"),t.removeEventListener(e,i,s)):t.detachEvent("on"+e,i)},exports.preventDefault=function(t){t||(t=window.event),t.preventDefault?t.preventDefault():t.returnValue=!1},exports.getTarget=function(t){t||(t=window.event);var e;return t.target?e=t.target:t.srcElement&&(e=t.srcElement),void 0!=e.nodeType&&3==e.nodeType&&(e=e.parentNode),e},exports.option={},exports.option.asBoolean=function(t,e){return"function"==typeof t&&(t=t()),null!=t?0!=t:e||null},exports.option.asNumber=function(t,e){return"function"==typeof t&&(t=t()),null!=t?Number(t)||e||null:e||null},exports.option.asString=function(t,e){return"function"==typeof t&&(t=t()),null!=t?String(t):e||null},exports.option.asSize=function(t,e){return"function"==typeof t&&(t=t()),exports.isString(t)?t:exports.isNumber(t)?t+"px":e||null},exports.option.asElement=function(t,e){return"function"==typeof t&&(t=t()),t||e||null},exports.GiveDec=function(Hex){var Value;return Value="A"==Hex?10:"B"==Hex?11:"C"==Hex?12:"D"==Hex?13:"E"==Hex?14:"F"==Hex?15:eval(Hex)},exports.GiveHex=function(t){var e;return e=10==t?"A":11==t?"B":12==t?"C":13==t?"D":14==t?"E":15==t?"F":""+t},exports.parseColor=function(t){var e;if(exports.isString(t)){if(exports.isValidRGB(t)){var i=t.substr(4).substr(0,t.length-5).split(",");t=exports.RGBToHex(i[0],i[1],i[2])}if(exports.isValidHex(t)){var s=exports.hexToHSV(t),o={h:s.h,s:.45*s.s,v:Math.min(1,1.05*s.v)},n={h:s.h,s:Math.min(1,1.25*s.v),v:.6*s.v},r=exports.HSVToHex(n.h,n.h,n.v),a=exports.HSVToHex(o.h,o.s,o.v);e={background:t,border:r,highlight:{background:a,border:r},hover:{background:a,border:r}}}else e={background:t,border:t,highlight:{background:t,border:t},hover:{background:t,border:t}}}else e={},e.background=t.background||"white",e.border=t.border||e.background,exports.isString(t.highlight)?e.highlight={border:t.highlight,background:t.highlight}:(e.highlight={},e.highlight.background=t.highlight&&t.highlight.background||e.background,e.highlight.border=t.highlight&&t.highlight.border||e.border),exports.isString(t.hover)?e.hover={border:t.hover,background:t.hover}:(e.hover={},e.hover.background=t.hover&&t.hover.background||e.background,e.hover.border=t.hover&&t.hover.border||e.border);return e},exports.hexToRGB=function(t){t=t.replace("#","").toUpperCase();var e=exports.GiveDec(t.substring(0,1)),i=exports.GiveDec(t.substring(1,2)),s=exports.GiveDec(t.substring(2,3)),o=exports.GiveDec(t.substring(3,4)),n=exports.GiveDec(t.substring(4,5)),r=exports.GiveDec(t.substring(5,6)),a=16*e+i,h=16*s+o,i=16*n+r;return{r:a,g:h,b:i}},exports.RGBToHex=function(t,e,i){var s=exports.GiveHex(Math.floor(t/16)),o=exports.GiveHex(t%16),n=exports.GiveHex(Math.floor(e/16)),r=exports.GiveHex(e%16),a=exports.GiveHex(Math.floor(i/16)),h=exports.GiveHex(i%16),d=s+o+n+r+a+h;return"#"+d},exports.RGBToHSV=function(t,e,i){t/=255,e/=255,i/=255;var s=Math.min(t,Math.min(e,i)),o=Math.max(t,Math.max(e,i));if(s==o)return{h:0,s:0,v:s};var n=t==s?e-i:i==s?t-e:i-t,r=t==s?3:i==s?1:5,a=60*(r-n/(o-s))/360,h=(o-s)/o,d=o;return{h:a,s:h,v:d}};var cssUtil={split:function(t){var e={};return t.split(";").forEach(function(t){if(""!=t.trim()){var i=t.split(":"),s=i[0].trim(),o=i[1].trim();e[s]=o}}),e},join:function(t){return Object.keys(t).map(function(e){return e+": "+t[e]}).join("; ")}};exports.addCssText=function(t,e){var i=cssUtil.split(t.style.cssText),s=cssUtil.split(e),o=exports.extend(i,s);t.style.cssText=cssUtil.join(o)},exports.removeCssText=function(t,e){var i=cssUtil.split(t.style.cssText),s=cssUtil.split(e);for(var o in s)s.hasOwnProperty(o)&&delete i[o];t.style.cssText=cssUtil.join(i)},exports.HSVToRGB=function(t,e,i){var s,o,n,r=Math.floor(6*t),a=6*t-r,h=i*(1-e),d=i*(1-a*e),l=i*(1-(1-a)*e);switch(r%6){case 0:s=i,o=l,n=h;break;case 1:s=d,o=i,n=h;break;case 2:s=h,o=i,n=l;break;case 3:s=h,o=d,n=i;break;case 4:s=l,o=h,n=i;break;case 5:s=i,o=h,n=d}return{r:Math.floor(255*s),g:Math.floor(255*o),b:Math.floor(255*n)}},exports.HSVToHex=function(t,e,i){var s=exports.HSVToRGB(t,e,i);return exports.RGBToHex(s.r,s.g,s.b)},exports.hexToHSV=function(t){var e=exports.hexToRGB(t);return exports.RGBToHSV(e.r,e.g,e.b)},exports.isValidHex=function(t){var e=/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(t);return e},exports.isValidRGB=function(t){t=t.replace(" ","");var e=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/i.test(t);return e},exports.selectiveBridgeObject=function(t,e){if("object"==typeof e){for(var i=Object.create(e),s=0;s=r&&o>n;){var h=Math.floor((r+a)/2),d=t[h],l=void 0===s?d[i]:d[i][s],c=e(l);if(0==c)return h;-1==c?r=h+1:a=h-1,n++}return-1},exports.binarySearchValue=function(t,e,i,s){for(var o,n,r,a,h=1e4,d=0,l=0,c=t.length-1;c>=l&&h>d;){if(a=Math.floor(.5*(c+l)),o=t[Math.max(0,a-1)][i],n=t[a][i],r=t[Math.min(t.length-1,a+1)][i],n==e)return a;if(e>o&&n>e)return"before"==s?Math.max(0,a-1):a;if(e>n&&r>e)return"before"==s?a:Math.min(t.length-1,a+1);e>n?l=a+1:c=a-1,d++}return-1},exports.easeInOutQuad=function(t,e,i,s){var o=i-e;return t/=s/2,1>t?o/2*t*t+e:(t--,-o/2*(t*(t-2)-1)+e)},exports.easingFunctions={linear:function(t){return t},easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return.5>t?2*t*t:-1+(4-2*t)*t},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return.5>t?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return.5>t?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return.5>t?16*t*t*t*t*t:1+16*--t*t*t*t*t}}},function(t,e){e.prepareElements=function(t){for(var e in t)t.hasOwnProperty(e)&&(t[e].redundant=t[e].used,t[e].used=[])},e.cleanupElements=function(t){for(var e in t)if(t.hasOwnProperty(e)&&t[e].redundant){for(var i=0;i0?(s=e[t].redundant[0],e[t].redundant.shift()):(s=document.createElementNS("http://www.w3.org/2000/svg",t),i.appendChild(s)):(s=document.createElementNS("http://www.w3.org/2000/svg",t),e[t]={used:[],redundant:[]},i.appendChild(s)),e[t].used.push(s),s},e.getDOMElement=function(t,e,i,s){var o;return e.hasOwnProperty(t)?e[t].redundant.length>0?(o=e[t].redundant[0],e[t].redundant.shift()):(o=document.createElement(t),void 0!==s?i.insertBefore(o,s):i.appendChild(o)):(o=document.createElement(t),e[t]={used:[],redundant:[]},void 0!==s?i.insertBefore(o,s):i.appendChild(o)),e[t].used.push(o),o},e.drawPoint=function(t,i,s,o,n){var r;return"circle"==s.options.drawPoints.style?(r=e.getSVGElement("circle",o,n),r.setAttributeNS(null,"cx",t),r.setAttributeNS(null,"cy",i),r.setAttributeNS(null,"r",.5*s.options.drawPoints.size)):(r=e.getSVGElement("rect",o,n),r.setAttributeNS(null,"x",t-.5*s.options.drawPoints.size),r.setAttributeNS(null,"y",i-.5*s.options.drawPoints.size),r.setAttributeNS(null,"width",s.options.drawPoints.size),r.setAttributeNS(null,"height",s.options.drawPoints.size)),void 0!==s.options.drawPoints.styles&&r.setAttributeNS(null,"style",s.group.options.drawPoints.styles),r.setAttributeNS(null,"class",s.className+" point"),r},e.drawBar=function(t,i,s,o,n,r,a){if(0!=o){0>o&&(o*=-1,i-=o);var h=e.getSVGElement("rect",r,a);h.setAttributeNS(null,"x",t-.5*s),h.setAttributeNS(null,"y",i),h.setAttributeNS(null,"width",s),h.setAttributeNS(null,"height",o),h.setAttributeNS(null,"class",n)}}},function(t,e,i){function s(t,e){if(!t||Array.isArray(t)||o.isDataTable(t)||(e=t,t=null),this._options=e||{},this._data={},this._fieldId=this._options.fieldId||"id",this._type={},this._options.type)for(var i in this._options.type)if(this._options.type.hasOwnProperty(i)){var s=this._options.type[i];this._type[i]="Date"==s||"ISODate"==s||"ASPDate"==s?"Date":s}if(this._options.convert)throw new Error('Option "convert" is deprecated. Use "type" instead.');this._subscribers={},t&&this.add(t),this.setOptions(e)}var o=i(1),n=i(5);s.prototype.setOptions=function(t){t&&void 0!==t.queue&&(t.queue===!1?this._queue&&(this._queue.destroy(),delete this._queue):(this._queue||(this._queue=n.extend(this,{replace:["add","update","remove"]})),"object"==typeof t.queue&&this._queue.setOptions(t.queue)))},s.prototype.on=function(t,e){var i=this._subscribers[t];i||(i=[],this._subscribers[t]=i),i.push({callback:e})},s.prototype.subscribe=s.prototype.on,s.prototype.off=function(t,e){var i=this._subscribers[t];i&&(this._subscribers[t]=i.filter(function(t){return t.callback!=e}))},s.prototype.unsubscribe=s.prototype.off,s.prototype._trigger=function(t,e,i){if("*"==t)throw new Error("Cannot trigger event *");var s=[];t in this._subscribers&&(s=s.concat(this._subscribers[t])),"*"in this._subscribers&&(s=s.concat(this._subscribers["*"]));for(var o=0;or;r++)i=n._addItem(t[r]),s.push(i);else if(o.isDataTable(t))for(var h=this._getColumnNames(t),d=0,l=t.getNumberOfRows();l>d;d++){for(var c={},p=0,u=h.length;u>p;p++){var m=h[p];c[m]=t.getValue(d,p)}i=n._addItem(c),s.push(i)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");i=n._addItem(t),s.push(i)}return s.length&&this._trigger("add",{items:s},e),s},s.prototype.update=function(t,e){var i=[],s=[],n=[],r=this,a=r._fieldId,h=function(t){var e=t[a];r._data[e]?(e=r._updateItem(t),s.push(e),n.push(t)):(e=r._addItem(t),i.push(e))};if(Array.isArray(t))for(var d=0,l=t.length;l>d;d++)h(t[d]);else if(o.isDataTable(t))for(var c=this._getColumnNames(t),p=0,u=t.getNumberOfRows();u>p;p++){for(var m={},f=0,g=c.length;g>f;f++){var v=c[f];m[v]=t.getValue(p,f)}h(m)}else{if(!(t instanceof Object))throw new Error("Unknown dataType");h(t)}return i.length&&this._trigger("add",{items:i},e),s.length&&this._trigger("update",{items:s,data:n},e),i.concat(s)},s.prototype.get=function(){var t,e,i,s,n=this,r=o.getType(arguments[0]);"String"==r||"Number"==r?(t=arguments[0],i=arguments[1],s=arguments[2]):"Array"==r?(e=arguments[0],i=arguments[1],s=arguments[2]):(i=arguments[0],s=arguments[1]);var a;if(i&&i.returnType){var h=["DataTable","Array","Object"];if(a=-1==h.indexOf(i.returnType)?"Array":i.returnType,s&&a!=o.getType(s))throw new Error('Type of parameter "data" ('+o.getType(s)+") does not correspond with specified options.type ("+i.type+")");if("DataTable"==a&&!o.isDataTable(s))throw new Error('Parameter "data" must be a DataTable when options.type is "DataTable"')}else a=s&&"DataTable"==o.getType(s)?"DataTable":"Array";var d,l,c,p,u=i&&i.type||this._options.type,m=i&&i.filter,f=[];if(void 0!=t)d=n._getItem(t,u),m&&!m(d)&&(d=null);else if(void 0!=e)for(c=0,p=e.length;p>c;c++)d=n._getItem(e[c],u),(!m||m(d))&&f.push(d);else for(l in this._data)this._data.hasOwnProperty(l)&&(d=n._getItem(l,u),(!m||m(d))&&f.push(d));if(i&&i.order&&void 0==t&&this._sort(f,i.order),i&&i.fields){var g=i.fields;if(void 0!=t)d=this._filterFields(d,g);else for(c=0,p=f.length;p>c;c++)f[c]=this._filterFields(f[c],g)}if("DataTable"==a){var v=this._getColumnNames(s);if(void 0!=t)n._appendRow(s,v,d);else for(c=0;cc;c++)s.push(f[c]);return s}return f},s.prototype.getIds=function(t){var e,i,s,o,n,r=this._data,a=t&&t.filter,h=t&&t.order,d=t&&t.type||this._options.type,l=[];if(a)if(h){n=[];for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&n.push(o));for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=this._getItem(s,d),a(o)&&l.push(o[this._fieldId]));else if(h){n=[];for(s in r)r.hasOwnProperty(s)&&n.push(r[s]);for(this._sort(n,h),e=0,i=n.length;i>e;e++)l[e]=n[e][this._fieldId]}else for(s in r)r.hasOwnProperty(s)&&(o=r[s],l.push(o[this._fieldId]));return l},s.prototype.getDataSet=function(){return this},s.prototype.forEach=function(t,e){var i,s,o=e&&e.filter,n=e&&e.type||this._options.type,r=this._data;if(e&&e.order)for(var a=this.get(e),h=0,d=a.length;d>h;h++)i=a[h],s=i[this._fieldId],t(i,s);else for(s in r)r.hasOwnProperty(s)&&(i=this._getItem(s,n),(!o||o(i))&&t(i,s))},s.prototype.map=function(t,e){var i,s=e&&e.filter,o=e&&e.type||this._options.type,n=[],r=this._data;for(var a in r)r.hasOwnProperty(a)&&(i=this._getItem(a,o),(!s||s(i))&&n.push(t(i,a)));return e&&e.order&&this._sort(n,e.order),n},s.prototype._filterFields=function(t,e){var i={};for(var s in t)t.hasOwnProperty(s)&&-1!=e.indexOf(s)&&(i[s]=t[s]);return i},s.prototype._sort=function(t,e){if(o.isString(e)){var i=e;t.sort(function(t,e){var s=t[i],o=e[i];return s>o?1:o>s?-1:0})}else{if("function"!=typeof e)throw new TypeError("Order must be a function or a string");t.sort(e)}},s.prototype.remove=function(t,e){var i,s,o,n=[];if(Array.isArray(t))for(i=0,s=t.length;s>i;i++)o=this._remove(t[i]),null!=o&&n.push(o);else o=this._remove(t),null!=o&&n.push(o);return n.length&&this._trigger("remove",{items:n},e),n},s.prototype._remove=function(t){if(o.isNumber(t)||o.isString(t)){if(this._data[t])return delete this._data[t],t}else if(t instanceof Object){var e=t[this._fieldId];if(e&&this._data[e])return delete this._data[e],e}return null},s.prototype.clear=function(t){var e=Object.keys(this._data);return this._data={},this._trigger("remove",{items:e},t),e},s.prototype.max=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||r>s)&&(i=n,s=r)}return i},s.prototype.min=function(t){var e=this._data,i=null,s=null;for(var o in e)if(e.hasOwnProperty(o)){var n=e[o],r=n[t];null!=r&&(!i||s>r)&&(i=n,s=r)}return i},s.prototype.distinct=function(t){var e,i=this._data,s=[],n=this._options.type&&this._options.type[t]||null,r=0;for(var a in i)if(i.hasOwnProperty(a)){var h=i[a],d=h[t],l=!1;for(e=0;r>e;e++)if(s[e]==d){l=!0;break}l||void 0===d||(s[r]=d,r++)}if(n)for(e=0;ei;i++)e[i]=t.getColumnId(i)||t.getColumnLabel(i);return e},s.prototype._appendRow=function(t,e,i){for(var s=t.addRow(),o=0,n=e.length;n>o;o++){var r=e[o];t.setValue(s,o,i[r])}},t.exports=s},function(t,e,i){function s(t,e){this._data=null,this._ids={},this._options=e||{},this._fieldId="id",this._subscribers={};var i=this;this.listener=function(){i._onEvent.apply(i,arguments)},this.setData(t)}var o=i(1),n=i(3);s.prototype.setData=function(t){var e,i,s;if(this._data){this._data.unsubscribe&&this._data.unsubscribe("*",this.listener),e=[];for(var o in this._ids)this._ids.hasOwnProperty(o)&&e.push(o);this._ids={},this._trigger("remove",{items:e})}if(this._data=t,this._data){for(this._fieldId=this._options.fieldId||this._data&&this._data.options&&this._data.options.fieldId||"id",e=this._data.getIds({filter:this._options&&this._options.filter}),i=0,s=e.length;s>i;i++)o=e[i],this._ids[o]=!0;this._trigger("add",{items:e}),this._data.on&&this._data.on("*",this.listener)}},s.prototype.get=function(){var t,e,i,s=this,n=o.getType(arguments[0]);"String"==n||"Number"==n||"Array"==n?(t=arguments[0],e=arguments[1],i=arguments[2]):(e=arguments[0],i=arguments[1]);var r=o.extend({},this._options,e);this._options.filter&&e&&e.filter&&(r.filter=function(t){return s._options.filter(t)&&e.filter(t)});var a=[];return void 0!=t&&a.push(t),a.push(r),a.push(i),this._data&&this._data.get.apply(this._data,a)},s.prototype.getIds=function(t){var e;if(this._data){var i,s=this._options.filter;i=t&&t.filter?s?function(e){return s(e)&&t.filter(e)}:t.filter:s,e=this._data.getIds({filter:i,order:t&&t.order})}else e=[];return e},s.prototype.getDataSet=function(){for(var t=this;t instanceof s;)t=t._data;return t||null},s.prototype._onEvent=function(t,e,i){var s,o,n,r,a=e&&e.items,h=this._data,d=[],l=[],c=[];if(a&&h){switch(t){case"add":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r&&(this._ids[n]=!0,d.push(n));break;case"update":for(s=0,o=a.length;o>s;s++)n=a[s],r=this.get(n),r?this._ids[n]?l.push(n):(this._ids[n]=!0,d.push(n)):this._ids[n]&&(delete this._ids[n],c.push(n));break;case"remove":for(s=0,o=a.length;o>s;s++)n=a[s],this._ids[n]&&(delete this._ids[n],c.push(n))}d.length&&this._trigger("add",{items:d},i),l.length&&this._trigger("update",{items:l},i),c.length&&this._trigger("remove",{items:c},i)}},s.prototype.on=n.prototype.on,s.prototype.off=n.prototype.off,s.prototype._trigger=n.prototype._trigger,s.prototype.subscribe=s.prototype.on,s.prototype.unsubscribe=s.prototype.off,t.exports=s},function(t){function e(t){this.delay=null,this.max=1/0,this._queue=[],this._timeout=null,this._extended=null,this.setOptions(t)}e.prototype.setOptions=function(t){t&&"undefined"!=typeof t.delay&&(this.delay=t.delay),t&&"undefined"!=typeof t.max&&(this.max=t.max),this._flushIfNeeded()},e.extend=function(t,i){var s=new e(i);if(void 0!==t.flush)throw new Error("Target object already has a property flush");t.flush=function(){s.flush()};var o=[{name:"flush",original:void 0}];if(i&&i.replace)for(var n=0;nthis.max&&this.flush(),clearTimeout(this._timeout),this.queue.length>0&&"number"==typeof this.delay){var t=this;this._timeout=setTimeout(function(){t.flush()},this.delay)}},e.prototype.flush=function(){for(;this._queue.length>0;){var t=this._queue.shift();t.fn.apply(t.context||t.fn,t.args||[])}},t.exports=e},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this.containerElement=t,this.width="400px",this.height="400px",this.margin=10,this.defaultXCenter="55%",this.defaultYCenter="50%",this.xLabel="x",this.yLabel="y",this.zLabel="z";var o=function(t){return t};this.xValueLabel=o,this.yValueLabel=o,this.zValueLabel=o,this.filterLabel="time",this.legendLabel="value",this.style=s.STYLE.DOT,this.showPerspective=!0,this.showGrid=!0,this.keepAspectRatio=!0,this.showShadow=!1,this.showGrayBottom=!1,this.showTooltip=!1,this.verticalRatio=.5,this.animationInterval=1e3,this.animationPreload=!1,this.camera=new p,this.eye=new l(0,0,-1),this.dataTable=null,this.dataPoints=null,this.colX=void 0,this.colY=void 0,this.colZ=void 0,this.colValue=void 0,this.colFilter=void 0,this.xMin=0,this.xStep=void 0,this.xMax=1,this.yMin=0,this.yStep=void 0,this.yMax=1,this.zMin=0,this.zStep=void 0,this.zMax=1,this.valueMin=0,this.valueMax=1,this.xBarWidth=1,this.yBarWidth=1,this.colorAxis="#4D4D4D",this.colorGrid="#D3D3D3",this.colorDot="#7DC1FF",this.colorDotBorder="#3267D2",this.create(),this.setOptions(i),e&&this.setData(e)}function o(t){return"clientX"in t?t.clientX:t.targetTouches[0]&&t.targetTouches[0].clientX||0}function n(t){return"clientY"in t?t.clientY:t.targetTouches[0]&&t.targetTouches[0].clientY||0}var r=i(56),a=i(3),h=i(4),d=i(1),l=i(10),c=i(9),p=i(7),u=i(8),m=i(11),f=i(12);r(s.prototype),s.prototype._setScale=function(){this.scale=new l(1/(this.xMax-this.xMin),1/(this.yMax-this.yMin),1/(this.zMax-this.zMin)),this.keepAspectRatio&&(this.scale.x3&&(this.colFilter=3);else{if(this.style!==s.STYLE.DOTCOLOR&&this.style!==s.STYLE.DOTSIZE&&this.style!==s.STYLE.BARCOLOR&&this.style!==s.STYLE.BARSIZE)throw'Unknown style "'+this.style+'"';this.colX=0,this.colY=1,this.colZ=2,this.colValue=3,t.getNumberOfColumns()>4&&(this.colFilter=4)}},s.prototype.getNumberOfRows=function(t){return t.length},s.prototype.getNumberOfColumns=function(t){var e=0;for(var i in t[0])t[0].hasOwnProperty(i)&&e++;return e},s.prototype.getDistinctValues=function(t,e){for(var i=[],s=0;st[s][e]&&(i.min=t[s][e]),i.maxt;t++){var m=(t-p)/(u-p),g=240*m,v=this._hsv2rgb(g,1,1);c.strokeStyle=v,c.beginPath(),c.moveTo(h,r+t),c.lineTo(a,r+t),c.stroke()}c.strokeStyle=this.colorAxis,c.strokeRect(h,r,i,n)}if(this.style===s.STYLE.DOTSIZE&&(c.strokeStyle=this.colorAxis,c.fillStyle=this.colorDot,c.beginPath(),c.moveTo(h,r),c.lineTo(a,r),c.lineTo(a-i+e,d),c.lineTo(h,d),c.closePath(),c.fill(),c.stroke()),this.style===s.STYLE.DOTCOLOR||this.style===s.STYLE.DOTSIZE){var y=5,b=new f(this.valueMin,this.valueMax,(this.valueMax-this.valueMin)/5,!0);for(b.start(),b.getCurrent()0?this.yMin:this.yMax,o=this._convert3Dto2D(new l(x,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.xValueLabel(i.getCurrent())+" ",o.x,o.y),i.next()}for(g.lineWidth=1,s=void 0===this.defaultYStep,i=new f(this.yMin,this.yMax,this.yStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,o=this._convert3Dto2D(new l(n,i.getCurrent(),this.zMin)),Math.cos(2*_)<0?(g.textAlign="center",g.textBaseline="top",o.y+=b):Math.sin(2*_)>0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(" "+this.yValueLabel(i.getCurrent())+" ",o.x,o.y),i.next();for(g.lineWidth=1,s=void 0===this.defaultZStep,i=new f(this.zMin,this.zMax,this.zStep,s),i.start(),i.getCurrent()0?this.xMin:this.xMax,r=Math.sin(_)<0?this.yMin:this.yMax;!i.end();)t=this._convert3Dto2D(new l(n,r,i.getCurrent())),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(t.x-b,t.y),g.stroke(),g.textAlign="right",g.textBaseline="middle",g.fillStyle=this.colorAxis,g.fillText(this.zValueLabel(i.getCurrent())+" ",t.x-5,t.y),i.next();g.lineWidth=1,t=this._convert3Dto2D(new l(n,r,this.zMin)),e=this._convert3Dto2D(new l(n,r,this.zMax)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),g.lineWidth=1,p=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),p=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),u=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(p.x,p.y),g.lineTo(u.x,u.y),g.stroke(),g.lineWidth=1,t=this._convert3Dto2D(new l(this.xMin,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMin,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke(),t=this._convert3Dto2D(new l(this.xMax,this.yMin,this.zMin)),e=this._convert3Dto2D(new l(this.xMax,this.yMax,this.zMin)),g.strokeStyle=this.colorAxis,g.beginPath(),g.moveTo(t.x,t.y),g.lineTo(e.x,e.y),g.stroke();var w=this.xLabel;w.length>0&&(c=.1/this.scale.y,n=(this.xMin+this.xMax)/2,r=Math.cos(_)>0?this.yMin-c:this.yMax+c,o=this._convert3Dto2D(new l(n,r,this.zMin)),Math.cos(2*_)>0?(g.textAlign="center",g.textBaseline="top"):Math.sin(2*_)<0?(g.textAlign="right",g.textBaseline="middle"):(g.textAlign="left",g.textBaseline="middle"),g.fillStyle=this.colorAxis,g.fillText(w,o.x,o.y));var 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,r){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var h=r;r=i,i=h}var u=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{snap:null,toScreen:u._toScreen.bind(u),toGlobalScreen:u._toGlobalScreen.bind(u),toTime:u._toTime.bind(u),toGlobalTime:u._toGlobalTime.bind(u)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,r&&this.setOptions(r),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(27);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var s=this._getDataRange();var o=void 0!=this.options.start?this.options.start:s.start,a=void 0!=this.options.end?this.options.end:s.end;this.setWindow(o,a,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},s.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],s=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),o=null,n=null;if(s.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===o||o>e)&&(o=e),(null===n||i>n)&&(n=i)}),null!==o&&null!==n){var r=(o+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-o)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},s.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var s=t.min("start");e=s?o.convert(s.start,"Date").valueOf():null;var n=t.max("start");n&&(i=o.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?o.convert(r.end,"Date").valueOf():Math.max(i,o.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},t.exports=s},function(t,e,i){function s(t,e,i,s){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=s;s=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{snap:null,toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,s&&this.setOptions(s),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(29);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var s=void 0!=this.options.start?this.options.start:null,o=void 0!=this.options.end?this.options.end:null;this.setWindow(s,o,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},s.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},s.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},s.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var s=0;sr?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},t.exports=s},function(t,e,i){var s=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var p=0,u=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(o.dayOfYear()),d.year(o.year()),d.subtract(7,"days"),l.dayOfYear(o.dayOfYear()),l.year(o.year()),l.subtract(7-p,"days"),u.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(o.date()),d.month(o.month()),d.year(o.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),u.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(o.month()),d.year(o.year()),d.subtract(1,"months"),l.month(o.month()),l.year(o.year()),l.subtract(1,"months"),l.add(p,"months"),u.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(o.year()),d.subtract(1,"years"),l.year(o.year()),l.subtract(1,"years"),l.add(p,"years"),u.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;u>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],s=0;s=e[s].start&&e[o].end<=e[s].end?e[o].remove=!0:e[o].start>=e[s].start&&e[o].start<=e[s].end?(e[s].end=e[o].end,e[o].remove=!0):e[o].end>=e[s].start&&e[o].end<=e[s].end&&(e[s].start=e[o].start,e[o].remove=!0));for(var s=0;s=r&&a>o){i=!0;break}}if(1==i&&o=e&&i>r&&(s+=r-n)}return s},e.correctTimeForHidden=function(t,i,o){return o=s(o).toDate().valueOf(),o-=e.getHiddenDurationBefore(t,i,o)},e.getHiddenDurationBefore=function(t,e,i){var o=0;i=s(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(o+=a-r)}return o},e.getAccumulatedHiddenDuration=function(t,e,i){for(var s=0,o=0,n=e.start,r=0;r=e.start&&h=i)break;s+=h-a}}return s},e.snapAwayFromHidden=function(t,i,s,o){var n=e.isHidden(i,t);return 1==n.hidden?0>s?1==o?n.startDate-(n.endDate-i)-1:n.startDate-1:1==o?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=s&&o>t)return{hidden:!0,startDate:s,endDate:o}}return{hidden:!1,startDate:s,endDate:o}}},function(t){function e(t,e,i,s,o,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,s,o)}e.prototype.setRange=function(t,e,i,s,o){this._start=void 0===o.min?t:o.min,this._end=void 0===o.max?e:o.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,s),this.setFirst(o)},e.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,s=1.2*i,o=t*(s/e),n=Math.round(Math.log(s)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=o){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},e.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},e.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},e.prototype.hasNext=function(){return this.current>=this.marginStart},e.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},e.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},e.prototype.getCurrent=function(t){var e=""+Number(this.current).toPrecision(5);if(void 0===t||isNaN(Number(t))){if(-1!=e.indexOf(",")||-1!=e.indexOf("."))for(var i=e.length-1;i>0;i--){if("0"!=e[i]){if("."==e[i]||","==e[i]){e=e.slice(0,i);break}break}e=e.slice(0,i)}}else{var s="",o=e.indexOf("e");if(-1!=o&&(s=e.slice(o),e=e.slice(0,o)),o=Math.max(e.indexOf(","),e.indexOf(".")),-1===o?(0!==t&&(e+="."),o=e.length+t):0!==t&&(o+=t+1),o>e.length)for(var n=o-e.length;n>0;n--)e+="0";else e=e.slice(0,o);e+=s}return e},e.prototype.snap=function(){},e.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=e},function(t,e,i){function s(t,e){var i=h().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("dragstart",this._onDragStart.bind(this)),this.body.emitter.on("drag",this._onDrag.bind(this)),this.body.emitter.on("dragend",this._onDragEnd.bind(this)),this.body.emitter.on("hold",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("DOMMouseScroll",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function o(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.pageX-r.getAbsoluteLeft(e),y:t.pageY-r.getAbsoluteTop(e)}}var r=i(1),a=i(47),h=i(44),d=i(20),l=i(15);s.prototype=new d,s.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},s.prototype.setRange=function(t,e,i){var s=void 0!=t?r.convert(t,"Date").valueOf():null,o=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var n=this,a=this.start,h=this.end,d="number"==typeof i?i:500,c=(new Date).valueOf(),p=!1,u=function(){if(!n.props.touch.dragging){var t=(new Date).valueOf(),e=t-c,i=e>d,f=i||null===s?s:r.easeInOutQuad(e,a,s,d),g=i||null===o?o:r.easeInOutQuad(e,h,o,d);m=n._applyRange(f,g),l.updateHiddenDates(n.body,n.options.hiddenDates),p=p||m,m&&n.body.emitter.emit("rangechange",{start:new Date(n.start),end:new Date(n.end)}),i?p&&n.body.emitter.emit("rangechanged",{start:new Date(n.start),end:new Date(n.end)}):n.animateTimer=setTimeout(u,20)}};return u()}var m=this._applyRange(s,o);if(l.updateHiddenDates(this.body,this.options.hiddenDates),m){var f={start:new Date(this.start),end:new Date(this.end)};this.body.emitter.emit("rangechange",f),this.body.emitter.emit("rangechanged",f)}},s.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},s.prototype._applyRange=function(t,e){var i,s=null!=t?r.convert(t,"Date").valueOf():this.start,o=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(o)||null===o)throw new Error('Invalid end "'+e+'"');if(s>o&&(o=s),null!==a&&a>s&&(i=a-s,s+=i,o+=i,null!=n&&o>n&&(o=n)),null!==n&&o>n&&(i=o-n,s-=i,o-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>o-s&&(this.end-this.start===h?(s=this.start,o=this.end):(i=h-(o-s),s-=i/2,o+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),o-s>d&&(this.end-this.start===d?(s=this.start,o=this.end):(i=o-s-d,s+=i/2,o-=i/2))}var l=this.start!=s||this.end!=o;return s>=this.start&&s<=this.end||o>=this.start&&o<=this.end||this.start>=s&&this.start<=o||this.end>=s&&this.end<=o||this.body.emitter.emit("checkRangedItems"),this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t,e){return s.conversion(this.start,this.end,t,e)},s.conversion=function(t,e,i,s){return void 0===s&&(s=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-s)}:{offset:0,scale:1}},s.prototype._onDragStart=function(){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},s.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;o(e);var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY;i-=this.deltaDifference;var s=this.props.touch.end-this.props.touch.start,n=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);s-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*s,h=this.props.touch.start+a,d=this.props.touch.end+a,c=l.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=l.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(c!=h||p!=d)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end)})}},s.prototype._onDragEnd=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end)}))},s.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=a.fakeGesture(this,t),o=n(s.center,this.body.dom.center),r=this._pointerToDate(o);this.zoom(i,r,e)}t.preventDefault()}},s.prototype._onTouch=function(){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},s.prototype._onHold=function(){this.props.touch.allowDragging=!1},s.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable&&(this.props.touch.allowDragging=!1,t.gesture.touches.length>1)){this.props.touch.center||(this.props.touch.center=n(t.gesture.center,this.body.dom.center));var e=1/(t.gesture.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=s-o,a=i-o+(this.props.touch.start-(i-o))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=1-e>0?!1:!0,this.endToFront=e-1>0?!1:!0;var d=l.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=l.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(d!=a||c!=h)&&(this.props.touch.start=d,this.props.touch.end=c,this.scaleOffset=1-t.gesture.scale,a=d,h=c),this.setRange(a,h),this.startToFront=!1,this.endToFront=!0}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var s=this.body.domProps.center.height;return e=this.conversion(s),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=s-o,r=e-o+(this.start-(e-o))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=l.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),d=l.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||d!=a)&&(r=h,a=d),this.setRange(r,a),this.startToFront=!1,this.endToFront=!0},s.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},s.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,o=this.end-i;this.setRange(s,o)},t.exports=s},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},e.stack=function(t,i,s){var o,n;if(s)for(o=0,n=t.length;n>o;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var s,o,n;for(s=0,o=t.length;o>s;s++)if(void 0!==t[s].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-s.vertical+ie.top}},function(t,e,i){function s(t,e,i,o){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale=s.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=[])}var o=i(44),n=i(15);s.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},s.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},s.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},s.prototype.roundToMinor=function(){switch(this.scale){case s.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case s.SCALE.MONTH:this.current.setDate(1);case s.SCALE.DAY:case s.SCALE.WEEKDAY:this.current.setHours(0);case s.SCALE.HOUR:this.current.setMinutes(0);case s.SCALE.MINUTE:this.current.setSeconds(0);case s.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case s.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case s.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case s.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case s.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1); +},s.prototype._getDataPoints=function(t){if(void 0===t&&(t=this.index),void 0===t)return[];var e;if(this.dataPoints[t])e=this.dataPoints[t];else{var i={};i.column=this.column,i.value=this.values[t];var s=new o(this.data,{filter:function(t){return t[i.column]==i.value}}).get();e=this.graph._getDataPoints(s),this.dataPoints[t]=e}return e},s.prototype.setOnLoadCallback=function(t){this.onLoadCallback=t},s.prototype.selectValue=function(t){if(t>=this.values.length)throw"Error: index out of range";this.index=t,this.value=this.values[t]},s.prototype.loadInBackground=function(t){void 0===t&&(t=0);var e=this.graph.frame;if(t0&&(t--,this.setIndex(t))},s.prototype.next=function(){var t=this.getIndex();t0?this.setIndex(0):this.index=void 0},s.prototype.setIndex=function(t){if(!(ts&&(s=0),s>this.values.length-1&&(s=this.values.length-1),s},s.prototype.indexToLeft=function(t){var e=parseFloat(this.frame.bar.style.width)-this.frame.slide.clientWidth-10,i=t/(this.values.length-1)*e,s=i+3;return s},s.prototype._onMouseMove=function(t){var e=t.clientX-this.startClientX,i=this.startSlideX+e,s=this.leftToIndex(i);this.setIndex(s),o.preventDefault()},s.prototype._onMouseUp=function(){this.frame.style.cursor="auto",o.removeEventListener(document,"mousemove",this.onmousemove),o.removeEventListener(document,"mouseup",this.onmouseup),o.preventDefault()},t.exports=s},function(t){function e(t,e,i,s){this._start=0,this._end=0,this._step=1,this.prettyStep=!0,this.precision=5,this._current=0,this.setRange(t,e,i,s)}e.prototype.setRange=function(t,e,i,s){this._start=t?t:0,this._end=e?e:0,this.setStep(i,s)},e.prototype.setStep=function(t,i){void 0===t||0>=t||(void 0!==i&&(this.prettyStep=i),this._step=this.prettyStep===!0?e.calculatePrettyStep(t):t)},e.calculatePrettyStep=function(t){var e=function(t){return Math.log(t)/Math.LN10},i=Math.pow(10,Math.round(e(t))),s=2*Math.pow(10,Math.round(e(t/2))),o=5*Math.pow(10,Math.round(e(t/5))),n=i;return Math.abs(s-t)<=Math.abs(n-t)&&(n=s),Math.abs(o-t)<=Math.abs(n-t)&&(n=o),0>=n&&(n=1),n},e.prototype.getCurrent=function(){return parseFloat(this._current.toPrecision(this.precision))},e.prototype.getStep=function(){return this._step},e.prototype.start=function(){this._current=this._start-this._start%this._step},e.prototype.next=function(){this._current+=this._step},e.prototype.end=function(){return this._current>this._end},t.exports=e},function(t,e,i){function s(t,e,i,r){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var h=r;r=i,i=h}var u=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{snap:null,toScreen:u._toScreen.bind(u),toGlobalScreen:u._toGlobalScreen.bind(u),toTime:u._toTime.bind(u),toGlobalTime:u._toGlobalTime.bind(u)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.itemSet=new p(this.body),this.components.push(this.itemSet),this.itemsData=null,this.groupsData=null,r&&this.setOptions(r),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(27);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.itemSet&&this.itemSet.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){if(void 0==this.options.start||void 0==this.options.end)var s=this._getDataRange();var o=void 0!=this.options.start?this.options.start:s.start,a=void 0!=this.options.end?this.options.end:s.end;this.setWindow(o,a,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.itemSet.setGroups(e)},s.prototype.setSelection=function(t,e){this.itemSet&&this.itemSet.setSelection(t),e&&e.focus&&this.focus(t,e)},s.prototype.getSelection=function(){return this.itemSet&&this.itemSet.getSelection()||[]},s.prototype.focus=function(t,e){if(this.itemsData&&void 0!=t){var i=Array.isArray(t)?t:[t],s=this.itemsData.getDataSet().get(i,{type:{start:"Date",end:"Date"}}),o=null,n=null;if(s.forEach(function(t){var e=t.start.valueOf(),i="end"in t?t.end.valueOf():t.start.valueOf();(null===o||o>e)&&(o=e),(null===n||i>n)&&(n=i)}),null!==o&&null!==n){var r=(o+n)/2,a=Math.max(this.range.end-this.range.start,1.1*(n-o)),h=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(r-a/2,r+a/2,h)}}},s.prototype.getItemRange=function(){var t=this.itemsData.getDataSet(),e=null,i=null;if(t){var s=t.min("start");e=s?o.convert(s.start,"Date").valueOf():null;var n=t.max("start");n&&(i=o.convert(n.start,"Date").valueOf());var r=t.max("end");r&&(i=null==i?o.convert(r.end,"Date").valueOf():Math.max(i,o.convert(r.end,"Date").valueOf()))}return{min:null!=e?new Date(e):null,max:null!=i?new Date(i):null}},t.exports=s},function(t,e,i){function s(t,e,i,s){if(!(Array.isArray(i)||i instanceof n)&&i instanceof Object){var r=s;s=i,i=r}var h=this;this.defaultOptions={start:null,end:null,autoResize:!0,orientation:"bottom",width:null,height:null,maxHeight:null,minHeight:null},this.options=o.deepExtend({},this.defaultOptions),this._create(t),this.components=[],this.body={dom:this.dom,domProps:this.props,emitter:{on:this.on.bind(this),off:this.off.bind(this),emit:this.emit.bind(this)},hiddenDates:[],util:{snap:null,toScreen:h._toScreen.bind(h),toGlobalScreen:h._toGlobalScreen.bind(h),toTime:h._toTime.bind(h),toGlobalTime:h._toGlobalTime.bind(h)}},this.range=new a(this.body),this.components.push(this.range),this.body.range=this.range,this.timeAxis=new d(this.body),this.components.push(this.timeAxis),this.body.util.snap=this.timeAxis.snap.bind(this.timeAxis),this.currentTime=new l(this.body),this.components.push(this.currentTime),this.customTime=new c(this.body),this.components.push(this.customTime),this.linegraph=new p(this.body),this.components.push(this.linegraph),this.itemsData=null,this.groupsData=null,s&&this.setOptions(s),i&&this.setGroups(i),e?this.setItems(e):this.redraw()}var o=(i(56),i(45),i(1)),n=i(3),r=i(4),a=i(17),h=i(46),d=i(30),l=i(21),c=i(22),p=i(29);s.prototype=new h,s.prototype.setItems=function(t){var e,i=null==this.itemsData;if(e=t?t instanceof n||t instanceof r?t:new n(t,{type:{start:"Date",end:"Date"}}):null,this.itemsData=e,this.linegraph&&this.linegraph.setItems(e),i)if(void 0!=this.options.start||void 0!=this.options.end){var s=void 0!=this.options.start?this.options.start:null,o=void 0!=this.options.end?this.options.end:null;this.setWindow(s,o,{animate:!1})}else this.fit({animate:!1})},s.prototype.setGroups=function(t){var e;e=t?t instanceof n||t instanceof r?t:new n(t):null,this.groupsData=e,this.linegraph.setGroups(e)},s.prototype.getLegend=function(t,e,i){return void 0===e&&(e=15),void 0===i&&(i=15),void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].getLegend(e,i):"cannot find group:"+t},s.prototype.isGroupVisible=function(t){return void 0!==this.linegraph.groups[t]?this.linegraph.groups[t].visible&&(void 0===this.linegraph.options.groups.visibility[t]||1==this.linegraph.options.groups.visibility[t]):!1},s.prototype.getItemRange=function(){var t=null,e=null;for(var i in this.linegraph.groups)if(this.linegraph.groups.hasOwnProperty(i)&&1==this.linegraph.groups[i].visible)for(var s=0;sr?r:t,e=null==e?r:r>e?r:e}return{min:null!=t?new Date(t):null,max:null!=e?new Date(e):null}},t.exports=s},function(t,e,i){var s=i(44);e.convertHiddenOptions=function(t,e){if(t.hiddenDates=[],e&&1==Array.isArray(e)){for(var i=0;i=4*a){var p=0,u=n.clone();switch(i[h].repeat){case"daily":d.day()!=l.day()&&(p=1),d.dayOfYear(o.dayOfYear()),d.year(o.year()),d.subtract(7,"days"),l.dayOfYear(o.dayOfYear()),l.year(o.year()),l.subtract(7-p,"days"),u.add(1,"weeks");break;case"weekly":var m=l.diff(d,"days"),f=d.day();d.date(o.date()),d.month(o.month()),d.year(o.year()),l=d.clone(),d.day(f),l.day(f),l.add(m,"days"),d.subtract(1,"weeks"),l.subtract(1,"weeks"),u.add(1,"weeks");break;case"monthly":d.month()!=l.month()&&(p=1),d.month(o.month()),d.year(o.year()),d.subtract(1,"months"),l.month(o.month()),l.year(o.year()),l.subtract(1,"months"),l.add(p,"months"),u.add(1,"months");break;case"yearly":d.year()!=l.year()&&(p=1),d.year(o.year()),d.subtract(1,"years"),l.year(o.year()),l.subtract(1,"years"),l.add(p,"years"),u.add(1,"years");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}for(;u>d;)switch(t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()}),i[h].repeat){case"daily":d.add(1,"days"),l.add(1,"days");break;case"weekly":d.add(1,"weeks"),l.add(1,"weeks");break;case"monthly":d.add(1,"months"),l.add(1,"months");break;case"yearly":d.add(1,"y"),l.add(1,"y");break;default:return void console.log("Wrong repeat format, allowed are: daily, weekly, monthly, yearly. Given:",i[h].repeat)}t.hiddenDates.push({start:d.valueOf(),end:l.valueOf()})}}e.removeDuplicates(t);var g=e.isHidden(t.range.start,t.hiddenDates),v=e.isHidden(t.range.end,t.hiddenDates),y=t.range.start,b=t.range.end;1==g.hidden&&(y=1==t.range.startToFront?g.startDate-1:g.endDate+1),1==v.hidden&&(b=1==t.range.endToFront?v.startDate-1:v.endDate+1),(1==g.hidden||1==v.hidden)&&t.range._applyRange(y,b)}},e.removeDuplicates=function(t){for(var e=t.hiddenDates,i=[],s=0;s=e[s].start&&e[o].end<=e[s].end?e[o].remove=!0:e[o].start>=e[s].start&&e[o].start<=e[s].end?(e[s].end=e[o].end,e[o].remove=!0):e[o].end>=e[s].start&&e[o].end<=e[s].end&&(e[s].start=e[o].start,e[o].remove=!0));for(var s=0;s=r&&a>o){i=!0;break}}if(1==i&&o=e&&i>r&&(s+=r-n)}return s},e.correctTimeForHidden=function(t,i,o){return o=s(o).toDate().valueOf(),o-=e.getHiddenDurationBefore(t,i,o)},e.getHiddenDurationBefore=function(t,e,i){var o=0;i=s(i).toDate().valueOf();for(var n=0;n=e.start&&a=a&&(o+=a-r)}return o},e.getAccumulatedHiddenDuration=function(t,e,i){for(var s=0,o=0,n=e.start,r=0;r=e.start&&h=i)break;s+=h-a}}return s},e.snapAwayFromHidden=function(t,i,s,o){var n=e.isHidden(i,t);return 1==n.hidden?0>s?1==o?n.startDate-(n.endDate-i)-1:n.startDate-1:1==o?n.endDate+(i-n.startDate)+1:n.endDate+1:i},e.isHidden=function(t,e){for(var i=0;i=s&&o>t)return{hidden:!0,startDate:s,endDate:o}}return{hidden:!1,startDate:s,endDate:o}}},function(t){function e(t,e,i,s,o,n){this.current=0,this.autoScale=!0,this.stepIndex=0,this.step=1,this.scale=1,this.marginStart,this.marginEnd,this.deadSpace=0,this.majorSteps=[1,2,5,10],this.minorSteps=[.25,.5,1,2],this.alignZeros=n,this.setRange(t,e,i,s,o)}e.prototype.setRange=function(t,e,i,s,o){this._start=void 0===o.min?t:o.min,this._end=void 0===o.max?e:o.max,this._start==this._end&&(this._start-=.75,this._end+=1),1==this.autoScale&&this.setMinimumStep(i,s),this.setFirst(o)},e.prototype.setMinimumStep=function(t,e){var i=this._end-this._start,s=1.2*i,o=t*(s/e),n=Math.round(Math.log(s)/Math.LN10),r=-1,a=Math.pow(10,n),h=0;0>n&&(h=n);for(var d=!1,l=h;Math.abs(l)<=Math.abs(n);l++){a=Math.pow(10,l);for(var c=0;c=o){d=!0,r=c;break}}if(1==d)break}this.stepIndex=r,this.scale=a,this.step=a*this.minorSteps[r]},e.prototype.setFirst=function(t){void 0===t&&(t={});var e=void 0===t.min?this._start-2*this.scale*this.minorSteps[this.stepIndex]:t.min,i=void 0===t.max?this._end+this.scale*this.minorSteps[this.stepIndex]:t.max;this.marginEnd=void 0===t.max?this.roundToMinor(i):t.max,this.marginStart=void 0===t.min?this.roundToMinor(e):t.min,1==this.alignZeros&&(this.marginEnd-this.marginStart)%this.step!=0&&(this.marginEnd+=this.marginEnd%this.step),this.deadSpace=this.roundToMinor(i)-i+this.roundToMinor(e)-e,this.marginRange=this.marginEnd-this.marginStart,this.current=this.marginEnd},e.prototype.roundToMinor=function(t){var e=t-t%(this.scale*this.minorSteps[this.stepIndex]);return t%(this.scale*this.minorSteps[this.stepIndex])>.5*this.scale*this.minorSteps[this.stepIndex]?e+this.scale*this.minorSteps[this.stepIndex]:e},e.prototype.hasNext=function(){return this.current>=this.marginStart},e.prototype.next=function(){var t=this.current;this.current-=this.step,this.current==t&&(this.current=this._end)},e.prototype.previous=function(){this.current+=this.step,this.marginEnd+=this.step,this.marginRange=this.marginEnd-this.marginStart},e.prototype.getCurrent=function(t){var e=Math.abs(this.current)0;s--){if("0"!=i[s]){if("."==i[s]||","==i[s]){i=i.slice(0,s);break}break}i=i.slice(0,s)}}else{var o="",n=i.indexOf("e");if(-1!=n&&(o=i.slice(n),i=i.slice(0,n)),n=Math.max(i.indexOf(","),i.indexOf(".")),-1===n?(0!==t&&(i+="."),n=i.length+t):0!==t&&(n+=t+1),n>i.length)for(var r=n-i.length;r>0;r--)i+="0";else i=i.slice(0,n);i+=o}return i},e.prototype.snap=function(){},e.prototype.isMajor=function(){return this.current%(this.scale*this.majorSteps[this.stepIndex])==0},t.exports=e},function(t,e,i){function s(t,e){var i=h().hours(0).minutes(0).seconds(0).milliseconds(0);this.start=i.clone().add(-3,"days").valueOf(),this.end=i.clone().add(4,"days").valueOf(),this.body=t,this.deltaDifference=0,this.scaleOffset=0,this.startToFront=!1,this.endToFront=!0,this.defaultOptions={start:null,end:null,direction:"horizontal",moveable:!0,zoomable:!0,min:null,max:null,zoomMin:10,zoomMax:31536e10},this.options=r.extend({},this.defaultOptions),this.props={touch:{}},this.animateTimer=null,this.body.emitter.on("dragstart",this._onDragStart.bind(this)),this.body.emitter.on("drag",this._onDrag.bind(this)),this.body.emitter.on("dragend",this._onDragEnd.bind(this)),this.body.emitter.on("hold",this._onHold.bind(this)),this.body.emitter.on("mousewheel",this._onMouseWheel.bind(this)),this.body.emitter.on("DOMMouseScroll",this._onMouseWheel.bind(this)),this.body.emitter.on("touch",this._onTouch.bind(this)),this.body.emitter.on("pinch",this._onPinch.bind(this)),this.setOptions(e)}function o(t){if("horizontal"!=t&&"vertical"!=t)throw new TypeError('Unknown direction "'+t+'". Choose "horizontal" or "vertical".')}function n(t,e){return{x:t.pageX-r.getAbsoluteLeft(e),y:t.pageY-r.getAbsoluteTop(e)}}var r=i(1),a=i(47),h=i(44),d=i(20),l=i(15);s.prototype=new d,s.prototype.setOptions=function(t){if(t){var e=["direction","min","max","zoomMin","zoomMax","moveable","zoomable","activate","hiddenDates"];r.selectiveExtend(e,this.options,t),("start"in t||"end"in t)&&this.setRange(t.start,t.end)}},s.prototype.setRange=function(t,e,i){var s=void 0!=t?r.convert(t,"Date").valueOf():null,o=void 0!=e?r.convert(e,"Date").valueOf():null;if(this._cancelAnimation(),i){var n=this,a=this.start,h=this.end,d="number"==typeof i?i:500,c=(new Date).valueOf(),p=!1,u=function(){if(!n.props.touch.dragging){var t=(new Date).valueOf(),e=t-c,i=e>d,f=i||null===s?s:r.easeInOutQuad(e,a,s,d),g=i||null===o?o:r.easeInOutQuad(e,h,o,d);m=n._applyRange(f,g),l.updateHiddenDates(n.body,n.options.hiddenDates),p=p||m,m&&n.body.emitter.emit("rangechange",{start:new Date(n.start),end:new Date(n.end)}),i?p&&n.body.emitter.emit("rangechanged",{start:new Date(n.start),end:new Date(n.end)}):n.animateTimer=setTimeout(u,20)}};return u()}var m=this._applyRange(s,o);if(l.updateHiddenDates(this.body,this.options.hiddenDates),m){var f={start:new Date(this.start),end:new Date(this.end)};this.body.emitter.emit("rangechange",f),this.body.emitter.emit("rangechanged",f)}},s.prototype._cancelAnimation=function(){this.animateTimer&&(clearTimeout(this.animateTimer),this.animateTimer=null)},s.prototype._applyRange=function(t,e){var i,s=null!=t?r.convert(t,"Date").valueOf():this.start,o=null!=e?r.convert(e,"Date").valueOf():this.end,n=null!=this.options.max?r.convert(this.options.max,"Date").valueOf():null,a=null!=this.options.min?r.convert(this.options.min,"Date").valueOf():null;if(isNaN(s)||null===s)throw new Error('Invalid start "'+t+'"');if(isNaN(o)||null===o)throw new Error('Invalid end "'+e+'"');if(s>o&&(o=s),null!==a&&a>s&&(i=a-s,s+=i,o+=i,null!=n&&o>n&&(o=n)),null!==n&&o>n&&(i=o-n,s-=i,o-=i,null!=a&&a>s&&(s=a)),null!==this.options.zoomMin){var h=parseFloat(this.options.zoomMin);0>h&&(h=0),h>o-s&&(this.end-this.start===h?(s=this.start,o=this.end):(i=h-(o-s),s-=i/2,o+=i/2))}if(null!==this.options.zoomMax){var d=parseFloat(this.options.zoomMax);0>d&&(d=0),o-s>d&&(this.end-this.start===d?(s=this.start,o=this.end):(i=o-s-d,s+=i/2,o-=i/2))}var l=this.start!=s||this.end!=o;return s>=this.start&&s<=this.end||o>=this.start&&o<=this.end||this.start>=s&&this.start<=o||this.end>=s&&this.end<=o||this.body.emitter.emit("checkRangedItems"),this.start=s,this.end=o,l},s.prototype.getRange=function(){return{start:this.start,end:this.end}},s.prototype.conversion=function(t,e){return s.conversion(this.start,this.end,t,e)},s.conversion=function(t,e,i,s){return void 0===s&&(s=0),0!=i&&e-t!=0?{offset:t,scale:i/(e-t-s)}:{offset:0,scale:1}},s.prototype._onDragStart=function(){this.deltaDifference=0,this.previousDelta=0,this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.dragging=!0,this.body.dom.root&&(this.body.dom.root.style.cursor="move"))},s.prototype._onDrag=function(t){if(this.options.moveable&&this.props.touch.allowDragging){var e=this.options.direction;o(e);var i="horizontal"==e?t.gesture.deltaX:t.gesture.deltaY;i-=this.deltaDifference;var s=this.props.touch.end-this.props.touch.start,n=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end);s-=n;var r="horizontal"==e?this.body.domProps.center.width:this.body.domProps.center.height,a=-i/r*s,h=this.props.touch.start+a,d=this.props.touch.end+a,c=l.snapAwayFromHidden(this.body.hiddenDates,h,this.previousDelta-i,!0),p=l.snapAwayFromHidden(this.body.hiddenDates,d,this.previousDelta-i,!0);if(c!=h||p!=d)return this.deltaDifference+=i,this.props.touch.start=c,this.props.touch.end=p,void this._onDrag(t);this.previousDelta=i,this._applyRange(h,d),this.body.emitter.emit("rangechange",{start:new Date(this.start),end:new Date(this.end)})}},s.prototype._onDragEnd=function(){this.options.moveable&&this.props.touch.allowDragging&&(this.props.touch.dragging=!1,this.body.dom.root&&(this.body.dom.root.style.cursor="auto"),this.body.emitter.emit("rangechanged",{start:new Date(this.start),end:new Date(this.end)}))},s.prototype._onMouseWheel=function(t){if(this.options.zoomable&&this.options.moveable){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i;i=0>e?1-e/5:1/(1+e/5);var s=a.fakeGesture(this,t),o=n(s.center,this.body.dom.center),r=this._pointerToDate(o);this.zoom(i,r,e)}t.preventDefault()}},s.prototype._onTouch=function(){this.props.touch.start=this.start,this.props.touch.end=this.end,this.props.touch.allowDragging=!0,this.props.touch.center=null,this.scaleOffset=0,this.deltaDifference=0},s.prototype._onHold=function(){this.props.touch.allowDragging=!1},s.prototype._onPinch=function(t){if(this.options.zoomable&&this.options.moveable&&(this.props.touch.allowDragging=!1,t.gesture.touches.length>1)){this.props.touch.center||(this.props.touch.center=n(t.gesture.center,this.body.dom.center));var e=1/(t.gesture.scale+this.scaleOffset),i=this._pointerToDate(this.props.touch.center),s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,i),r=s-o,a=i-o+(this.props.touch.start-(i-o))*e,h=i+r+(this.props.touch.end-(i+r))*e;this.startToFront=1-e>0?!1:!0,this.endToFront=e-1>0?!1:!0;var d=l.snapAwayFromHidden(this.body.hiddenDates,a,1-e,!0),c=l.snapAwayFromHidden(this.body.hiddenDates,h,e-1,!0);(d!=a||c!=h)&&(this.props.touch.start=d,this.props.touch.end=c,this.scaleOffset=1-t.gesture.scale,a=d,h=c),this.setRange(a,h),this.startToFront=!1,this.endToFront=!0}},s.prototype._pointerToDate=function(t){var e,i=this.options.direction;if(o(i),"horizontal"==i)return this.body.util.toTime(t.x).valueOf();var s=this.body.domProps.center.height;return e=this.conversion(s),t.y/e.scale+e.offset},s.prototype.zoom=function(t,e,i){null==e&&(e=(this.start+this.end)/2);var s=l.getHiddenDurationBetween(this.body.hiddenDates,this.start,this.end),o=l.getHiddenDurationBefore(this.body.hiddenDates,this,e),n=s-o,r=e-o+(this.start-(e-o))*t,a=e+n+(this.end-(e+n))*t;this.startToFront=i>0?!1:!0,this.endToFront=-i>0?!1:!0;var h=l.snapAwayFromHidden(this.body.hiddenDates,r,i,!0),d=l.snapAwayFromHidden(this.body.hiddenDates,a,-i,!0);(h!=r||d!=a)&&(r=h,a=d),this.setRange(r,a),this.startToFront=!1,this.endToFront=!0},s.prototype.move=function(t){var e=this.end-this.start,i=this.start+e*t,s=this.end+e*t;this.start=i,this.end=s},s.prototype.moveTo=function(t){var e=(this.start+this.end)/2,i=e-t,s=this.start-i,o=this.end-i;this.setRange(s,o)},t.exports=s},function(t,e){var i=.001;e.orderByStart=function(t){t.sort(function(t,e){return t.data.start-e.data.start})},e.orderByEnd=function(t){t.sort(function(t,e){var i="end"in t.data?t.data.end:t.data.start,s="end"in e.data?e.data.end:e.data.start;return i-s})},e.stack=function(t,i,s){var o,n;if(s)for(o=0,n=t.length;n>o;o++)t[o].top=null;for(o=0,n=t.length;n>o;o++){var r=t[o];if(r.stack&&null===r.top){r.top=i.axis;do{for(var a=null,h=0,d=t.length;d>h;h++){var l=t[h];if(null!==l.top&&l!==r&&l.stack&&e.collision(r,l,i.item)){a=l;break}}null!=a&&(r.top=a.top+a.height+i.item.vertical)}while(a)}}},e.nostack=function(t,e,i){var s,o,n;for(s=0,o=t.length;o>s;s++)if(void 0!==t[s].data.subgroup){n=e.axis;for(var r in i)i.hasOwnProperty(r)&&1==i[r].visible&&i[r].indexe.left&&t.top-s.vertical+ie.top}},function(t,e,i){function s(t,e,i,o){this.current=new Date,this._start=new Date,this._end=new Date,this.autoScale=!0,this.scale=s.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=[])}var o=i(44),n=i(15);s.SCALE={MILLISECOND:1,SECOND:2,MINUTE:3,HOUR:4,DAY:5,WEEKDAY:6,MONTH:7,YEAR:8},s.prototype.setRange=function(t,e,i){if(!(t instanceof Date&&e instanceof Date))throw"No legal start or end date in method setRange";this._start=void 0!=t?new Date(t.valueOf()):new Date,this._end=void 0!=e?new Date(e.valueOf()):new Date,this.autoScale&&this.setMinimumStep(i)},s.prototype.first=function(){this.current=new Date(this._start.valueOf()),this.roundToMinor()},s.prototype.roundToMinor=function(){switch(this.scale){case s.SCALE.YEAR:this.current.setFullYear(this.step*Math.floor(this.current.getFullYear()/this.step)),this.current.setMonth(0);case s.SCALE.MONTH:this.current.setDate(1);case s.SCALE.DAY:case s.SCALE.WEEKDAY:this.current.setHours(0);case s.SCALE.HOUR:this.current.setMinutes(0);case s.SCALE.MINUTE:this.current.setSeconds(0);case s.SCALE.SECOND:this.current.setMilliseconds(0)}if(1!=this.step)switch(this.scale){case s.SCALE.MILLISECOND:this.current.setMilliseconds(this.current.getMilliseconds()-this.current.getMilliseconds()%this.step);break;case s.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()-this.current.getSeconds()%this.step);break;case s.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()-this.current.getMinutes()%this.step);break;case s.SCALE.HOUR:this.current.setHours(this.current.getHours()-this.current.getHours()%this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()-1-(this.current.getDate()-1)%this.step+1); break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()-this.current.getMonth()%this.step);break;case s.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()-this.current.getFullYear()%this.step)}},s.prototype.hasNext=function(){return this.current.valueOf()<=this._end.valueOf()},s.prototype.next=function(){var t=this.current.valueOf();if(this.current.getMonth()<6)switch(this.scale){case s.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case s.SCALE.SECOND:this.current=new Date(this.current.valueOf()+1e3*this.step);break;case s.SCALE.MINUTE:this.current=new Date(this.current.valueOf()+1e3*this.step*60);break;case s.SCALE.HOUR:this.current=new Date(this.current.valueOf()+1e3*this.step*60*60);var e=this.current.getHours();this.current.setHours(e-e%this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case s.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}else switch(this.scale){case s.SCALE.MILLISECOND:this.current=new Date(this.current.valueOf()+this.step);break;case s.SCALE.SECOND:this.current.setSeconds(this.current.getSeconds()+this.step);break;case s.SCALE.MINUTE:this.current.setMinutes(this.current.getMinutes()+this.step);break;case s.SCALE.HOUR:this.current.setHours(this.current.getHours()+this.step);break;case s.SCALE.WEEKDAY:case s.SCALE.DAY:this.current.setDate(this.current.getDate()+this.step);break;case s.SCALE.MONTH:this.current.setMonth(this.current.getMonth()+this.step);break;case s.SCALE.YEAR:this.current.setFullYear(this.current.getFullYear()+this.step)}if(1!=this.step)switch(this.scale){case s.SCALE.MILLISECOND:this.current.getMilliseconds()0&&(this.step=e),this.autoScale=!1},s.prototype.setAutoScale=function(t){this.autoScale=t},s.prototype.setMinimumStep=function(t){if(void 0!=t){var e=31104e6,i=2592e6,o=864e5,n=36e5,r=6e4,a=1e3,h=1;1e3*e>t&&(this.scale=s.SCALE.YEAR,this.step=1e3),500*e>t&&(this.scale=s.SCALE.YEAR,this.step=500),100*e>t&&(this.scale=s.SCALE.YEAR,this.step=100),50*e>t&&(this.scale=s.SCALE.YEAR,this.step=50),10*e>t&&(this.scale=s.SCALE.YEAR,this.step=10),5*e>t&&(this.scale=s.SCALE.YEAR,this.step=5),e>t&&(this.scale=s.SCALE.YEAR,this.step=1),3*i>t&&(this.scale=s.SCALE.MONTH,this.step=3),i>t&&(this.scale=s.SCALE.MONTH,this.step=1),5*o>t&&(this.scale=s.SCALE.DAY,this.step=5),2*o>t&&(this.scale=s.SCALE.DAY,this.step=2),o>t&&(this.scale=s.SCALE.DAY,this.step=1),o/2>t&&(this.scale=s.SCALE.WEEKDAY,this.step=1),4*n>t&&(this.scale=s.SCALE.HOUR,this.step=4),n>t&&(this.scale=s.SCALE.HOUR,this.step=1),15*r>t&&(this.scale=s.SCALE.MINUTE,this.step=15),10*r>t&&(this.scale=s.SCALE.MINUTE,this.step=10),5*r>t&&(this.scale=s.SCALE.MINUTE,this.step=5),r>t&&(this.scale=s.SCALE.MINUTE,this.step=1),15*a>t&&(this.scale=s.SCALE.SECOND,this.step=15),10*a>t&&(this.scale=s.SCALE.SECOND,this.step=10),5*a>t&&(this.scale=s.SCALE.SECOND,this.step=5),a>t&&(this.scale=s.SCALE.SECOND,this.step=1),200*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=200),100*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=100),50*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=50),10*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=10),5*h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=5),h>t&&(this.scale=s.SCALE.MILLISECOND,this.step=1)}},s.prototype.snap=function(t){var e=new Date(t.valueOf());if(this.scale==s.SCALE.YEAR){var i=e.getFullYear()+Math.round(e.getMonth()/12);e.setFullYear(Math.round(i/this.step)*this.step),e.setMonth(0),e.setDate(0),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==s.SCALE.MONTH)e.getDate()>15?(e.setDate(1),e.setMonth(e.getMonth()+1)):e.setDate(1),e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0);else if(this.scale==s.SCALE.DAY){switch(this.step){case 5:case 2:e.setHours(24*Math.round(e.getHours()/24));break;default:e.setHours(12*Math.round(e.getHours()/12))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==s.SCALE.WEEKDAY){switch(this.step){case 5:case 2:e.setHours(12*Math.round(e.getHours()/12));break;default:e.setHours(6*Math.round(e.getHours()/6))}e.setMinutes(0),e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==s.SCALE.HOUR){switch(this.step){case 4:e.setMinutes(60*Math.round(e.getMinutes()/60));break;default:e.setMinutes(30*Math.round(e.getMinutes()/30))}e.setSeconds(0),e.setMilliseconds(0)}else if(this.scale==s.SCALE.MINUTE){switch(this.step){case 15:case 10:e.setMinutes(5*Math.round(e.getMinutes()/5)),e.setSeconds(0);break;case 5:e.setSeconds(60*Math.round(e.getSeconds()/60));break;default:e.setSeconds(30*Math.round(e.getSeconds()/30))}e.setMilliseconds(0)}else if(this.scale==s.SCALE.SECOND)switch(this.step){case 15:case 10:e.setSeconds(5*Math.round(e.getSeconds()/5)),e.setMilliseconds(0);break;case 5:e.setMilliseconds(1e3*Math.round(e.getMilliseconds()/1e3));break;default:e.setMilliseconds(500*Math.round(e.getMilliseconds()/500))}else if(this.scale==s.SCALE.MILLISECOND){var o=this.step>5?this.step/2:1;e.setMilliseconds(Math.round(e.getMilliseconds()/o)*o)}return e},s.prototype.isMajor=function(){if(1==this.switchedYear)switch(this.switchedYear=!1,this.scale){case s.SCALE.YEAR:case s.SCALE.MONTH:case s.SCALE.WEEKDAY:case s.SCALE.DAY:case s.SCALE.HOUR:case s.SCALE.MINUTE:case s.SCALE.SECOND:case s.SCALE.MILLISECOND:return!0;default:return!1}else if(1==this.switchedMonth)switch(this.switchedMonth=!1,this.scale){case s.SCALE.WEEKDAY:case s.SCALE.DAY:case s.SCALE.HOUR:case s.SCALE.MINUTE:case s.SCALE.SECOND:case s.SCALE.MILLISECOND:return!0;default:return!1}else if(1==this.switchedDay)switch(this.switchedDay=!1,this.scale){case s.SCALE.MILLISECOND:case s.SCALE.SECOND:case s.SCALE.MINUTE:case s.SCALE.HOUR:return!0;default:return!1}switch(this.scale){case s.SCALE.MILLISECOND:return 0==this.current.getMilliseconds();case s.SCALE.SECOND:return 0==this.current.getSeconds();case s.SCALE.MINUTE:return 0==this.current.getHours()&&0==this.current.getMinutes();case s.SCALE.HOUR:return 0==this.current.getHours();case s.SCALE.WEEKDAY:case s.SCALE.DAY:return 1==this.current.getDate();case s.SCALE.MONTH:return 0==this.current.getMonth();case s.SCALE.YEAR:return!1;default:return!1}},s.prototype.getLabelMinor=function(t){switch(void 0==t&&(t=this.current),this.scale){case s.SCALE.MILLISECOND:return o(t).format("SSS");case s.SCALE.SECOND:return o(t).format("s");case s.SCALE.MINUTE:return o(t).format("HH:mm");case s.SCALE.HOUR:return o(t).format("HH:mm");case s.SCALE.WEEKDAY:return o(t).format("ddd D");case s.SCALE.DAY:return o(t).format("D");case s.SCALE.MONTH:return o(t).format("MMM");case s.SCALE.YEAR:return o(t).format("YYYY");default:return""}},s.prototype.getLabelMajor=function(t){switch(void 0==t&&(t=this.current),this.scale){case s.SCALE.MILLISECOND:return o(t).format("HH:mm:ss");case s.SCALE.SECOND:return o(t).format("D MMMM HH:mm");case s.SCALE.MINUTE:case s.SCALE.HOUR:return o(t).format("ddd D MMMM");case s.SCALE.WEEKDAY:case s.SCALE.DAY:return o(t).format("MMMM YYYY");case s.SCALE.MONTH:return o(t).format("YYYY");case s.SCALE.YEAR:return"";default:return""}},t.exports=s},function(t){function e(){this.options=null,this.props=null}e.prototype.setOptions=function(t){t&&util.extend(this.options,t)},e.prototype.redraw=function(){return!1},e.prototype.destroy=function(){},e.prototype._isResized=function(){var t=this.props._previousWidth!==this.props.width||this.props._previousHeight!==this.props.height;return this.props._previousWidth=this.props.width,this.props._previousHeight=this.props.height,t},t.exports=e},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCurrentTime:!0,locales:a,locale:"en"},this.options=o.extend({},this.defaultOptions),this.offset=0,this._create(),this.setOptions(e)}var o=i(1),n=i(20),r=i(44),a=i(48);s.prototype=new n,s.prototype._create=function(){var t=document.createElement("div");t.className="currenttime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t},s.prototype.destroy=function(){this.options.showCurrentTime=!1,this.redraw(),this.body=null},s.prototype.setOptions=function(t){t&&o.selectiveExtend(["showCurrentTime","locale","locales"],this.options,t)},s.prototype.redraw=function(){if(this.options.showCurrentTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar),this.start());var e=new Date((new Date).valueOf()+this.offset),i=this.body.util.toScreen(e),s=this.options.locales[this.options.locale],o=s.current+" "+s.time+": "+r(e).format("dddd, MMMM Do YYYY, H:mm:ss");o=o.charAt(0).toUpperCase()+o.substring(1),this.bar.style.left=i+"px",this.bar.title=o}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),this.stop();return!1},s.prototype.start=function(){function t(){e.stop();var i=e.body.range.conversion(e.body.domProps.center.width).scale,s=1/i/10;30>s&&(s=30),s>1e3&&(s=1e3),e.redraw(),e.currentTimeTimer=setTimeout(t,s)}var e=this;t()},s.prototype.stop=function(){void 0!==this.currentTimeTimer&&(clearTimeout(this.currentTimeTimer),delete this.currentTimeTimer)},s.prototype.setCurrentTime=function(t){var e=o.convert(t,"Date").valueOf(),i=(new Date).valueOf();this.offset=e-i,this.redraw()},s.prototype.getCurrentTime=function(){return new Date((new Date).valueOf()+this.offset)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={showCustomTime:!1,locales:h,locale:"en"},this.options=n.extend({},this.defaultOptions),this.customTime=new Date,this.eventParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(20),a=i(44),h=i(48);s.prototype=new r,s.prototype.setOptions=function(t){t&&n.selectiveExtend(["showCustomTime","locale","locales"],this.options,t)},s.prototype._create=function(){var t=document.createElement("div");t.className="customtime",t.style.position="absolute",t.style.top="0px",t.style.height="100%",this.bar=t;var e=document.createElement("div");e.style.position="relative",e.style.top="0px",e.style.left="-10px",e.style.height="100%",e.style.width="20px",t.appendChild(e),this.hammer=o(t,{prevent_default:!0}),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this))},s.prototype.destroy=function(){this.options.showCustomTime=!1,this.redraw(),this.hammer.enable(!1),this.hammer=null,this.body=null},s.prototype.redraw=function(){if(this.options.showCustomTime){var t=this.body.dom.backgroundVertical;this.bar.parentNode!=t&&(this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar),t.appendChild(this.bar));var e=this.body.util.toScreen(this.customTime),i=this.options.locales[this.options.locale],s=i.time+": "+a(this.customTime).format("dddd, MMMM Do YYYY, H:mm:ss");s=s.charAt(0).toUpperCase()+s.substring(1),this.bar.style.left=e+"px",this.bar.title=s}else this.bar.parentNode&&this.bar.parentNode.removeChild(this.bar);return!1},s.prototype.setCustomTime=function(t){this.customTime=n.convert(t,"Date"),this.redraw()},s.prototype.getCustomTime=function(){return new Date(this.customTime.valueOf())},s.prototype._onDragStart=function(t){this.eventParams.dragging=!0,this.eventParams.customTime=this.customTime,t.stopPropagation(),t.preventDefault()},s.prototype._onDrag=function(t){if(this.eventParams.dragging){var e=t.gesture.deltaX,i=this.body.util.toScreen(this.eventParams.customTime)+e,s=this.body.util.toTime(i);this.setCustomTime(s),this.body.emitter.emit("timechange",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault()}},s.prototype._onDragEnd=function(t){this.eventParams.dragging&&(this.body.emitter.emit("timechanged",{time:new Date(this.customTime.valueOf())}),t.stopPropagation(),t.preventDefault())},t.exports=s},function(t,e,i){function s(t,e,i,s){this.id=o.randomUUID(),this.body=t,this.defaultOptions={orientation:"left",showMinorLabels:!0,showMajorLabels:!0,icons:!0,majorLinesOffset:7,minorLinesOffset:4,labelOffsetX:10,labelOffsetY:2,iconWidth:20,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}},title:{left:{text:void 0},right:{text:void 0}},format:{left:{decimals:void 0},right:{decimals:void 0}}},this.linegraphOptions=s,this.linegraphSVG=i,this.props={},this.DOMelements={lines:{},labels:{},title:{}},this.dom={},this.range={start:0,end:0},this.options=o.extend({},this.defaultOptions),this.conversionFactor=1,this.setOptions(e),this.width=Number((""+this.options.width).replace("px","")),this.minWidth=this.width,this.height=this.linegraphSVG.offsetHeight,this.hidden=!1,this.stepPixels=25,this.stepPixelsForced=25,this.zeroCrossing=-1,this.lineOffset=0,this.master=!0,this.svgElements={},this.iconsRemoved=!1,this.groups={},this.amountOfGroups=0,this._create();var n=this;this.body.emitter.on("verticalDrag",function(){n.dom.lineContainer.style.top=n.body.domProps.scrollTop+"px"})}var o=i(1),n=i(2),r=i(20),a=i(16);s.prototype=new r,s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype.setOptions=function(t){if(t){var e=!1;this.options.orientation!=t.orientation&&void 0!==t.orientation&&(e=!0);var i=["orientation","showMinorLabels","showMajorLabels","icons","majorLinesOffset","minorLinesOffset","labelOffsetX","labelOffsetY","iconWidth","width","visible","customRange","title","format","alignZeros"];o.selectiveExtend(i,this.options,t),this.minWidth=Number((""+this.options.width).replace("px","")),1==e&&this.dom.frame&&(this.hide(),this.show())}},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.style.width=this.options.width,this.dom.frame.style.height=this.height,this.dom.lineContainer=document.createElement("div"),this.dom.lineContainer.style.width="100%",this.dom.lineContainer.style.height=this.height,this.dom.lineContainer.style.position="relative",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.height="100%",this.svg.style.width="100%",this.svg.style.display="block",this.dom.frame.appendChild(this.svg)},s.prototype._redrawGroupIcons=function(){n.prepareElements(this.svgElements);var t,e=this.options.iconWidth,i=15,s=4,o=s+.5*i;t="left"==this.options.orientation?s:this.width-e-s;for(var r in this.groups)this.groups.hasOwnProperty(r)&&(1!=this.groups[r].visible||void 0!==this.linegraphOptions.visibility[r]&&1!=this.linegraphOptions.visibility[r]||(this.groups[r].drawIcon(t,o,this.svgElements,this.svg,e,i),o+=i+s));n.cleanupElements(this.svgElements),this.iconsRemoved=!1},s.prototype._cleanupIcons=function(){0==this.iconsRemoved&&(n.prepareElements(this.svgElements),n.cleanupElements(this.svgElements),this.iconsRemoved=!0)},s.prototype.show=function(){this.hidden=!1,this.dom.frame.parentNode||("left"==this.options.orientation?this.body.dom.left.appendChild(this.dom.frame):this.body.dom.right.appendChild(this.dom.frame)),this.dom.lineContainer.parentNode||this.body.dom.backgroundHorizontal.appendChild(this.dom.lineContainer)},s.prototype.hide=function(){this.hidden=!0,this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.lineContainer.parentNode&&this.dom.lineContainer.parentNode.removeChild(this.dom.lineContainer)},s.prototype.setRange=function(t,e){0==this.master&&1==this.options.alignZeros&&-1!=this.zeroCrossing&&t>0&&(t=0),this.range.start=t,this.range.end=e},s.prototype.redraw=function(){var t=!1,e=0;this.dom.lineContainer.style.top=this.body.domProps.scrollTop+"px";for(var i in this.groups)this.groups.hasOwnProperty(i)&&(1!=this.groups[i].visible||void 0!==this.linegraphOptions.visibility[i]&&1!=this.linegraphOptions.visibility[i]||e++);if(0==this.amountOfGroups||0==e)this.hide();else{this.show(),this.height=Number(this.linegraphSVG.style.height.replace("px","")),this.dom.lineContainer.style.height=this.height+"px",this.width=1==this.options.visible?Number((""+this.options.width).replace("px","")):0;var s=this.props,o=this.dom.frame;o.className="dataaxis",this._calculateCharSize();var n=this.options.orientation,r=this.options.showMinorLabels,a=this.options.showMajorLabels;s.minorLabelHeight=r?s.minorCharHeight:0,s.majorLabelHeight=a?s.majorCharHeight:0,s.minorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.minorLinesOffset,s.minorLineHeight=1,s.majorLineWidth=this.body.dom.backgroundHorizontal.offsetWidth-this.lineOffset-this.width+2*this.options.majorLinesOffset,s.majorLineHeight=1,"left"==n?(o.style.top="0",o.style.left="0",o.style.bottom="",o.style.width=this.width+"px",o.style.height=this.height+"px"):(o.style.top="",o.style.bottom="0",o.style.left="0",o.style.width=this.width+"px",o.style.height=this.height+"px"),t=this._redrawLabels(),1==this.options.icons?this._redrawGroupIcons():this._cleanupIcons(),this._redrawTitle(n)}return t},s.prototype._redrawLabels=function(){n.prepareElements(this.DOMelements.lines),n.prepareElements(this.DOMelements.labels);var t=this.options.orientation,e=this.master?this.props.majorCharHeight||10:this.stepPixelsForced,i=new a(this.range.start,this.range.end,e,this.dom.frame.offsetHeight,this.options.customRange[this.options.orientation],0==this.master&&this.options.alignZeros);this.step=i;var s=(this.dom.frame.offsetHeight-i.deadSpace*(this.dom.frame.offsetHeight/i.marginRange))/((i.marginRange-i.deadSpace)/i.step);this.stepPixels=s;var o=this.height/s,r=0;if(0==this.master){s=this.stepPixelsForced,r=Math.round(this.dom.frame.offsetHeight/s-o);for(var h=0;.5*r>h;h++)i.previous();if(o=this.height/s,-1!=this.zeroCrossing&&1==this.options.alignZeros){var d=i.marginEnd/i.step-this.zeroCrossing;if(d>0)for(var h=0;d>h;h++)i.next();else if(0>d)for(var h=0;-d>h;h++)i.previous()}}else o+=.25;this.valueAtZero=i.marginEnd;var l,c=0,p=1;void 0!==this.options.format[t]&&(l=this.options.format[t].decimals),this.maxLabelSize=0;for(var u=0;p=0&&this._redrawLabel(u-2,i.getCurrent(l),t,"yAxis major",this.props.majorCharHeight),this._redrawLine(u,t,"grid horizontal major",this.options.majorLinesOffset,this.props.majorLineWidth)):this._redrawLine(u,t,"grid horizontal minor",this.options.minorLinesOffset,this.props.minorLineWidth),1==this.master&&0==i.current&&(this.zeroCrossing=p),p++}this.conversionFactor=0==this.master?u/(this.valueAtZero-i.current):this.dom.frame.offsetHeight/i.marginRange;var f=0;void 0!==this.options.title[t]&&void 0!==this.options.title[t].text&&(f=this.props.titleCharHeight);var g=1==this.options.icons?Math.max(this.options.iconWidth,f)+this.options.labelOffsetX+15:f+this.options.labelOffsetX+15;return this.maxLabelSize>this.width-g&&1==this.options.visible?(this.width=this.maxLabelSize+g,this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):this.maxLabelSizethis.minWidth?(this.width=Math.max(this.minWidth,this.maxLabelSize+g),this.options.width=this.width+"px",n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),this.redraw(),!0):(n.cleanupElements(this.DOMelements.lines),n.cleanupElements(this.DOMelements.labels),!1)},s.prototype.convertValue=function(t){var e=this.valueAtZero-t,i=e*this.conversionFactor;return i},s.prototype._redrawLabel=function(t,e,i,s,o){var r=n.getDOMElement("div",this.DOMelements.labels,this.dom.frame);r.className=s,r.innerHTML=e,"left"==i?(r.style.left="-"+this.options.labelOffsetX+"px",r.style.textAlign="right"):(r.style.right="-"+this.options.labelOffsetX+"px",r.style.textAlign="left"),r.style.top=t-.5*o+this.options.labelOffsetY+"px",e+="";var a=Math.max(this.props.majorCharWidth,this.props.minorCharWidth);this.maxLabelSized;d++){var c=this.visibleItems[d];c.repositionY(e)}return s},s.prototype._calculateHeight=function(t){var e,i=this.visibleItems;this.resetSubgroups();var s=this;if(i.length){var n=i[0].top,r=i[0].top+i[0].height;if(o.forEach(i,function(t){n=Math.min(n,t.top),r=Math.max(r,t.top+t.height),void 0!==t.data.subgroup&&(s.subgroups[t.data.subgroup].height=Math.max(s.subgroups[t.data.subgroup].height,t.height),s.subgroups[t.data.subgroup].visible=!0)}),n>t.axis){var a=n-t.axis;r-=a,o.forEach(i,function(t){t.top-=a})}e=r+t.item.vertical/2}else e=t.axis+t.item.vertical;return e=Math.max(e,this.props.label.height)},s.prototype.show=function(){this.dom.label.parentNode||this.itemSet.dom.labelSet.appendChild(this.dom.label),this.dom.foreground.parentNode||this.itemSet.dom.foreground.appendChild(this.dom.foreground),this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background),this.dom.axis.parentNode||this.itemSet.dom.axis.appendChild(this.dom.axis)},s.prototype.hide=function(){var t=this.dom.label;t.parentNode&&t.parentNode.removeChild(t);var e=this.dom.foreground;e.parentNode&&e.parentNode.removeChild(e);var i=this.dom.background;i.parentNode&&i.parentNode.removeChild(i);var s=this.dom.axis;s.parentNode&&s.parentNode.removeChild(s)},s.prototype.add=function(t){if(this.items[t.id]=t,t.setParent(this),void 0!==t.data.subgroup&&(void 0===this.subgroups[t.data.subgroup]&&(this.subgroups[t.data.subgroup]={height:0,visible:!1,index:this.subgroupIndex,items:[]},this.subgroupIndex++),this.subgroups[t.data.subgroup].items.push(t)),this.orderSubgroups(),-1==this.visibleItems.indexOf(t)){var e=this.itemSet.body.range;this._checkIfVisible(t,this.visibleItems,e)}},s.prototype.orderSubgroups=function(){if(void 0!==this.subgroupOrderer){var t=[];if("string"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push({subgroup:e,sortField:this.subgroups[e].items[0].data[this.subgroupOrderer]});t.sort(function(t,e){return t.sortField-e.sortField})}else if("function"==typeof this.subgroupOrderer){for(var e in this.subgroups)t.push(this.subgroups[e].items[0].data);t.sort(this.subgroupOrderer)}if(t.length>0)for(var i=0;it?-1:l>=t?0:1 };if(e.length>0)for(n=0;nl}),1==this.checkRangedItems)for(this.checkRangedItems=!1,n=0;nl})}for(n=0;n=0&&(n=e[r],!o(n));r--)void 0===s[n.id]&&(s[n.id]=!0,i.push(n));for(r=t+1;rs;s++){var n=this.visibleItems[s];n.repositionY(e)}return i},s.prototype.show=function(){this.dom.background.parentNode||this.itemSet.dom.background.appendChild(this.dom.background)},t.exports=s},function(t,e,i){function s(t,e){this.body=t,this.defaultOptions={type:null,orientation:"bottom",align:"auto",stack:!0,groupOrder:null,selectable:!0,editable:{updateTime:!1,updateGroup:!1,add:!1,remove:!1},onAdd:function(t,e){e(t)},onUpdate:function(t,e){e(t)},onMove:function(t,e){e(t)},onRemove:function(t,e){e(t)},onMoving:function(t,e){e(t)},margin:{item:{horizontal:10,vertical:10},axis:20},padding:5},this.options=n.extend({},this.defaultOptions),this.itemOptions={type:{start:"Date",end:"Date"}},this.conversion={toScreen:t.util.toScreen,toTime:t.util.toTime},this.dom={},this.props={},this.hammer=null;var i=this;this.itemsData=null,this.groupsData=null,this.itemListeners={add:function(t,e){i._onAdd(e.items)},update:function(t,e){i._onUpdate(e.items)},remove:function(t,e){i._onRemove(e.items)}},this.groupListeners={add:function(t,e){i._onAddGroups(e.items)},update:function(t,e){i._onUpdateGroups(e.items)},remove:function(t,e){i._onRemoveGroups(e.items)}},this.items={},this.groups={},this.groupIds=[],this.selection=[],this.stackDirty=!0,this.touchParams={},this._create(),this.setOptions(e)}var o=i(45),n=i(1),r=i(3),a=i(4),h=i(20),d=i(25),l=i(26),c=i(33),p=i(34),u=i(35),m=i(32),f="__ungrouped__",g="__background__";s.prototype=new h,s.types={background:m,box:c,range:u,point:p},s.prototype._create=function(){var t=document.createElement("div");t.className="itemset",t["timeline-itemset"]=this,this.dom.frame=t;var e=document.createElement("div");e.className="background",t.appendChild(e),this.dom.background=e;var i=document.createElement("div");i.className="foreground",t.appendChild(i),this.dom.foreground=i;var s=document.createElement("div");s.className="axis",this.dom.axis=s;var n=document.createElement("div");n.className="labelset",this.dom.labelSet=n,this._updateUngrouped();var r=new l(g,null,this);r.show(),this.groups[g]=r,this.hammer=o(this.body.dom.centerContainer,{preventDefault:!0}),this.hammer.on("touch",this._onTouch.bind(this)),this.hammer.on("dragstart",this._onDragStart.bind(this)),this.hammer.on("drag",this._onDrag.bind(this)),this.hammer.on("dragend",this._onDragEnd.bind(this)),this.hammer.on("tap",this._onSelectItem.bind(this)),this.hammer.on("hold",this._onMultiSelectItem.bind(this)),this.hammer.on("doubletap",this._onAddItem.bind(this)),this.show()},s.prototype.setOptions=function(t){if(t){var e=["type","align","orientation","padding","stack","selectable","groupOrder","dataAttributes","template","hide"];n.selectiveExtend(e,this.options,t),"margin"in t&&("number"==typeof t.margin?(this.options.margin.axis=t.margin,this.options.margin.item.horizontal=t.margin,this.options.margin.item.vertical=t.margin):"object"==typeof t.margin&&(n.selectiveExtend(["axis"],this.options.margin,t.margin),"item"in t.margin&&("number"==typeof t.margin.item?(this.options.margin.item.horizontal=t.margin.item,this.options.margin.item.vertical=t.margin.item):"object"==typeof t.margin.item&&n.selectiveExtend(["horizontal","vertical"],this.options.margin.item,t.margin.item)))),"editable"in t&&("boolean"==typeof t.editable?(this.options.editable.updateTime=t.editable,this.options.editable.updateGroup=t.editable,this.options.editable.add=t.editable,this.options.editable.remove=t.editable):"object"==typeof t.editable&&n.selectiveExtend(["updateTime","updateGroup","add","remove"],this.options.editable,t.editable));var i=function(e){var i=t[e];if(i){if(!(i instanceof Function))throw new Error("option "+e+" must be a function "+e+"(item, callback)");this.options[e]=i}}.bind(this);["onAdd","onUpdate","onRemove","onMove","onMoving"].forEach(i),this.markDirty()}},s.prototype.markDirty=function(){this.groupIds=[],this.stackDirty=!0},s.prototype.destroy=function(){this.hide(),this.setItems(null),this.setGroups(null),this.hammer=null,this.body=null,this.conversion=null},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame),this.dom.axis.parentNode&&this.dom.axis.parentNode.removeChild(this.dom.axis),this.dom.labelSet.parentNode&&this.dom.labelSet.parentNode.removeChild(this.dom.labelSet)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame),this.dom.axis.parentNode||this.body.dom.backgroundVertical.appendChild(this.dom.axis),this.dom.labelSet.parentNode||this.body.dom.left.appendChild(this.dom.labelSet)},s.prototype.setSelection=function(t){var e,i,s,o;for(void 0==t&&(t=[]),Array.isArray(t)||(t=[t]),e=0,i=this.selection.length;i>e;e++)s=this.selection[e],o=this.items[s],o&&o.unselect();for(this.selection=[],e=0,i=t.length;i>e;e++)s=t[e],o=this.items[s],o&&(this.selection.push(s),o.select())},s.prototype.getSelection=function(){return this.selection.concat([])},s.prototype.getVisibleItems=function(){var t=this.body.range.getRange(),e=this.body.util.toScreen(t.start),i=this.body.util.toScreen(t.end),s=[];for(var o in this.groups)if(this.groups.hasOwnProperty(o))for(var n=this.groups[o],r=n.visibleItems,a=0;ae&&s.push(h.id)}return s},s.prototype._deselect=function(t){for(var e=this.selection,i=0,s=e.length;s>i;i++)if(e[i]==t){e.splice(i,1);break}},s.prototype.redraw=function(){var t=this.options.margin,e=this.body.range,i=n.option.asSize,s=this.options,o=s.orientation,r=!1,a=this.dom.frame,h=s.editable.updateTime||s.editable.updateGroup;this.props.top=this.body.domProps.top.height+this.body.domProps.border.top,this.props.left=this.body.domProps.left.width+this.body.domProps.border.left,a.className="itemset"+(h?" editable":""),r=this._orderGroups()||r;var d=e.end-e.start,l=d!=this.lastVisibleInterval||this.props.width!=this.props.lastWidth;l&&(this.stackDirty=!0),this.lastVisibleInterval=d,this.props.lastWidth=this.props.width;var c=this.stackDirty,p=this._firstGroup(),u={item:t.item,axis:t.axis},m={item:t.item,axis:t.item.vertical/2},f=0,v=t.axis+t.item.vertical;return this.groups[g].redraw(e,m,c),n.forEach(this.groups,function(t){var i=t==p?u:m,s=t.redraw(e,i,c);r=s||r,f+=t.height}),f=Math.max(f,v),this.stackDirty=!1,a.style.height=i(f),this.props.width=a.offsetWidth,this.props.height=f,this.dom.axis.style.top=i("top"==o?this.body.domProps.top.height+this.body.domProps.border.top:this.body.domProps.top.height+this.body.domProps.centerContainer.height),this.dom.axis.style.left="0",r=this._isResized()||r},s.prototype._firstGroup=function(){var t="top"==this.options.orientation?0:this.groupIds.length-1,e=this.groupIds[t],i=this.groups[e]||this.groups[f];return i||null},s.prototype._updateUngrouped=function(){{var t,e,i=this.groups[f];this.groups[g]}if(this.groupsData){if(i){i.hide(),delete this.groups[f];for(e in this.items)if(this.items.hasOwnProperty(e)){t=this.items[e],t.parent&&t.parent.remove(t);var s=this._getGroupId(t.data),o=this.groups[s];o&&o.add(t)||t.hide()}}}else if(!i){var n=null,r=null;i=new d(n,r,this),this.groups[f]=i;for(e in this.items)this.items.hasOwnProperty(e)&&(t=this.items[e],i.add(t));i.show()}},s.prototype.getLabelSet=function(){return this.dom.labelSet},s.prototype.setItems=function(t){var e,i=this,s=this.itemsData;if(t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.itemsData=t}else this.itemsData=null;if(s&&(n.forEach(this.itemListeners,function(t,e){s.off(e,t)}),e=s.getIds(),this._onRemove(e)),this.itemsData){var o=this.id;n.forEach(this.itemListeners,function(t,e){i.itemsData.on(e,t,o)}),e=this.itemsData.getIds(),this._onAdd(e),this._updateUngrouped()}},s.prototype.getItems=function(){return this.itemsData},s.prototype.setGroups=function(t){var e,i=this;if(this.groupsData&&(n.forEach(this.groupListeners,function(t,e){i.groupsData.unsubscribe(e,t)}),e=this.groupsData.getIds(),this.groupsData=null,this._onRemoveGroups(e)),t){if(!(t instanceof r||t instanceof a))throw new TypeError("Data must be an instance of DataSet or DataView");this.groupsData=t}else this.groupsData=null;if(this.groupsData){var s=this.id;n.forEach(this.groupListeners,function(t,e){i.groupsData.on(e,t,s)}),e=this.groupsData.getIds(),this._onAddGroups(e)}this._updateUngrouped(),this._order(),this.body.emitter.emit("change",{queue:!0})},s.prototype.getGroups=function(){return this.groupsData},s.prototype.removeItem=function(t){var e=this.itemsData.get(t),i=this.itemsData.getDataSet();e&&this.options.onRemove(e,function(e){e&&i.remove(t)})},s.prototype._getType=function(t){return t.type||this.options.type||(t.end?"range":"box")},s.prototype._getGroupId=function(t){var e=this._getType(t);return"background"==e&&void 0==t.group?g:this.groupsData?t.group:f},s.prototype._onUpdate=function(t){var e=this;t.forEach(function(t){var i=e.itemsData.get(t,e.itemOptions),o=e.items[t],n=e._getType(i),r=s.types[n];if(o&&(r&&o instanceof r?e._updateItem(o,i):(e._removeItem(o),o=null)),!o){if(!r)throw new TypeError("rangeoverflow"==n?'Item type "rangeoverflow" is deprecated. Use css styling instead: .vis.timeline .item.range .content {overflow: visible;}':'Unknown item type "'+n+'"');o=new r(i,e.conversion,e.options),o.id=t,e._addItem(o)}}),this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0})},s.prototype._onAdd=s.prototype._onUpdate,s.prototype._onRemove=function(t){var e=0,i=this;t.forEach(function(t){var s=i.items[t];s&&(e++,i._removeItem(s))}),e&&(this._order(),this.stackDirty=!0,this.body.emitter.emit("change",{queue:!0}))},s.prototype._order=function(){n.forEach(this.groups,function(t){t.order()})},s.prototype._onUpdateGroups=function(t){this._onAddGroups(t)},s.prototype._onAddGroups=function(t){var e=this;t.forEach(function(t){var i=e.groupsData.get(t),s=e.groups[t];if(s)s.setData(i);else{if(t==f||t==g)throw new Error("Illegal group id. "+t+" is a reserved id.");var o=Object.create(e.options);n.extend(o,{height:null}),s=new d(t,i,e),e.groups[t]=s;for(var r in e.items)if(e.items.hasOwnProperty(r)){var a=e.items[r];a.data.group==t&&s.add(a)}s.order(),s.show()}}),this.body.emitter.emit("change",{queue:!0})},s.prototype._onRemoveGroups=function(t){var e=this.groups;t.forEach(function(t){var i=e[t];i&&(i.hide(),delete e[t])}),this.markDirty(),this.body.emitter.emit("change",{queue:!0})},s.prototype._orderGroups=function(){if(this.groupsData){var t=this.groupsData.getIds({order:this.options.groupOrder}),e=!n.equalArray(t,this.groupIds);if(e){var i=this.groups;t.forEach(function(t){i[t].hide()}),t.forEach(function(t){i[t].show()}),this.groupIds=t}return e}return!1},s.prototype._addItem=function(t){this.items[t.id]=t;var e=this._getGroupId(t.data),i=this.groups[e];i&&i.add(t)},s.prototype._updateItem=function(t,e){var i=t.data.group;if(t.setData(e),i!=t.data.group){var s=this.groups[i];s&&s.remove(t);var o=this._getGroupId(t.data),n=this.groups[o];n&&n.add(t)}},s.prototype._removeItem=function(t){t.hide(),delete this.items[t.id];var e=this.selection.indexOf(t.id);-1!=e&&this.selection.splice(e,1),t.parent&&t.parent.remove(t)},s.prototype._constructByEndArray=function(t){for(var e=[],i=0;i0||o.length>0)&&this.body.emitter.emit("select",{items:a})}},s.prototype._onAddItem=function(t){if(this.options.selectable&&this.options.editable.add){var e=this,i=this.body.util.snap||null,o=s.itemFromTarget(t);if(o){var r=e.itemsData.get(o.id);this.options.onUpdate(r,function(t){t&&e.itemsData.getDataSet().update(t)})}else{var a=n.getAbsoluteLeft(this.dom.frame),h=t.gesture.center.pageX-a,d=this.body.util.toTime(h),l={start:i?i(d):d,content:"new item"};if("range"===this.options.type){var c=this.body.util.toTime(h+this.props.width/5);l.end=i?i(c):c}l[this.itemsData._fieldId]=n.randomUUID();var p=s.groupFromTarget(t);p&&(l.group=p.groupId),this.options.onAdd(l,function(t){t&&e.itemsData.getDataSet().add(t)})}}},s.prototype._onMultiSelectItem=function(t){if(this.options.selectable){var e,i=s.itemFromTarget(t);if(i){e=this.getSelection();var o=t.gesture.touches[0]&&t.gesture.touches[0].shiftKey||!1;if(o){e.push(i.id);var n=s._getItemRange(this.itemsData.get(e,this.itemOptions));e=[];for(var r in this.items)if(this.items.hasOwnProperty(r)){var a=this.items[r],h=a.data.start,d=void 0!==a.data.end?a.data.end:h;h>=n.min&&d<=n.max&&e.push(a.id)}}else{var l=e.indexOf(i.id);-1==l?e.push(i.id):e.splice(l,1)}this.setSelection(e),this.body.emitter.emit("select",{items:this.getSelection()})}}},s._getItemRange=function(t){var e=null,i=null;return t.forEach(function(t){(null==i||t.starte)&&(e=t.end):(null==e||t.start>e)&&(e=t.start)}),{min:i,max:e}},s.itemFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-item"))return e["timeline-item"];e=e.parentNode}return null},s.groupFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-group"))return e["timeline-group"];e=e.parentNode}return null},s.itemSetFromTarget=function(t){for(var e=t.target;e;){if(e.hasOwnProperty("timeline-itemset"))return e["timeline-itemset"];e=e.parentNode}return null},t.exports=s},function(t,e,i){function s(t,e,i,s){this.body=t,this.defaultOptions={enabled:!0,icons:!0,iconSize:20,iconSpacing:6,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-left"}},this.side=i,this.options=o.extend({},this.defaultOptions),this.linegraphOptions=s,this.svgElements={},this.dom={},this.groups={},this.amountOfGroups=0,this._create(),this.setOptions(e)}var o=i(1),n=i(2),r=i(20);s.prototype=new r,s.prototype.clear=function(){this.groups={},this.amountOfGroups=0},s.prototype.addGroup=function(t,e){this.groups.hasOwnProperty(t)||(this.groups[t]=e),this.amountOfGroups+=1},s.prototype.updateGroup=function(t,e){this.groups[t]=e},s.prototype.removeGroup=function(t){this.groups.hasOwnProperty(t)&&(delete this.groups[t],this.amountOfGroups-=1)},s.prototype._create=function(){this.dom.frame=document.createElement("div"),this.dom.frame.className="legend",this.dom.frame.style.position="absolute",this.dom.frame.style.top="10px",this.dom.frame.style.display="block",this.dom.textArea=document.createElement("div"),this.dom.textArea.className="legendText",this.dom.textArea.style.position="relative",this.dom.textArea.style.top="0px",this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="absolute",this.svg.style.top="0px",this.svg.style.width=this.options.iconSize+5+"px",this.svg.style.height="100%",this.dom.frame.appendChild(this.svg),this.dom.frame.appendChild(this.dom.textArea)},s.prototype.hide=function(){this.dom.frame.parentNode&&this.dom.frame.parentNode.removeChild(this.dom.frame)},s.prototype.show=function(){this.dom.frame.parentNode||this.body.dom.center.appendChild(this.dom.frame)},s.prototype.setOptions=function(t){var e=["enabled","orientation","icons","left","right"];o.selectiveDeepExtend(e,this.options,t)},s.prototype.redraw=function(){var t=0;for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||t++);if(0==this.options[this.side].visible||0==this.amountOfGroups||0==this.options.enabled||0==t)this.hide();else{if(this.show(),"top-left"==this.options[this.side].position||"bottom-left"==this.options[this.side].position?(this.dom.frame.style.left="4px",this.dom.frame.style.textAlign="left",this.dom.textArea.style.textAlign="left",this.dom.textArea.style.left=this.options.iconSize+15+"px",this.dom.textArea.style.right="",this.svg.style.left="0px",this.svg.style.right=""):(this.dom.frame.style.right="4px",this.dom.frame.style.textAlign="right",this.dom.textArea.style.textAlign="right",this.dom.textArea.style.right=this.options.iconSize+15+"px",this.dom.textArea.style.left="",this.svg.style.right="0px",this.svg.style.left=""),"top-left"==this.options[this.side].position||"top-right"==this.options[this.side].position)this.dom.frame.style.top=4-Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.bottom="";else{var i=this.body.domProps.center.height-this.body.domProps.centerContainer.height;this.dom.frame.style.bottom=4+i+Number(this.body.dom.center.style.top.replace("px",""))+"px",this.dom.frame.style.top=""}0==this.options.icons?(this.dom.frame.style.width=this.dom.textArea.offsetWidth+10+"px",this.dom.textArea.style.right="",this.dom.textArea.style.left="",this.svg.style.width="0px"):(this.dom.frame.style.width=this.options.iconSize+15+this.dom.textArea.offsetWidth+10+"px",this.drawLegendIcons());var s="";for(var e in this.groups)this.groups.hasOwnProperty(e)&&(1!=this.groups[e].visible||void 0!==this.linegraphOptions.visibility[e]&&1!=this.linegraphOptions.visibility[e]||(s+=this.groups[e].content+"
"));this.dom.textArea.innerHTML=s,this.dom.textArea.style.lineHeight=.75*this.options.iconSize+this.options.iconSpacing+"px"}},s.prototype.drawLegendIcons=function(){if(this.dom.frame.parentNode){n.prepareElements(this.svgElements);var t=window.getComputedStyle(this.dom.frame).paddingTop,e=Number(t.replace("px","")),i=e,s=this.options.iconSize,o=.75*this.options.iconSize,r=e+.5*o+3;this.svg.style.width=s+5+e+"px";for(var a in this.groups)this.groups.hasOwnProperty(a)&&(1!=this.groups[a].visible||void 0!==this.linegraphOptions.visibility[a]&&1!=this.linegraphOptions.visibility[a]||(this.groups[a].drawIcon(i,r,this.svgElements,this.svg,s,o),r+=o+this.options.iconSpacing));n.cleanupElements(this.svgElements)}},t.exports=s},function(t,e,i){function s(t,e){this.id=o.randomUUID(),this.body=t,this.defaultOptions={yAxisOrientation:"left",defaultGroup:"default",sort:!0,sampling:!0,graphHeight:"400px",shaded:{enabled:!1,orientation:"bottom"},style:"line",barChart:{width:50,handleOverlap:"overlap",align:"center"},catmullRom:{enabled:!0,parametrization:"centripetal",alpha:.5},drawPoints:{enabled:!0,size:6,style:"square"},dataAxis:{showMinorLabels:!0,showMajorLabels:!0,icons:!1,width:"40px",visible:!0,alignZeros:!0,customRange:{left:{min:void 0,max:void 0},right:{min:void 0,max:void 0}}},legend:{enabled:!1,icons:!0,left:{visible:!0,position:"top-left"},right:{visible:!0,position:"top-right"}},groups:{visibility:{}}},this.options=o.extend({},this.defaultOptions),this.dom={},this.props={},this.hammer=null,this.groups={},this.abortedGraphUpdate=!1,this.autoSizeSVG=!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.width),i.redraw.call(i,!0)}),this._create(),this.framework={svg:this.svg,svgElements:this.svgElements,options:this.options,groups:this.groups},this.body.emitter.emit("change")}var o=i(1),n=i(2),r=i(3),a=i(4),h=i(20),d=i(23),l=i(24),c=i(28),p=i(52),u="__ungrouped__";s.prototype=new h,s.prototype._create=function(){var t=document.createElement("div");t.className="LineGraph",this.dom.frame=t,this.svg=document.createElementNS("http://www.w3.org/2000/svg","svg"),this.svg.style.position="relative",this.svg.style.height=(""+this.options.graphHeight).replace("px","")+"px",this.svg.style.display="block",t.appendChild(this.svg),this.options.dataAxis.orientation="left",this.yAxisLeft=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),this.options.dataAxis.orientation="right",this.yAxisRight=new d(this.body,this.options.dataAxis,this.svg,this.options.groups),delete this.options.dataAxis.orientation,this.legendLeft=new c(this.body,this.options.legend,"left",this.options.groups),this.legendRight=new c(this.body,this.options.legend,"right",this.options.groups),this.show()},s.prototype.setOptions=function(t){if(t){var e=["sampling","defaultGroup","graphHeight","yAxisOrientation","style","barChart","dataAxis","sort","groups"];void 0===t.graphHeight&&void 0!==t.height&&void 0!==this.body.domProps.centerContainer.height?this.autoSizeSVG=!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;nc;){c++;var p=h.getCurrent(),u=this.body.util.toScreen(p),m=h.isMajor();this.options.showMinorLabels&&this._repaintMinorText(u,h.getLabelMinor(),t),m&&this.options.showMajorLabels?(u>0&&(void 0==l&&(l=u),this._repaintMajorText(u,h.getLabelMajor(),t)),this._repaintMajorLine(u,t)):this._repaintMinorLine(u,t),h.next()}if(this.options.showMajorLabels){var f=this.body.util.toTime(0),g=h.getLabelMajor(f),v=g.length*(this.props.majorCharWidth||10)+10;(void 0==l||l>v)&&this._repaintMajorText(0,g,t)}o.forEach(this.dom.redundant,function(t){for(;t.length;){var e=t.pop();e&&e.parentNode&&e.parentNode.removeChild(e)}})},s.prototype._repaintMinorText=function(t,e,i){var s=this.dom.redundant.minorTexts.shift();if(!s){var o=document.createTextNode("");s=document.createElement("div"),s.appendChild(o),s.className="text minor",this.dom.foreground.appendChild(s)}this.dom.minorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?this.props.majorLabelHeight+"px":"0",s.style.left=t+"px"},s.prototype._repaintMajorText=function(t,e,i){var s=this.dom.redundant.majorTexts.shift();if(!s){var o=document.createTextNode(e);s=document.createElement("div"),s.className="text major",s.appendChild(o),this.dom.foreground.appendChild(s)}this.dom.majorTexts.push(s),s.childNodes[0].nodeValue=e,s.style.top="top"==i?"0":this.props.minorLabelHeight+"px",s.style.left=t+"px"},s.prototype._repaintMinorLine=function(t,e){var i=this.dom.redundant.minorLines.shift();i||(i=document.createElement("div"),i.className="grid vertical minor",this.dom.background.appendChild(i)),this.dom.minorLines.push(i);var s=this.props;i.style.top="top"==e?s.majorLabelHeight+"px":this.body.domProps.top.height+"px",i.style.height=s.minorLineHeight+"px",i.style.left=t-s.minorLineWidth/2+"px"},s.prototype._repaintMajorLine=function(t,e){var i=this.dom.redundant.majorLines.shift();i||(i=document.createElement("DIV"),i.className="grid vertical major",this.dom.background.appendChild(i)),this.dom.majorLines.push(i);var s=this.props;i.style.top="top"==e?"0":this.body.domProps.top.height+"px",i.style.left=t-s.majorLineWidth/2+"px",i.style.height=s.majorLineHeight+"px"},s.prototype._calculateCharSize=function(){this.dom.measureCharMinor||(this.dom.measureCharMinor=document.createElement("DIV"),this.dom.measureCharMinor.className="text minor measure",this.dom.measureCharMinor.style.position="absolute",this.dom.measureCharMinor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMinor)),this.props.minorCharHeight=this.dom.measureCharMinor.clientHeight,this.props.minorCharWidth=this.dom.measureCharMinor.clientWidth,this.dom.measureCharMajor||(this.dom.measureCharMajor=document.createElement("DIV"),this.dom.measureCharMajor.className="text major measure",this.dom.measureCharMajor.style.position="absolute",this.dom.measureCharMajor.appendChild(document.createTextNode("0")),this.dom.foreground.appendChild(this.dom.measureCharMajor)),this.props.majorCharHeight=this.dom.measureCharMajor.clientHeight,this.props.majorCharWidth=this.dom.measureCharMajor.clientWidth},s.prototype.snap=function(t){return this.step.snap(t)},t.exports=s},function(t,e,i){function s(t,e,i){this.id=null,this.parent=null,this.data=t,this.dom=null,this.conversion=e||{},this.options=i||{},this.selected=!1,this.displayed=!1,this.dirty=!0,this.top=null,this.left=null,this.width=null,this.height=null}var o=i(45),n=i(1);s.prototype.stack=!0,s.prototype.select=function(){this.selected=!0,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.unselect=function(){this.selected=!1,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setData=function(t){this.data=t,this.dirty=!0,this.displayed&&this.redraw()},s.prototype.setParent=function(t){this.displayed?(this.hide(),this.parent=t,this.parent&&this.show()):this.parent=t},s.prototype.isVisible=function(){return!1},s.prototype.show=function(){return!1},s.prototype.hide=function(){return!1},s.prototype.redraw=function(){},s.prototype.repositionX=function(){},s.prototype.repositionY=function(){},s.prototype._repaintDeleteButton=function(t){if(this.selected&&this.options.editable.remove&&!this.dom.deleteButton){var e=this,i=document.createElement("div");i.className="delete",i.title="Delete this item",o(i,{preventDefault:!0}).on("tap",function(t){e.parent.removeFromDataSet(e),t.stopPropagation()}),t.appendChild(i),this.dom.deleteButton=i}else!this.selected&&this.dom.deleteButton&&(this.dom.deleteButton.parentNode&&this.dom.deleteButton.parentNode.removeChild(this.dom.deleteButton),this.dom.deleteButton=null)},s.prototype._updateContents=function(t){var e;if(this.options.template){var i=this.parent.itemSet.itemsData.get(this.id);e=this.options.template(i)}else e=this.data.content;if(e!==this.content){if(e instanceof Element)t.innerHTML="",t.appendChild(e);else if(void 0!=e)t.innerHTML=e;else if("background"!=this.data.type||void 0!==this.data.content)throw new Error('Property "content" missing in item '+this.id);this.content=e}},s.prototype._updateTitle=function(t){null!=this.data.title?t.title=this.data.title||"":t.removeAttribute("title")},s.prototype._updateDataAttributes=function(t){if(this.options.dataAttributes&&this.options.dataAttributes.length>0){var e=[];if(Array.isArray(this.options.dataAttributes))e=this.options.dataAttributes;else{if("all"!=this.options.dataAttributes)return;e=Object.keys(this.data)}for(var i=0;it.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.background;if(!e)throw new Error("Cannot redraw item: parent has no background container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.content),this._updateDataAttributes(this.dom.content),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.props.content.width=this.dom.content.offsetWidth,this.height=0,this.dirty=!1}},s.prototype.show=r.prototype.show,s.prototype.hide=r.prototype.hide,s.prototype.repositionX=r.prototype.repositionX,s.prototype.repositionY=function(t){var e="top"===this.options.orientation;this.dom.content.style.top=e?"":"0",this.dom.content.style.bottom=e?"0":"";var i;if(void 0!==this.data.subgroup){var s=this.data.subgroup,o=this.parent.subgroups,r=o[s].index;if(1==e){i=this.parent.subgroups[s].height+t.item.vertical,i+=0==r?t.axis-.5*t.item.vertical:0;var a=this.parent.top;for(var h in o)o.hasOwnProperty(h)&&1==o[h].visible&&o[h].indexr&&(a+=o[h].height+t.item.vertical);i=this.parent.subgroups[s].height+t.item.vertical,this.dom.box.style.top=a+"px",this.dom.box.style.bottom=""}}else this.parent instanceof n?(i=Math.max(this.parent.height,this.parent.itemSet.body.domProps.center.height,this.parent.itemSet.body.domProps.centerContainer.height),this.dom.box.style.top=e?"0":"",this.dom.box.style.bottom=e?"":"0"):(i=this.parent.height,this.dom.box.style.top=this.parent.top+"px",this.dom.box.style.bottom="");this.dom.box.style.height=i+"px"},t.exports=s},function(t,e,i){function s(t,e,i){if(this.props={dot:{width:0,height:0},line:{width:0,height:0}},t&&void 0==t.start)throw new Error('Property "start" missing in item '+t);o.call(this,t,e,i)}{var o=i(31);i(1)}s.prototype=new o(null,null,null),s.prototype.isVisible=function(t){var e=(t.end-t.start)/4;return this.data.start>t.start-e&&this.data.startt.start-e&&this.data.startt.start},s.prototype.redraw=function(){var t=this.dom;if(t||(this.dom={},t=this.dom,t.box=document.createElement("div"),t.content=document.createElement("div"),t.content.className="content",t.box.appendChild(t.content),t.box["timeline-item"]=this,this.dirty=!0),!this.parent)throw new Error("Cannot redraw item: no parent attached");if(!t.box.parentNode){var e=this.parent.dom.foreground;if(!e)throw new Error("Cannot redraw item: parent has no foreground container element");e.appendChild(t.box)}if(this.displayed=!0,this.dirty){this._updateContents(this.dom.content),this._updateTitle(this.dom.box),this._updateDataAttributes(this.dom.box),this._updateStyle(this.dom.box);var i=(this.data.className?" "+this.data.className:"")+(this.selected?" selected":"");t.box.className=this.baseClassName+i,this.overflow="hidden"!==window.getComputedStyle(t.content).overflow,this.dom.content.style.maxWidth="none",this.props.content.width=this.dom.content.offsetWidth,this.height=this.dom.box.offsetHeight,this.dom.content.style.maxWidth="",this.dirty=!1}this._repaintDeleteButton(t.box),this._repaintDragLeft(),this._repaintDragRight()},s.prototype.show=function(){this.displayed||this.redraw()},s.prototype.hide=function(){if(this.displayed){var t=this.dom.box;t.parentNode&&t.parentNode.removeChild(t),this.top=null,this.left=null,this.displayed=!1}},s.prototype.repositionX=function(){var t,e,i=this.parent.width,s=this.conversion.toScreen(this.data.start),o=this.conversion.toScreen(this.data.end);-i>s&&(s=-i),o>2*i&&(o=2*i);var n=Math.max(o-s,1);switch(this.overflow?(this.left=s,this.width=n+this.props.content.width,e=this.props.content.width):(this.left=s,this.width=n,e=Math.min(o-s-2*this.options.padding,this.props.content.width)),this.dom.box.style.left=this.left+"px",this.dom.box.style.width=n+"px",this.options.align){case"left":this.dom.content.style.left="0";break;case"right":this.dom.content.style.left=Math.max(n-e-2*this.options.padding,0)+"px";break;case"center":this.dom.content.style.left=Math.max((n-e-2*this.options.padding)/2,0)+"px";break;default:t=this.overflow?o>0?Math.max(-s,0):-e:0>s?Math.min(-s,o-s-e-2*this.options.padding):0,this.dom.content.style.left=t+"px"}},s.prototype.repositionY=function(){var t=this.options.orientation,e=this.dom.box;e.style.top="top"==t?this.top+"px":this.parent.height-this.top-this.height+"px"},s.prototype._repaintDragLeft=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragLeft){var t=document.createElement("div");t.className="drag-left",t.dragLeftItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragLeft=t}else!this.selected&&this.dom.dragLeft&&(this.dom.dragLeft.parentNode&&this.dom.dragLeft.parentNode.removeChild(this.dom.dragLeft),this.dom.dragLeft=null)},s.prototype._repaintDragRight=function(){if(this.selected&&this.options.editable.updateTime&&!this.dom.dragRight){var t=document.createElement("div");t.className="drag-right",t.dragRightItem=this,o(t,{preventDefault:!0}).on("drag",function(){}),this.dom.box.appendChild(t),this.dom.dragRight=t}else!this.selected&&this.dom.dragRight&&(this.dom.dragRight.parentNode&&this.dom.dragRight.parentNode.removeChild(this.dom.dragRight),this.dom.dragRight=null)},t.exports=s},function(t,e,i){function s(t,e,i){if(!(this instanceof s))throw new SyntaxError("Constructor must be called with the new operator");this._initializeMixinLoaders(),this.containerElement=t,this.renderRefreshRate=60,this.renderTimestep=1e3/this.renderRefreshRate,this.renderTime=.5*this.renderTimestep,this.maxPhysicsTicksPerRender=3,this.physicsDiscreteStepsize=.5,this.initializing=!0,this.triggerFunctions={add:null,edit:null,editEdge:null,connect:null,del:null},this.defaultOptions={nodes:{mass:1,radiusMin:10,radiusMax:30,radius:10,shape:"ellipse",image:void 0,widthMin:16,widthMax:64,fontColor:"black",fontSize:14,fontFace:"verdana",fontFill:void 0,level:-1,color:{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},borderColor:"#2B7CE9",backgroundColor:"#97C2FC",highlightColor:"#D2E5FF",group:void 0,borderWidth:1,borderWidthSelected:void 0},edges:{widthMin:1,widthMax:15,width:1,widthSelectionMultiplier:2,hoverWidth:1.5,style:"line",color:{color:"#848484",highlight:"#848484",hover:"#848484"},fontColor:"#343434",fontSize:14,fontFace:"arial",fontFill:"white",arrowScaleFactor:1,dash:{length:10,gap:5,altLength:void 0},inheritColor:"from"},configurePhysics:!1,physics:{barnesHut:{enabled:!0,theta:1/.6,gravitationalConstant:-2e3,centralGravity:.3,springLength:95,springConstant:.04,damping:.09},repulsion:{centralGravity:0,springLength:200,springConstant:.05,nodeDistance:100,damping:.09},hierarchicalRepulsion:{enabled:!1,centralGravity:0,springLength:100,springConstant:.01,nodeDistance:150,damping:.09},damping:null,centralGravity:null,springLength:null,springConstant:null},clustering:{enabled:!1,initialMaxNodes:100,clusterThreshold:500,reduceToNodes:300,chainThreshold:.4,clusterEdgeThreshold:20,sectorThreshold:100,screenSizeThreshold:.2,fontSizeMultiplier:4,maxFontSize:1e3,forceAmplification:.1,distanceAmplification:.1,edgeGrowth:20,nodeScaling:{width:1,height:1,radius:1},maxNodeSizeIncrements:600,activeAreaBoxSize:80,clusterLevelDifference:2},navigation:{enabled:!1},keyboard:{enabled:!1,speed:{x:10,y:10,zoom:.02}},dataManipulation:{enabled:!1,initiallyVisible:!1},hierarchicalLayout:{enabled:!1,levelSeparation:150,nodeSpacing:100,direction:"UD",layout:"hubsize"},freezeForStabilization:!1,smoothCurves:{enabled:!0,dynamic:!0,type:"continuous",roundness:.5},maxVelocity:30,minVelocity:.1,stabilize:!0,stabilizationIterations:1e3,locale:"en",locales:_,tooltip:{delay:300,fontColor:"black",fontSize:14,fontFace:"verdana",color:{border:"#666",background:"#FFFFC6"}},dragNetwork:!0,dragNodes:!0,zoomable:!0,hover:!1,hideEdgesOnDrag:!1,hideNodesOnDrag:!1,width:"100%",height:"100%",selectable:!0},this.constants=a.extend({},this.defaultOptions),this.pixelRatio=1,this.hoverObj={nodes:{},edges:{}},this.controlNodesActive=!1,this.navigationHammers={existing:[],_new:[]},this.animationSpeed=1/this.renderRefreshRate,this.animationEasingFunction="easeInOutQuint",this.easingTime=0,this.sourceScale=0,this.targetScale=0,this.sourceTranslation=0,this.targetTranslation=0,this.lockedOnNodeId=null,this.lockedOnNodeOffset=null,this.touchTime=0;var o=this;this.groups=new u,this.images=new m,this.images.setOnloadCallback(function(){o._redraw()}),this.xIncrement=0,this.yIncrement=0,this.zoomIncrement=0,this._loadPhysicsSystem(),this._create(),this._loadSectorSystem(),this._loadClusterSystem(),this._loadSelectionSystem(),this._loadHierarchySystem(),this._setTranslation(this.frame.clientWidth/2,this.frame.clientHeight/2),this._setScale(1),this.setOptions(i),this.freezeSimulation=!1,this.cachedFunctions={},this.startedStabilization=!1,this.stabilized=!1,this.stabilizationIterations=null,this.draggingNodes=!1,this.calculationNodes={},this.calculationNodeIndices=[],this.nodeIndices=[],this.nodes={},this.edges={},this.canvasTopLeft={x:0,y:0},this.canvasBottomRight={x:0,y:0},this.pointerPosition={x:0,y:0},this.areaCenter={},this.scale=1,this.previousScale=this.scale,this.nodesData=null,this.edgesData=null,this.nodesListeners={add:function(t,e){o._addNodes(e.items),o.start()},update:function(t,e){o._updateNodes(e.items,e.data),o.start()},remove:function(t,e){o._removeNodes(e.items),o.start()}},this.edgesListeners={add:function(t,e){o._addEdges(e.items),o.start()},update:function(t,e){o._updateEdges(e.items),o.start()},remove:function(t,e){o._removeEdges(e.items),o.start()}},this.moving=!0,this.timer=void 0,this.setData(e,this.constants.clustering.enabled||this.constants.hierarchicalLayout.enabled),this.initializing=!1,1==this.constants.hierarchicalLayout.enabled?this._setupHierarchicalLayout():0==this.constants.stabilize&&this.zoomExtent(void 0,!0,this.constants.clustering.enabled),this.constants.clustering.enabled&&this.startWithClustering()}var o=i(56),n=i(45),r=i(57),a=i(1),h=i(47),d=i(3),l=i(4),c=i(42),p=i(43),u=i(38),m=i(39),f=i(40),g=i(37),v=i(41),y=i(54),b=i(55),_=i(49);i(50),o(s.prototype),s.prototype._getScriptPath=function(){for(var t=document.getElementsByTagName("script"),e=0;et.x&&(s=t.x),ot.y&&(e=t.y),i=this.constants.clustering.initialMaxNodes?49.07548/(n+142.05338)+91444e-8:12.662/(n+7.4147)+.0964822:1==this.constants.clustering.enabled&&n>=this.constants.clustering.initialMaxNodes?77.5271985/(n+187.266146)+476710517e-13:30.5062972/(n+19.93597763)+.08413486;var r=Math.min(this.frame.canvas.clientWidth/600,this.frame.canvas.clientHeight/600);s*=r}else{var a=1.1*Math.abs(o.maxX-o.minX),h=1.1*Math.abs(o.maxY-o.minY),d=this.frame.canvas.clientWidth/a,l=this.frame.canvas.clientHeight/h;s=l>=d?d:l}s>1&&(s=1);var c=this._findCenter(o);if(0==i){var p={position:c,scale:s,animation:t};this.moveTo(p),this.moving=!0,this.start()}else c.x*=s,c.y*=s,c.x-=.5*this.frame.canvas.clientWidth,c.y-=.5*this.frame.canvas.clientHeight,this._setScale(s),this._setTranslation(-c.x,-c.y)},s.prototype._updateNodeIndexList=function(){this._clearNodeIndexList();for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodeIndices.push(t)},s.prototype.setData=function(t,e){if(void 0===e&&(e=!1),this.initializing=!0,t&&t.dot&&(t.nodes||t.edges))throw new SyntaxError('Data must contain either parameter "dot" or parameter pair "nodes" and "edges", but not both.');if(this.setOptions(t&&t.options),t&&t.dot){if(t&&t.dot){var i=c.DOTToGraph(t.dot);return void this.setData(i)}}else if(t&&t.gephi){if(t&&t.gephi){var s=p.parseGephi(t.gephi);return void this.setData(s)}}else this._setNodes(t&&t.nodes),this._setEdges(t&&t.edges);this._putDataInSector(),0==e&&(1==this.constants.hierarchicalLayout.enabled?(this._resetLevels(),this._setupHierarchicalLayout()):this.constants.stabilize&&this._stabilize(),this.start()),this.initializing=!1},s.prototype.setOptions=function(t){if(t){var e,i=["nodes","edges","smoothCurves","hierarchicalLayout","clustering","navigation","keyboard","dataManipulation","onAdd","onEdit","onEditEdge","onConnect","onDelete","clickToUse"];if(a.selectiveNotDeepExtend(i,this.constants,t),a.selectiveNotDeepExtend(["color"],this.constants.nodes,t.nodes),a.selectiveNotDeepExtend(["color","length"],this.constants.edges,t.edges),t.physics&&(a.mergeOptions(this.constants.physics,t.physics,"barnesHut"),a.mergeOptions(this.constants.physics,t.physics,"repulsion"),t.physics.hierarchicalRepulsion)){this.constants.hierarchicalLayout.enabled=!0,this.constants.physics.hierarchicalRepulsion.enabled=!0,this.constants.physics.barnesHut.enabled=!1; for(e in t.physics.hierarchicalRepulsion)t.physics.hierarchicalRepulsion.hasOwnProperty(e)&&(this.constants.physics.hierarchicalRepulsion[e]=t.physics.hierarchicalRepulsion[e])}if(t.onAdd&&(this.triggerFunctions.add=t.onAdd),t.onEdit&&(this.triggerFunctions.edit=t.onEdit),t.onEditEdge&&(this.triggerFunctions.editEdge=t.onEditEdge),t.onConnect&&(this.triggerFunctions.connect=t.onConnect),t.onDelete&&(this.triggerFunctions.del=t.onDelete),a.mergeOptions(this.constants,t,"smoothCurves"),a.mergeOptions(this.constants,t,"hierarchicalLayout"),a.mergeOptions(this.constants,t,"clustering"),a.mergeOptions(this.constants,t,"navigation"),a.mergeOptions(this.constants,t,"keyboard"),a.mergeOptions(this.constants,t,"dataManipulation"),t.dataManipulation&&(this.editMode=this.constants.dataManipulation.initiallyVisible),t.edges&&(void 0!==t.edges.color&&(a.isString(t.edges.color)?(this.constants.edges.color={},this.constants.edges.color.color=t.edges.color,this.constants.edges.color.highlight=t.edges.color,this.constants.edges.color.hover=t.edges.color):(void 0!==t.edges.color.color&&(this.constants.edges.color.color=t.edges.color.color),void 0!==t.edges.color.highlight&&(this.constants.edges.color.highlight=t.edges.color.highlight),void 0!==t.edges.color.hover&&(this.constants.edges.color.hover=t.edges.color.hover))),t.edges.fontColor||void 0!==t.edges.color&&(a.isString(t.edges.color)?this.constants.edges.fontColor=t.edges.color:void 0!==t.edges.color.color&&(this.constants.edges.fontColor=t.edges.color.color))),t.nodes&&t.nodes.color){var s=a.parseColor(t.nodes.color);this.constants.nodes.color.background=s.background,this.constants.nodes.color.border=s.border,this.constants.nodes.color.highlight.background=s.highlight.background,this.constants.nodes.color.highlight.border=s.highlight.border,this.constants.nodes.color.hover.background=s.hover.background,this.constants.nodes.color.hover.border=s.hover.border}if(t.groups)for(var o in t.groups)if(t.groups.hasOwnProperty(o)){var n=t.groups[o];this.groups.add(o,n)}if(t.tooltip){for(e in t.tooltip)t.tooltip.hasOwnProperty(e)&&(this.constants.tooltip[e]=t.tooltip[e]);t.tooltip.color&&(this.constants.tooltip.color=a.parseColor(t.tooltip.color))}if("clickToUse"in t&&(t.clickToUse?(this.activator=new b(this.frame),this.activator.on("change",this._createKeyBinds.bind(this))):this.activator&&(this.activator.destroy(),delete this.activator)),t.labels)throw new Error('Option "labels" is deprecated. Use options "locale" and "locales" instead.')}this._loadPhysicsSystem(),this._loadNavigationControls(),this._loadManipulationSystem(),this._configureSmoothCurves(),this._createKeyBinds(),this.setSize(this.constants.width,this.constants.height),this.moving=!0,this.start()},s.prototype._create=function(){for(;this.containerElement.hasChildNodes();)this.containerElement.removeChild(this.containerElement.firstChild);if(this.frame=document.createElement("div"),this.frame.className="vis network-frame",this.frame.style.position="relative",this.frame.style.overflow="hidden",this.frame.canvas=document.createElement("canvas"),this.frame.canvas.style.position="relative",this.frame.appendChild(this.frame.canvas),this.frame.canvas.getContext){var t=this.frame.canvas.getContext("2d");this.pixelRatio=(window.devicePixelRatio||1)/(t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1),this.frame.canvas.getContext("2d").setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0)}else{var e=document.createElement("DIV");e.style.color="red",e.style.fontWeight="bold",e.style.padding="10px",e.innerHTML="Error: your browser does not support HTML canvas",this.frame.canvas.appendChild(e)}var i=this;this.drag={},this.pinch={},this.hammer=n(this.frame.canvas,{prevent_default:!0}),this.hammer.on("tap",i._onTap.bind(i)),this.hammer.on("doubletap",i._onDoubleTap.bind(i)),this.hammer.on("hold",i._onHold.bind(i)),this.hammer.on("pinch",i._onPinch.bind(i)),this.hammer.on("touch",i._onTouch.bind(i)),this.hammer.on("dragstart",i._onDragStart.bind(i)),this.hammer.on("drag",i._onDrag.bind(i)),this.hammer.on("dragend",i._onDragEnd.bind(i)),this.hammer.on("mousewheel",i._onMouseWheel.bind(i)),this.hammer.on("DOMMouseScroll",i._onMouseWheel.bind(i)),this.hammer.on("mousemove",i._onMouseMoveTitle.bind(i)),this.hammerFrame=n(this.frame,{prevent_default:!0}),this.hammerFrame.on("release",i._onRelease.bind(i)),this.containerElement.appendChild(this.frame)},s.prototype._createKeyBinds=function(){var t=this;void 0!==this.keycharm&&this.keycharm.destroy(),this.keycharm=r(),this.keycharm.reset(),this.constants.keyboard.enabled&&this.isActive()&&(this.keycharm.bind("up",this._moveUp.bind(t),"keydown"),this.keycharm.bind("up",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("down",this._moveDown.bind(t),"keydown"),this.keycharm.bind("down",this._yStopMoving.bind(t),"keyup"),this.keycharm.bind("left",this._moveLeft.bind(t),"keydown"),this.keycharm.bind("left",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("right",this._moveRight.bind(t),"keydown"),this.keycharm.bind("right",this._xStopMoving.bind(t),"keyup"),this.keycharm.bind("=",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("=",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num+",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("num+",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("num-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("num-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("-",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("-",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("[",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("[",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("]",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("]",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pageup",this._zoomIn.bind(t),"keydown"),this.keycharm.bind("pageup",this._stopZoom.bind(t),"keyup"),this.keycharm.bind("pagedown",this._zoomOut.bind(t),"keydown"),this.keycharm.bind("pagedown",this._stopZoom.bind(t),"keyup")),1==this.constants.dataManipulation.enabled&&(this.keycharm.bind("esc",this._createManipulatorBar.bind(t)),this.keycharm.bind("delete",this._deleteSelected.bind(t)))},s.prototype._getPointer=function(t){return{x:t.pageX-a.getAbsoluteLeft(this.frame.canvas),y:t.pageY-a.getAbsoluteTop(this.frame.canvas)}},s.prototype._onTouch=function(t){(new Date).valueOf()-this.touchTime>100&&(this.drag.pointer=this._getPointer(t.gesture.center),this.drag.pinched=!1,this.pinch.scale=this._getScale(),this.touchTime=(new Date).valueOf(),this._handleTouch(this.drag.pointer))},s.prototype._onDragStart=function(){this._handleDragStart()},s.prototype._handleDragStart=function(){var t=this.drag,e=this._getNodeAt(t.pointer);if(t.dragging=!0,t.selection=[],t.translation=this._getTranslation(),t.nodeId=null,this.draggingNodes=!1,null!=e&&1==this.constants.dragNodes){this.draggingNodes=!0,t.nodeId=e.id,e.isSelected()||this._selectObject(e,!1),this.emit("dragStart",{nodeIds:this.getSelection().nodes});for(var i in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(i)){var s=this.selectionObj.nodes[i],o={id:s.id,node:s,x:s.x,y:s.y,xFixed:s.xFixed,yFixed:s.yFixed};s.xFixed=!0,s.yFixed=!0,t.selection.push(o)}}},s.prototype._onDrag=function(t){this._handleOnDrag(t)},s.prototype._handleOnDrag=function(t){if(!this.drag.pinched){this.releaseNode();var e=this._getPointer(t.gesture.center),i=this,s=this.drag,o=s.selection;if(o&&o.length&&1==this.constants.dragNodes){var n=e.x-s.pointer.x,r=e.y-s.pointer.y;o.forEach(function(t){var e=t.node;t.xFixed||(e.x=i._XconvertDOMtoCanvas(i._XconvertCanvasToDOM(t.x)+n)),t.yFixed||(e.y=i._YconvertDOMtoCanvas(i._YconvertCanvasToDOM(t.y)+r))}),this.moving||(this.moving=!0,this.start())}else if(1==this.constants.dragNetwork){var a=e.x-this.drag.pointer.x,h=e.y-this.drag.pointer.y;this._setTranslation(this.drag.translation.x+a,this.drag.translation.y+h),this._redraw()}}},s.prototype._onDragEnd=function(t){this._handleDragEnd(t)},s.prototype._handleDragEnd=function(){this.drag.dragging=!1;var t=this.drag.selection;t&&t.length?(t.forEach(function(t){t.node.xFixed=t.xFixed,t.node.yFixed=t.yFixed}),this.moving=!0,this.start()):this._redraw(),0==this.draggingNodes?this.emit("dragEnd",{nodeIds:[]}):this.emit("dragEnd",{nodeIds:this.getSelection().nodes})},s.prototype._onTap=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleTap(e)},s.prototype._onDoubleTap=function(t){var e=this._getPointer(t.gesture.center);this._handleDoubleTap(e)},s.prototype._onHold=function(t){var e=this._getPointer(t.gesture.center);this.pointerPosition=e,this._handleOnHold(e)},s.prototype._onRelease=function(t){var e=this._getPointer(t.gesture.center);this._handleOnRelease(e)},s.prototype._onPinch=function(t){var e=this._getPointer(t.gesture.center);this.drag.pinched=!0,"scale"in this.pinch||(this.pinch.scale=1);var i=this.pinch.scale*t.gesture.scale;this._zoom(i,e)},s.prototype._zoom=function(t,e){if(1==this.constants.zoomable){var i=this._getScale();1e-5>t&&(t=1e-5),t>10&&(t=10);var s=null;void 0!==this.drag&&1==this.drag.dragging&&(s=this.DOMtoCanvas(this.drag.pointer));var o=this._getTranslation(),n=t/i,r=(1-n)*e.x+o.x*n,a=(1-n)*e.y+o.y*n;if(this.areaCenter={x:this._XconvertDOMtoCanvas(e.x),y:this._YconvertDOMtoCanvas(e.y)},this._setScale(t),this._setTranslation(r,a),this.updateClustersDefault(),null!=s){var h=this.canvasToDOM(s);this.drag.pointer.x=h.x,this.drag.pointer.y=h.y}return this._redraw(),t>i?this.emit("zoom",{direction:"+"}):this.emit("zoom",{direction:"-"}),t}},s.prototype._onMouseWheel=function(t){var e=0;if(t.wheelDelta?e=t.wheelDelta/120:t.detail&&(e=-t.detail/3),e){var i=this._getScale(),s=e/10;0>e&&(s/=1-s),i*=1+s;var o=h.fakeGesture(this,t),n=this._getPointer(o.center);this._zoom(i,n)}t.preventDefault()},s.prototype._onMouseMoveTitle=function(t){var e=h.fakeGesture(this,t),i=this._getPointer(e.center);this.popupObj&&this._checkHidePopup(i);var s=this,o=function(){s._checkShowPopup(i)};if(this.popupTimer&&clearInterval(this.popupTimer),this.drag.dragging||(this.popupTimer=setTimeout(o,this.constants.tooltip.delay)),1==this.constants.hover){for(var n in this.hoverObj.edges)this.hoverObj.edges.hasOwnProperty(n)&&(this.hoverObj.edges[n].hover=!1,delete this.hoverObj.edges[n]);var r=this._getNodeAt(i);null==r&&(r=this._getEdgeAt(i)),null!=r&&this._hoverObject(r);for(var a in this.hoverObj.nodes)this.hoverObj.nodes.hasOwnProperty(a)&&(r instanceof f&&r.id!=a||r instanceof g||null==r)&&(this._blurObject(this.hoverObj.nodes[a]),delete this.hoverObj.nodes[a]);this.redraw()}},s.prototype._checkShowPopup=function(t){var e,i={left:this._XconvertDOMtoCanvas(t.x),top:this._YconvertDOMtoCanvas(t.y),right:this._XconvertDOMtoCanvas(t.x),bottom:this._YconvertDOMtoCanvas(t.y)},s=this.popupObj;if(void 0==this.popupObj){var o=this.nodes;for(e in o)if(o.hasOwnProperty(e)){var n=o[e];if(void 0!==n.getTitle()&&n.isOverlappingWith(i)){this.popupObj=n;break}}}if(void 0===this.popupObj){var r=this.edges;for(e in r)if(r.hasOwnProperty(e)){var a=r[e];if(a.connected&&void 0!==a.getTitle()&&a.isOverlappingWith(i)){this.popupObj=a;break}}}if(this.popupObj){if(this.popupObj!=s){var h=this;h.popup||(h.popup=new v(h.frame,h.constants.tooltip)),h.popup.setPosition(t.x-3,t.y-3),h.popup.setText(h.popupObj.getTitle()),h.popup.show()}}else this.popup&&this.popup.hide()},s.prototype._checkHidePopup=function(t){this.popupObj&&this._getNodeAt(t)||(this.popupObj=void 0,this.popup&&this.popup.hide())},s.prototype.setSize=function(t,e){var i=!1,s=this.frame.canvas.width,o=this.frame.canvas.height;t!=this.constants.width||e!=this.constants.height||this.frame.style.width!=t||this.frame.style.height!=e?(this.frame.style.width=t,this.frame.style.height=e,this.frame.canvas.style.width="100%",this.frame.canvas.style.height="100%",this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,this.constants.width=t,this.constants.height=e,i=!0):(this.frame.canvas.width!=this.frame.canvas.clientWidth*this.pixelRatio&&(this.frame.canvas.width=this.frame.canvas.clientWidth*this.pixelRatio,i=!0),this.frame.canvas.height!=this.frame.canvas.clientHeight*this.pixelRatio&&(this.frame.canvas.height=this.frame.canvas.clientHeight*this.pixelRatio,i=!0)),1==i&&this.emit("resize",{width:this.frame.canvas.width*this.pixelRatio,height:this.frame.canvas.height*this.pixelRatio,oldWidth:s*this.pixelRatio,oldHeight:o*this.pixelRatio})},s.prototype._setNodes=function(t){var e=this.nodesData;if(t instanceof d||t instanceof l)this.nodesData=t;else if(Array.isArray(t))this.nodesData=new d,this.nodesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.nodesData=new d}if(e&&a.forEach(this.nodesListeners,function(t,i){e.off(i,t)}),this.nodes={},this.nodesData){var i=this;a.forEach(this.nodesListeners,function(t,e){i.nodesData.on(e,t)});var s=this.nodesData.getIds();this._addNodes(s)}this._updateSelection()},s.prototype._addNodes=function(t){for(var e,i=0,s=t.length;s>i;i++){e=t[i];var o=this.nodesData.get(e),n=new f(o,this.images,this.groups,this.constants);if(this.nodes[e]=n,!(0!=n.xFixed&&0!=n.yFixed||null!==n.x&&null!==n.y)){var r=1*t.length+10,a=2*Math.PI*Math.random();0==n.xFixed&&(n.x=r*Math.cos(a)),0==n.yFixed&&(n.y=r*Math.sin(a))}this.moving=!0}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateValueRange(this.nodes),this.updateLabels()},s.prototype._updateNodes=function(t,e){for(var i=this.nodes,s=0,o=t.length;o>s;s++){var n=t[s],r=i[n],a=e[s];r?r.setProperties(a,this.constants):(r=new f(properties,this.images,this.groups,this.constants),i[n]=r)}this.moving=!0,1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateNodeIndexList(),this._updateValueRange(i)},s.prototype._removeNodes=function(t){for(var e=this.nodes,i=0,s=t.length;s>i;i++){var o=t[i];delete e[o]}this._updateNodeIndexList(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes(),this._reconnectEdges(),this._updateSelection(),this._updateValueRange(e)},s.prototype._setEdges=function(t){var e=this.edgesData;if(t instanceof d||t instanceof l)this.edgesData=t;else if(Array.isArray(t))this.edgesData=new d,this.edgesData.add(t);else{if(t)throw new TypeError("Array or DataSet expected");this.edgesData=new d}if(e&&a.forEach(this.edgesListeners,function(t,i){e.off(i,t)}),this.edges={},this.edgesData){var i=this;a.forEach(this.edgesListeners,function(t,e){i.edgesData.on(e,t)});var s=this.edgesData.getIds();this._addEdges(s)}this._reconnectEdges()},s.prototype._addEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=e[n];r&&r.disconnect();var a=i.get(n,{showInternalIds:!0});e[n]=new g(a,this,this.constants)}this.moving=!0,this._updateValueRange(e),this._createBezierNodes(),this._updateCalculationNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout())},s.prototype._updateEdges=function(t){for(var e=this.edges,i=this.edgesData,s=0,o=t.length;o>s;s++){var n=t[s],r=i.get(n),a=e[n];a?(a.disconnect(),a.setProperties(r,this.constants),a.connect()):(a=new g(r,this,this.constants),this.edges[n]=a)}this._createBezierNodes(),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this.moving=!0,this._updateValueRange(e)},s.prototype._removeEdges=function(t){for(var e=this.edges,i=0,s=t.length;s>i;i++){var o=t[i],n=e[o];n&&(null!=n.via&&delete this.sectors.support.nodes[n.via.id],n.disconnect(),delete e[o])}this.moving=!0,this._updateValueRange(e),1==this.constants.hierarchicalLayout.enabled&&0==this.initializing&&(this._resetLevels(),this._setupHierarchicalLayout()),this._updateCalculationNodes()},s.prototype._reconnectEdges=function(){var t,e=this.nodes,i=this.edges;for(t in e)e.hasOwnProperty(t)&&(e[t].edges=[],e[t].dynamicEdges=[]);for(t in i)if(i.hasOwnProperty(t)){var s=i[t];s.from=null,s.to=null,s.connect()}},s.prototype._updateValueRange=function(t){var e,i=void 0,s=void 0;for(e in t)if(t.hasOwnProperty(e)){var o=t[e].getValue();void 0!==o&&(i=void 0===i?o:Math.min(o,i),s=void 0===s?o:Math.max(o,s))}if(void 0!==i&&void 0!==s)for(e in t)t.hasOwnProperty(e)&&t[e].setValueRange(i,s)},s.prototype.redraw=function(){this.setSize(this.constants.width,this.constants.height),this._redraw()},s.prototype._redraw=function(){var t=this.frame.canvas.getContext("2d");t.setTransform(this.pixelRatio,0,0,this.pixelRatio,0,0);var e=this.frame.canvas.width*this.pixelRatio,i=this.frame.canvas.height*this.pixelRatio;t.clearRect(0,0,e,i),t.save(),t.translate(this.translation.x,this.translation.y),t.scale(this.scale,this.scale),this.canvasTopLeft={x:this._XconvertDOMtoCanvas(0),y:this._YconvertDOMtoCanvas(0)},this.canvasBottomRight={x:this._XconvertDOMtoCanvas(this.frame.canvas.clientWidth*this.pixelRatio),y:this._YconvertDOMtoCanvas(this.frame.canvas.clientHeight*this.pixelRatio)},this._doInAllSectors("_drawAllSectorNodes",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideEdgesOnDrag)&&this._doInAllSectors("_drawEdges",t),(0==this.drag.dragging||void 0===this.drag.dragging||0==this.constants.hideNodesOnDrag)&&this._doInAllSectors("_drawNodes",t,!1),1==this.controlNodesActive&&this._doInAllSectors("_drawControlNodes",t),t.restore()},s.prototype._setTranslation=function(t,e){void 0===this.translation&&(this.translation={x:0,y:0}),void 0!==t&&(this.translation.x=t),void 0!==e&&(this.translation.y=e),this.emit("viewChanged")},s.prototype._getTranslation=function(){return{x:this.translation.x,y:this.translation.y}},s.prototype._setScale=function(t){this.scale=t},s.prototype._getScale=function(){return this.scale},s.prototype._XconvertDOMtoCanvas=function(t){return(t-this.translation.x)/this.scale},s.prototype._XconvertCanvasToDOM=function(t){return t*this.scale+this.translation.x},s.prototype._YconvertDOMtoCanvas=function(t){return(t-this.translation.y)/this.scale},s.prototype._YconvertCanvasToDOM=function(t){return t*this.scale+this.translation.y},s.prototype.canvasToDOM=function(t){return{x:this._XconvertCanvasToDOM(t.x),y:this._YconvertCanvasToDOM(t.y)}},s.prototype.DOMtoCanvas=function(t){return{x:this._XconvertDOMtoCanvas(t.x),y:this._YconvertDOMtoCanvas(t.y)}},s.prototype._drawNodes=function(t,e){void 0===e&&(e=!1);var i=this.nodes,s=[];for(var o in i)i.hasOwnProperty(o)&&(i[o].setScaleAndPos(this.scale,this.canvasTopLeft,this.canvasBottomRight),i[o].isSelected()?s.push(o):(i[o].inArea()||e)&&i[o].draw(t));for(var n=0,r=s.length;r>n;n++)(i[s[n]].inArea()||e)&&i[s[n]].draw(t)},s.prototype._drawEdges=function(t){var e=this.edges;for(var i in e)if(e.hasOwnProperty(i)){var s=e[i];s.setScale(this.scale),s.connected&&e[i].draw(t)}},s.prototype._drawControlNodes=function(t){var e=this.edges;for(var i in e)e.hasOwnProperty(i)&&e[i]._drawControlNodes(t)},s.prototype._stabilize=function(){1==this.constants.freezeForStabilization&&this._freezeDefinedNodes();for(var t=0;this.moving&&t0)for(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._physicsTick=function(){if(!this.freezeSimulation&&1==this.moving){var t=!1,e=!1;this._doInAllActiveSectors("_initializeForceCalculation");var i=this._doInAllActiveSectors("_discreteStepNodes");1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic&&(e=this._doInSupportSector("_discreteStepNodes"));for(var s=0;s0){var i=this,s={iterations:i.stabilizationIterations};i.stabilizationIterations=0,i.startedStabilization=!1,setTimeout(function(){i.emit("stabilized",s)},0)}},s.prototype._handleNavigation=function(){if(0!=this.xIncrement||0!=this.yIncrement){var t=this._getTranslation();this._setTranslation(t.x+this.xIncrement,t.y+this.yIncrement)}if(0!=this.zoomIncrement){var e={x:this.frame.canvas.clientWidth/2,y:this.frame.canvas.clientHeight/2};this._zoom(this.scale*(1+this.zoomIncrement),e)}},s.prototype.toggleFreeze=function(){0==this.freezeSimulation?this.freezeSimulation=!0:(this.freezeSimulation=!1,this.start())},s.prototype._configureSmoothCurves=function(t){if(void 0===t&&(t=!0),1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this._createBezierNodes();for(var e in this.sectors.support.nodes)this.sectors.support.nodes.hasOwnProperty(e)&&void 0===this.edges[this.sectors.support.nodes[e].parentEdgeId]&&delete this.sectors.support.nodes[e]}else{this.sectors.support.nodes={};for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.edges[i].via=null)}this._updateCalculationNodes(),t||(this.moving=!0,this.start())},s.prototype._createBezierNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic)for(var t in this.edges)if(this.edges.hasOwnProperty(t)){var e=this.edges[t];if(null==e.via){var i="edgeId:".concat(e.id);this.sectors.support.nodes[i]=new f({id:i,mass:1,shape:"circle",image:"",internalMultiplier:1},{},{},this.constants),e.via=this.sectors.support.nodes[i],e.via.parentEdgeId=e.id,e.positionBezierNode()}}},s.prototype._initializeMixinLoaders=function(){for(var t in y)y.hasOwnProperty(t)&&(s.prototype[t]=y[t])},s.prototype.storePosition=function(){console.log("storePosition is depricated: use .storePositions() from now on."),this.storePositions()},s.prototype.storePositions=function(){var t=[];for(var e in this.nodes)if(this.nodes.hasOwnProperty(e)){var i=this.nodes[e],s=!this.nodes.xFixed,o=!this.nodes.yFixed;(this.nodesData._data[e].x!=Math.round(i.x)||this.nodesData._data[e].y!=Math.round(i.y))&&t.push({id:e,x:Math.round(i.x),y:Math.round(i.y),allowedToMoveX:s,allowedToMoveY:o})}this.nodesData.update(t)},s.prototype.getPositions=function(t){var e={};if(void 0!==t){if(1==Array.isArray(t)){for(var i=0;i=1&&(this.easingTime=0,this._redraw=null!=this.lockedOnNodeId?this._lockedRedraw:this._classicRedraw,this.emit("animationFinished"))},s.prototype._classicRedraw=function(){},s.prototype.isActive=function(){return!this.activator||this.activator.active},s.prototype.setScale=function(){return this._setScale()},s.prototype.getScale=function(){return this._getScale()},s.prototype.getCenterCoordinates=function(){return this.DOMtoCanvas({x:.5*this.frame.canvas.clientWidth,y:.5*this.frame.canvas.clientHeight})},t.exports=s},function(t,e,i){function s(t,e,i){if(!e)throw"No network provided";var s=["edges","physics"],n=o.selectiveBridgeObject(s,i);this.options=n.edges,this.physics=n.physics,this.options.smoothCurves=i.smoothCurves,this.network=e,this.id=void 0,this.fromId=void 0,this.toId=void 0,this.title=void 0,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.value=void 0,this.selected=!1,this.hover=!1,this.labelDimensions={top:0,left:0,width:0,height:0,yLine:0},this.dirtyLabel=!0,this.from=null,this.to=null,this.via=null,this.fromBackup=null,this.toBackup=null,this.originalFromId=[],this.originalToId=[],this.connected=!1,this.widthFixed=!1,this.lengthFixed=!1,this.setProperties(t),this.controlNodesEnabled=!1,this.controlNodes={from:null,to:null,positions:{}},this.connectedNode=null}var o=i(1),n=i(40);s.prototype.setProperties=function(t){if(t){var e=["style","fontSize","fontFace","fontColor","fontFill","width","widthSelectionMultiplier","hoverWidth","arrowScaleFactor","dash","inheritColor"];switch(o.selectiveDeepExtend(e,this.options,t),void 0!==t.from&&(this.fromId=t.from),void 0!==t.to&&(this.toId=t.to),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.dirtyLabel=!0),void 0!==t.title&&(this.title=t.title),void 0!==t.value&&(this.value=t.value),void 0!==t.length&&(this.physics.springLength=t.length),void 0!==t.color&&(this.options.inheritColor=!1,o.isString(t.color)?(this.options.color.color=t.color,this.options.color.highlight=t.color):(void 0!==t.color.color&&(this.options.color.color=t.color.color),void 0!==t.color.highlight&&(this.options.color.highlight=t.color.highlight),void 0!==t.color.hover&&(this.options.color.hover=t.color.hover))),this.connect(),this.widthFixed=this.widthFixed||void 0!==t.width,this.lengthFixed=this.lengthFixed||void 0!==t.length,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier,this.options.style){case"line":this.draw=this._drawLine;break;case"arrow":this.draw=this._drawArrow;break;case"arrow-center":this.draw=this._drawArrowCenter;break;case"dash-line":this.draw=this._drawDashLine;break;default:this.draw=this._drawLine}}},s.prototype.connect=function(){this.disconnect(),this.from=this.network.nodes[this.fromId]||null,this.to=this.network.nodes[this.toId]||null,this.connected=this.from&&this.to,this.connected?(this.from.attachEdge(this),this.to.attachEdge(this)):(this.from&&this.from.detachEdge(this),this.to&&this.to.detachEdge(this))},s.prototype.disconnect=function(){this.from&&(this.from.detachEdge(this),this.from=null),this.to&&(this.to.detachEdge(this),this.to=null),this.connected=!1},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.getValue=function(){return this.value},s.prototype.setValueRange=function(t,e){if(!this.widthFixed&&void 0!==this.value){var i=(this.options.widthMax-this.options.widthMin)/(e-t);this.options.width=(this.value-t)*i+this.options.widthMin,this.widthSelected=this.options.width*this.options.widthSelectionMultiplier}},s.prototype.draw=function(){throw"Method draw not initialized in edge"},s.prototype.isOverlappingWith=function(t){if(this.connected){var e=10,i=this.from.x,s=this.from.y,o=this.to.x,n=this.to.y,r=t.left,a=t.top,h=this._getDistanceToEdge(i,s,o,n,r,a);return e>h}return!1},s.prototype._getColor=function(){var t=this.options.color;return"to"==this.options.inheritColor?t={highlight:this.to.options.color.highlight.border,hover:this.to.options.color.hover.border,color:this.to.options.color.border}:("from"==this.options.inheritColor||1==this.options.inheritColor)&&(t={highlight:this.from.options.color.highlight.border,hover:this.from.options.color.hover.border,color:this.from.options.color.border}),1==this.selected?t.highlight:1==this.hover?t.hover:t.color },s.prototype._drawLine=function(t){if(t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth(),this.from!=this.to){var e,i=this._line(t);if(this.label){if(1==this.options.smoothCurves.enabled&&null!=i){var s=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),o=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:s,y:o}}else e=this._pointOnLine(.5);this._label(t,this.label,e.x,e.y)}}else{var n,r,a=this.physics.springLength/4,h=this.from;h.width||h.resize(t),h.width>h.height?(n=h.x+h.width/2,r=h.y-a):(n=h.x+a,r=h.y-h.height/2),this._circle(t,n,r,a),e=this._pointOnCircle(n,r,a,.5),this._label(t,this.label,e.x,e.y)}},s.prototype._getLineWidth=function(){return 1==this.selected?Math.max(Math.min(this.widthSelected,this.options.widthMax),.3*this.networkScaleInv):1==this.hover?Math.max(Math.min(this.options.hoverWidth,this.options.widthMax),.3*this.networkScaleInv):Math.max(this.options.width,.3*this.networkScaleInv)},s.prototype._getViaCoordinates=function(){var t=null,e=null,i=this.options.smoothCurves.roundness,s=this.options.smoothCurves.type,o=Math.abs(this.from.x-this.to.x),n=Math.abs(this.from.y-this.to.y);return"discrete"==s||"diagonalCross"==s?Math.abs(this.from.x-this.to.x)this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n)),"discrete"==s&&(t=i*n>o?this.from.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xthis.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o)),"discrete"==s&&(e=i*o>n?this.from.y:e)):"straightCross"==s?Math.abs(this.from.x-this.to.x)Math.abs(this.from.y-this.to.y)&&(t=this.from.xthis.to.y?this.from.xthis.to.x&&(t=this.from.x-i*n,e=this.from.y-i*n,t=this.to.x>t?this.to.x:t):this.from.ythis.to.x&&(t=this.from.x-i*n,e=this.from.y+i*n,t=this.to.x>t?this.to.x:t)):Math.abs(this.from.x-this.to.x)>Math.abs(this.from.y-this.to.y)&&(this.from.y>this.to.y?this.from.xe?this.to.y:e):this.from.x>this.to.x&&(t=this.from.x-i*o,e=this.from.y-i*o,e=this.to.y>e?this.to.y:e):this.from.ythis.to.x&&(t=this.from.x-i*o,e=this.from.y+i*o,e=this.to.yd;d++){var l=t.measureText(n[d]).width;h=l>h?l:h}var c=this.options.fontSize*r,p=i-h/2,u=s-c/2;this.labelDimensions={top:u,left:p,width:h,height:c,yLine:o}}void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(this.labelDimensions.left,this.labelDimensions.top,this.labelDimensions.width,this.labelDimensions.height)),t.fillStyle=this.options.fontColor||"black",t.textAlign="center",t.textBaseline="middle",o=this.labelDimensions.yLine;for(var d=0;r>d;d++)t.fillText(n[d],i,o),o+=a}},s.prototype._drawDashLine=function(t){t.strokeStyle=this._getColor(),t.lineWidth=this._getLineWidth();var e=null;if(void 0!==t.mozDash||void 0!==t.setLineDash){var i=[0];i=void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?[this.options.dash.length,this.options.dash.gap]:[5,5],"undefined"!=typeof t.setLineDash?(t.setLineDash(i),t.lineDashOffset=0):(t.mozDash=i,t.mozDashOffset=0),e=this._line(t),"undefined"!=typeof t.setLineDash?(t.setLineDash([0]),t.lineDashOffset=0):(t.mozDash=[0],t.mozDashOffset=0)}else t.beginPath(),t.lineCap="round",void 0!==this.options.dash.altLength?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap,this.options.dash.altLength,this.options.dash.gap]):void 0!==this.options.dash.length&&void 0!==this.options.dash.gap?t.dashedLine(this.from.x,this.from.y,this.to.x,this.to.y,[this.options.dash.length,this.options.dash.gap]):(t.moveTo(this.from.x,this.from.y),t.lineTo(this.to.x,this.to.y)),t.stroke();if(this.label){var s;if(1==this.options.smoothCurves.enabled&&null!=e){var o=.5*(.5*(this.from.x+e.x)+.5*(this.to.x+e.x)),n=.5*(.5*(this.from.y+e.y)+.5*(this.to.y+e.y));s={x:o,y:n}}else s=this._pointOnLine(.5);this._label(t,this.label,s.x,s.y)}},s.prototype._pointOnLine=function(t){return{x:(1-t)*this.from.x+t*this.to.x,y:(1-t)*this.from.y+t*this.to.y}},s.prototype._pointOnCircle=function(t,e,i,s){var o=2*(s-3/8)*Math.PI;return{x:t+i*Math.cos(o),y:e-i*Math.sin(o)}},s.prototype._drawArrowCenter=function(t){var e;if(t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth(),this.from!=this.to){var i=this._line(t),s=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),o=(10+5*this.options.width)*this.options.arrowScaleFactor;if(1==this.options.smoothCurves.enabled&&null!=i){var n=.5*(.5*(this.from.x+i.x)+.5*(this.to.x+i.x)),r=.5*(.5*(this.from.y+i.y)+.5*(this.to.y+i.y));e={x:n,y:r}}else e=this._pointOnLine(.5);t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&this._label(t,this.label,e.x,e.y)}else{var a,h,d=.25*Math.max(100,this.physics.springLength),l=this.from;l.width||l.resize(t),l.width>l.height?(a=l.x+.5*l.width,h=l.y-d):(a=l.x+d,h=l.y-.5*l.height),this._circle(t,a,h,d);var s=.2*Math.PI,o=(10+5*this.options.width)*this.options.arrowScaleFactor;e=this._pointOnCircle(a,h,d,.5),t.arrow(e.x,e.y,s,o),t.fill(),t.stroke(),this.label&&(e=this._pointOnCircle(a,h,d,.5),this._label(t,this.label,e.x,e.y))}},s.prototype._drawArrow=function(t){t.strokeStyle=this._getColor(),t.fillStyle=t.strokeStyle,t.lineWidth=this._getLineWidth();var e,i;if(this.from!=this.to){e=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x);var s,o=this.to.x-this.from.x,n=this.to.y-this.from.y,r=Math.sqrt(o*o+n*n),a=this.from.distanceToBorder(t,e+Math.PI),h=(r-a)/r,d=h*this.from.x+(1-h)*this.to.x,l=h*this.from.y+(1-h)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?s=this.via:1==this.options.smoothCurves.enabled&&(s=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=s.x&&(e=Math.atan2(this.to.y-s.y,this.to.x-s.x),o=this.to.x-s.x,n=this.to.y-s.y,r=Math.sqrt(o*o+n*n));var c,p,u=this.to.distanceToBorder(t,e),m=(r-u)/r;if(1==this.options.smoothCurves.enabled&&null!=s.x?(c=(1-m)*s.x+m*this.to.x,p=(1-m)*s.y+m*this.to.y):(c=(1-m)*this.from.x+m*this.to.x,p=(1-m)*this.from.y+m*this.to.y),t.beginPath(),t.moveTo(d,l),1==this.options.smoothCurves.enabled&&null!=s.x?t.quadraticCurveTo(s.x,s.y,c,p):t.lineTo(c,p),t.stroke(),i=(10+5*this.options.width)*this.options.arrowScaleFactor,t.arrow(c,p,e,i),t.fill(),t.stroke(),this.label){var f;if(1==this.options.smoothCurves.enabled&&null!=s){var g=.5*(.5*(this.from.x+s.x)+.5*(this.to.x+s.x)),v=.5*(.5*(this.from.y+s.y)+.5*(this.to.y+s.y));f={x:g,y:v}}else f=this._pointOnLine(.5);this._label(t,this.label,f.x,f.y)}}else{var y,b,_,x=this.from,w=.25*Math.max(100,this.physics.springLength);x.width||x.resize(t),x.width>x.height?(y=x.x+.5*x.width,b=x.y-w,_={x:y,y:x.y,angle:.9*Math.PI}):(y=x.x+w,b=x.y-.5*x.height,_={x:x.x,y:b,angle:.6*Math.PI}),t.beginPath(),t.arc(y,b,w,0,2*Math.PI,!1),t.stroke();var i=(10+5*this.options.width)*this.options.arrowScaleFactor;t.arrow(_.x,_.y,_.angle,i),t.fill(),t.stroke(),this.label&&(f=this._pointOnCircle(y,b,w,.5),this._label(t,this.label,f.x,f.y))}},s.prototype._getDistanceToEdge=function(t,e,i,s,o,n){var r=0;if(this.from!=this.to)if(1==this.options.smoothCurves.enabled){var a,h;if(1==this.options.smoothCurves.enabled&&1==this.options.smoothCurves.dynamic)a=this.via.x,h=this.via.y;else{var d=this._getViaCoordinates();a=d.x,h=d.y}var l,c,p,u,m,f,g,v=1e9;for(c=0;10>c;c++)p=.1*c,u=Math.pow(1-p,2)*t+2*p*(1-p)*a+Math.pow(p,2)*i,m=Math.pow(1-p,2)*e+2*p*(1-p)*h+Math.pow(p,2)*s,c>0&&(l=this._getDistanceToLine(f,g,u,m,o,n),v=v>l?l:v),f=u,g=m;r=v}else r=this._getDistanceToLine(t,e,i,s,o,n);else{var u,m,y,b,_=.25*this.physics.springLength,x=this.from;x.width>x.height?(u=x.x+.5*x.width,m=x.y-_):(u=x.x+_,m=x.y-.5*x.height),y=u-o,b=m-n,r=Math.abs(Math.sqrt(y*y+b*b)-_)}return this.labelDimensions.lefto&&this.labelDimensions.topn?0:r},s.prototype._getDistanceToLine=function(t,e,i,s,o,n){var r=i-t,a=s-e,h=r*r+a*a,d=((o-t)*r+(n-e)*a)/h;d>1?d=1:0>d&&(d=0);var l=t+d*r,c=e+d*a,p=l-o,u=c-n;return Math.sqrt(p*p+u*u)},s.prototype.setScale=function(t){this.networkScaleInv=1/t},s.prototype.select=function(){this.selected=!0},s.prototype.unselect=function(){this.selected=!1},s.prototype.positionBezierNode=function(){null!==this.via&&null!==this.from&&null!==this.to&&(this.via.x=.5*(this.from.x+this.to.x),this.via.y=.5*(this.from.y+this.to.y))},s.prototype._drawControlNodes=function(t){if(1==this.controlNodesEnabled){if(null===this.controlNodes.from&&null===this.controlNodes.to){var e="edgeIdFrom:".concat(this.id),i="edgeIdTo:".concat(this.id),s={nodes:{group:"",radius:8},physics:{damping:0},clustering:{maxNodeSizeIncrements:0,nodeScaling:{width:0,height:0,radius:0}}};this.controlNodes.from=new n({id:e,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s),this.controlNodes.to=new n({id:i,shape:"dot",color:{background:"#ff4e00",border:"#3c3c3c",highlight:{background:"#07f968"}}},{},{},s)}0==this.controlNodes.from.selected&&0==this.controlNodes.to.selected&&(this.controlNodes.positions=this.getControlNodePositions(t),this.controlNodes.from.x=this.controlNodes.positions.from.x,this.controlNodes.from.y=this.controlNodes.positions.from.y,this.controlNodes.to.x=this.controlNodes.positions.to.x,this.controlNodes.to.y=this.controlNodes.positions.to.y),this.controlNodes.from.draw(t),this.controlNodes.to.draw(t)}else this.controlNodes={from:null,to:null,positions:{}}},s.prototype._enableControlNodes=function(){this.fromBackup=this.from,this.toBackup=this.to,this.controlNodesEnabled=!0},s.prototype._disableControlNodes=function(){this.fromId=this.from.id,this.toId=this.to.id,this.fromId!=this.fromBackup.id?this.fromBackup.detachEdge(this):this.toId!=this.toBackup.id&&this.toBackup.detachEdge(this),this.fromBackup=null,this.toBackup=null,this.controlNodesEnabled=!1},s.prototype._getSelectedControlNode=function(t,e){var i=this.controlNodes.positions,s=Math.sqrt(Math.pow(t-i.from.x,2)+Math.pow(e-i.from.y,2)),o=Math.sqrt(Math.pow(t-i.to.x,2)+Math.pow(e-i.to.y,2));return 15>s?(this.connectedNode=this.from,this.from=this.controlNodes.from,this.controlNodes.from):15>o?(this.connectedNode=this.to,this.to=this.controlNodes.to,this.controlNodes.to):null},s.prototype._restoreControlNodes=function(){1==this.controlNodes.from.selected?(this.from=this.connectedNode,this.connectedNode=null,this.controlNodes.from.unselect()):1==this.controlNodes.to.selected&&(this.to=this.connectedNode,this.connectedNode=null,this.controlNodes.to.unselect())},s.prototype.getControlNodePositions=function(t){var e,i=Math.atan2(this.to.y-this.from.y,this.to.x-this.from.x),s=this.to.x-this.from.x,o=this.to.y-this.from.y,n=Math.sqrt(s*s+o*o),r=this.from.distanceToBorder(t,i+Math.PI),a=(n-r)/n,h=a*this.from.x+(1-a)*this.to.x,d=a*this.from.y+(1-a)*this.to.y;1==this.options.smoothCurves.dynamic&&1==this.options.smoothCurves.enabled?e=this.via:1==this.options.smoothCurves.enabled&&(e=this._getViaCoordinates()),1==this.options.smoothCurves.enabled&&null!=e.x&&(i=Math.atan2(this.to.y-e.y,this.to.x-e.x),s=this.to.x-e.x,o=this.to.y-e.y,n=Math.sqrt(s*s+o*o));var l,c,p=this.to.distanceToBorder(t,i),u=(n-p)/n;return 1==this.options.smoothCurves.enabled&&null!=e.x?(l=(1-u)*e.x+u*this.to.x,c=(1-u)*e.y+u*this.to.y):(l=(1-u)*this.from.x+u*this.to.x,c=(1-u)*this.from.y+u*this.to.y),{from:{x:h,y:d},to:{x:l,y:c}}},t.exports=s},function(t,e,i){function s(){this.clear(),this.defaultIndex=0}var o=i(1);s.DEFAULT=[{border:"#2B7CE9",background:"#97C2FC",highlight:{border:"#2B7CE9",background:"#D2E5FF"},hover:{border:"#2B7CE9",background:"#D2E5FF"}},{border:"#FFA500",background:"#FFFF00",highlight:{border:"#FFA500",background:"#FFFFA3"},hover:{border:"#FFA500",background:"#FFFFA3"}},{border:"#FA0A10",background:"#FB7E81",highlight:{border:"#FA0A10",background:"#FFAFB1"},hover:{border:"#FA0A10",background:"#FFAFB1"}},{border:"#41A906",background:"#7BE141",highlight:{border:"#41A906",background:"#A1EC76"},hover:{border:"#41A906",background:"#A1EC76"}},{border:"#E129F0",background:"#EB7DF4",highlight:{border:"#E129F0",background:"#F0B3F5"},hover:{border:"#E129F0",background:"#F0B3F5"}},{border:"#7C29F0",background:"#AD85E4",highlight:{border:"#7C29F0",background:"#D3BDF0"},hover:{border:"#7C29F0",background:"#D3BDF0"}},{border:"#C37F00",background:"#FFA807",highlight:{border:"#C37F00",background:"#FFCA66"},hover:{border:"#C37F00",background:"#FFCA66"}},{border:"#4220FB",background:"#6E6EFD",highlight:{border:"#4220FB",background:"#9B9BFD"},hover:{border:"#4220FB",background:"#9B9BFD"}},{border:"#FD5A77",background:"#FFC0CB",highlight:{border:"#FD5A77",background:"#FFD1D9"},hover:{border:"#FD5A77",background:"#FFD1D9"}},{border:"#4AD63A",background:"#C2FABC",highlight:{border:"#4AD63A",background:"#E6FFE3"},hover:{border:"#4AD63A",background:"#E6FFE3"}}],s.prototype.clear=function(){this.groups={},this.groups.length=function(){var t=0;for(var e in this)this.hasOwnProperty(e)&&t++;return t}},s.prototype.get=function(t){var e=this.groups[t];if(void 0==e){var i=this.defaultIndex%s.DEFAULT.length;this.defaultIndex++,e={},e.color=s.DEFAULT[i],this.groups[t]=e}return e},s.prototype.add=function(t,e){return this.groups[t]=e,e.color&&(e.color=o.parseColor(e.color)),e},t.exports=s},function(t){function e(){this.images={},this.callback=void 0}e.prototype.setOnloadCallback=function(t){this.callback=t},e.prototype.load=function(t,e){var i=this.images[t];if(void 0==i){var s=this;i=new Image,this.images[t]=i,i.onload=function(){s.callback&&s.callback(this)},i.onerror=function(){this.src=e,s.callback&&s.callback(this)},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.fontDrawThreshold=3,this.id=void 0,this.x=null,this.y=null,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.imagelist=e,this.grouplist=i,this.fx=0,this.fy=0,this.vx=0,this.vy=0,this.damping=s.physics.damping,this.fixedData={x:null,y:null},this.setProperties(t,n),this.resetCluster(),this.dynamicEdgesLength=0,this.clusterSession=0,this.clusterSizeWidthFactor=s.clustering.nodeScaling.width,this.clusterSizeHeightFactor=s.clustering.nodeScaling.height,this.clusterSizeRadiusFactor=s.clustering.nodeScaling.radius,this.maxNodeSizeIncrements=s.clustering.maxNodeSizeIncrements,this.growthIndicator=0,this.networkScaleInv=1,this.networkScale=1,this.canvasTopLeft={x:-300,y:-300},this.canvasBottomRight={x:300,y:300},this.parentEdgeId=null}var o=i(1);s.prototype.resetCluster=function(){this.formationScale=void 0,this.clusterSize=1,this.containedNodes={},this.containedEdges={},this.clusterSessions=[]},s.prototype.attachEdge=function(t){-1==this.edges.indexOf(t)&&this.edges.push(t),-1==this.dynamicEdges.indexOf(t)&&this.dynamicEdges.push(t),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.detachEdge=function(t){var e=this.edges.indexOf(t);-1!=e&&this.edges.splice(e,1),e=this.dynamicEdges.indexOf(t),-1!=e&&this.dynamicEdges.splice(e,1),this.dynamicEdgesLength=this.dynamicEdges.length},s.prototype.setProperties=function(t,e){if(t){var i=["borderWidth","borderWidthSelected","shape","image","brokenImage","radius","fontColor","fontSize","fontFace","fontFill","group","mass"];if(o.selectiveDeepExtend(i,this.options,t),void 0!==t.id&&(this.id=t.id),void 0!==t.label&&(this.label=t.label,this.originalLabel=t.label),void 0!==t.title&&(this.title=t.title),void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.value&&(this.value=t.value),void 0!==t.level&&(this.level=t.level,this.preassignedLevel=!0),void 0!==t.horizontalAlignLeft&&(this.horizontalAlignLeft=t.horizontalAlignLeft),void 0!==t.verticalAlignTop&&(this.verticalAlignTop=t.verticalAlignTop),void 0!==t.triggerFunction&&(this.triggerFunction=t.triggerFunction),void 0===this.id)throw"Node must have an id";if("number"==typeof this.options.group||"string"==typeof this.options.group&&""!=this.options.group){var s=this.grouplist.get(this.options.group);for(var n in s)s.hasOwnProperty(n)&&(this.options[n]=s[n])}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&&(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"text":this.draw=this._drawText,this.resize=this._resizeText;break;case"dot":this.draw=this._drawDot,this.resize=this._resizeShape;break;case"square":this.draw=this._drawSquare,this.resize=this._resizeShape;break;case"triangle":this.draw=this._drawTriangle,this.resize=this._resizeShape;break;case"triangleDown":this.draw=this._drawTriangleDown,this.resize=this._resizeShape;break;case"star":this.draw=this._drawStar,this.resize=this._resizeShape;break;default:this.draw=this._drawEllipse,this.resize=this._resizeEllipse}this._reset()}},s.prototype.select=function(){this.selected=!0,this._reset()},s.prototype.unselect=function(){this.selected=!1,this._reset()},s.prototype.clearSizeCache=function(){this._reset()},s.prototype._reset=function(){this.width=void 0,this.height=void 0},s.prototype.getTitle=function(){return"function"==typeof this.title?this.title():this.title},s.prototype.distanceToBorder=function(t,e){var i=1;switch(this.width||this.resize(t),this.options.shape){case"circle":case"dot":return this.options.radius+i;case"ellipse":var s=this.width/2,o=this.height/2,n=Math.sin(e)*s,r=Math.cos(e)*o;return s*o/Math.sqrt(n*n+r*r);case"box":case"image":case"text":default:return this.width?Math.min(Math.abs(this.width/2/Math.cos(e)),Math.abs(this.height/2/Math.sin(e)))+i:0}},s.prototype._setForce=function(t,e){this.fx=t,this.fy=e},s.prototype._addForce=function(t,e){this.fx+=t,this.fy+=e},s.prototype.discreteStep=function(t){if(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.xFixed)this.fx=0,this.vx=0;else{var i=this.damping*this.vx,s=(this.fx-i)/this.options.mass;this.vx+=s*t,this.vx=Math.abs(this.vx)>e?this.vx>0?e:-e:this.vx,this.x+=this.vx*t}if(this.yFixed)this.fy=0,this.vy=0;else{var o=this.damping*this.vy,n=(this.fy-o)/this.options.mass;this.vy+=n*t,this.vy=Math.abs(this.vy)>e?this.vy>0?e:-e:this.vy,this.y+=this.vy*t}},s.prototype.isFixed=function(){return this.xFixed&&this.yFixed},s.prototype.isMoving=function(t){var e=Math.sqrt(Math.pow(this.vx,2)+Math.pow(this.vy,2));return e>t},s.prototype.isSelected=function(){return this.selected},s.prototype.getValue=function(){return this.value},s.prototype.getDistance=function(t,e){var i=this.x-t,s=this.y-e;return Math.sqrt(i*i+s*s)},s.prototype.setValueRange=function(t,e){if(!this.radiusFixed&&void 0!==this.value)if(e==t)this.options.radius=(this.options.radiusMin+this.options.radiusMax)/2;else{var i=(this.options.radiusMax-this.options.radiusMin)/(e-t);this.options.radius=(this.value-t)*i+this.options.radiusMin}this.baseRadiusValue=this.options.radius},s.prototype.draw=function(){throw"Draw method not initialized for node"},s.prototype.resize=function(){throw"Resize method not initialized for node"},s.prototype.isOverlappingWith=function(t){return this.leftt.left&&this.topt.top},s.prototype._resizeImage=function(){if(!this.width||!this.height){var t,e;if(this.value){this.options.radius=this.baseRadiusValue;var i=this.imageObj.height/this.imageObj.width;void 0!==i?(t=this.options.radius||this.imageObj.width,e=this.options.radius*i||this.imageObj.height):(t=0,e=0)}else t=this.imageObj.width,e=this.imageObj.height;this.width=t,this.height=e,this.growthIndicator=0,this.width>0&&this.height>0&&(this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t)}},s.prototype._drawImage=function(t){this._resizeImage(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e;if(0!=this.imageObj.width){if(this.clusterSize>1){var i=this.clusterSize>1?10:0;i*=this.networkScaleInv,i=Math.min(.2*this.width,i),t.globalAlpha=.5,t.drawImage(this.imageObj,this.left-i,this.top-i,this.width+2*i,this.height+2*i)}t.globalAlpha=1,t.drawImage(this.imageObj,this.left,this.top,this.width,this.height),e=this.y+this.height/2}else e=this.y;this._label(t,this.label,this.x,e,void 0,"top")},s.prototype._resizeBox=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.growthIndicator=this.width-(i.width+2*e)}},s.prototype._drawBox=function(t){this._resizeBox(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.roundRect(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth,this.options.radius),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.options.color.background,t.roundRect(this.left,this.top,this.width,this.height,this.options.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},s.prototype._resizeDatabase=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=i.width+2*e;this.width=s,this.height=s,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-s}},s.prototype._drawDatabase=function(t){this._resizeDatabase(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.database(this.x-this.width/2-2*t.lineWidth,this.y-.5*this.height-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.database(this.x-this.width/2,this.y-.5*this.height,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},s.prototype._resizeCircle=function(t){if(!this.width){var e=5,i=this.getTextSize(t),s=Math.max(i.width,i.height)+2*e;this.options.radius=s/2,this.width=s,this.height=s,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.options.radius-.5*s}},s.prototype._drawCircle=function(t){this._resizeCircle(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var e=2.5,i=this.options.borderWidth,s=this.options.borderWidthSelected||2*this.options.borderWidth;t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.circle(this.x,this.y,this.options.radius+2*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.circle(this.x,this.y,this.options.radius),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},s.prototype._resizeEllipse=function(t){if(!this.width){var e=this.getTextSize(t);this.width=1.5*e.width,this.height=2*e.height,this.width1&&(t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.ellipse(this.left-2*t.lineWidth,this.top-2*t.lineWidth,this.width+4*t.lineWidth,this.height+4*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?s:i)+(this.clusterSize>1?e:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t.ellipse(this.left,this.top,this.width,this.height),t.fill(),t.stroke(),this._label(t,this.label,this.x,this.y)},s.prototype._drawDot=function(t){this._drawShape(t,"circle")},s.prototype._drawTriangle=function(t){this._drawShape(t,"triangle")},s.prototype._drawTriangleDown=function(t){this._drawShape(t,"triangleDown")},s.prototype._drawSquare=function(t){this._drawShape(t,"square")},s.prototype._drawStar=function(t){this._drawShape(t,"star")},s.prototype._resizeShape=function(){if(!this.width){this.options.radius=this.baseRadiusValue;var t=2*this.options.radius;this.width=t,this.height=t,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=.5*Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-t}},s.prototype._drawShape=function(t,e){this._resizeShape(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2;var i=2.5,s=this.options.borderWidth,o=this.options.borderWidthSelected||2*this.options.borderWidth,n=2;switch(e){case"dot":n=2;break;case"square":n=2;break;case"triangle":n=3;break;case"triangleDown":n=3;break;case"star":n=4}t.strokeStyle=this.selected?this.options.color.highlight.border:this.hover?this.options.color.hover.border:this.options.color.border,this.clusterSize>1&&(t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t[e](this.x,this.y,this.options.radius+n*t.lineWidth),t.stroke()),t.lineWidth=(this.selected?o:s)+(this.clusterSize>1?i:0),t.lineWidth*=this.networkScaleInv,t.lineWidth=Math.min(this.width,t.lineWidth),t.fillStyle=this.selected?this.options.color.highlight.background:this.hover?this.options.color.hover.background:this.options.color.background,t[e](this.x,this.y,this.options.radius),t.fill(),t.stroke(),this.label&&this._label(t,this.label,this.x,this.y+this.height/2,void 0,"top",!0)},s.prototype._resizeText=function(t){if(!this.width){var e=5,i=this.getTextSize(t);this.width=i.width+2*e,this.height=i.height+2*e,this.width+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeWidthFactor,this.height+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeHeightFactor,this.options.radius+=Math.min(this.clusterSize-1,this.maxNodeSizeIncrements)*this.clusterSizeRadiusFactor,this.growthIndicator=this.width-(i.width+2*e) }},s.prototype._drawText=function(t){this._resizeText(t),this.left=this.x-this.width/2,this.top=this.y-this.height/2,this._label(t,this.label,this.x,this.y)},s.prototype._label=function(t,e,i,s,o,n,r){if(e&&Number(this.options.fontSize)*this.networkScale>this.fontDrawThreshold){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;var a=e.split("\n"),h=a.length,d=Number(this.options.fontSize)+4,l=s+(1-h)/2*d;1==r&&(l=s+(1-h)/(2*d));for(var c=t.measureText(a[0]).width,p=1;h>p;p++){var u=t.measureText(a[p]).width;c=u>c?u:c}var m=this.options.fontSize*h,f=i-c/2,g=s-m/2;"top"==n&&(g+=.5*d),this.labelDimensions={top:g,left:f,width:c,height:m,yLine:l},void 0!==this.options.fontFill&&null!==this.options.fontFill&&"none"!==this.options.fontFill&&(t.fillStyle=this.options.fontFill,t.fillRect(f,g,c,m)),t.fillStyle=this.options.fontColor||"black",t.textAlign=o||"center",t.textBaseline=n||"middle";for(var p=0;h>p;p++)t.fillText(a[p],i,l),l+=d}},s.prototype.getTextSize=function(t){if(void 0!==this.label){t.font=(this.selected?"bold ":"")+this.options.fontSize+"px "+this.options.fontFace;for(var e=this.label.split("\n"),i=(Number(this.options.fontSize)+4)*e.length,s=0,o=0,n=e.length;n>o;o++)s=Math.max(s,t.measureText(e[o]).width);return{width:s,height:i}}return{width:0,height:0}},s.prototype.inArea=function(){return void 0!==this.width?this.x+this.width*this.networkScaleInv>=this.canvasTopLeft.x&&this.x-this.width*this.networkScaleInv=this.canvasTopLeft.y&&this.y-this.height*this.networkScaleInv=this.canvasTopLeft.x&&this.x=this.canvasTopLeft.y&&this.ys&&(n=s-e-this.padding),no&&(r=o-i-this.padding),ri;i++)if(e.id===r.nodes[i].id){o=r.nodes[i];break}for(o||(o={id:e.id},t.node&&(o.attr=a(o.attr,t.node))),i=n.length-1;i>=0;i--){var h=n[i];h.nodes||(h.nodes=[]),-1==h.nodes.indexOf(o)&&h.nodes.push(o)}e.attr&&(o.attr=a(o.attr,e.attr))}function l(t,e){if(t.edges||(t.edges=[]),t.edges.push(e),t.edge){var i=a({},t.edge);e.attr=a(i,e.attr)}}function c(t,e,i,s,o){var n={from:e,to:i,type:s};return t.edge&&(n.attr=a({},t.edge)),n.attr=a(n.attr||{},o),n}function p(){for(k=M.NULL,L="";" "==O||" "==O||"\n"==O||"\r"==O;)o();do{var t=!1;if("#"==O){for(var e=T-1;" "==E.charAt(e)||" "==E.charAt(e);)e--;if("\n"==E.charAt(e)||""==E.charAt(e)){for(;""!=O&&"\n"!=O;)o();t=!0}}if("/"==O&&"/"==n()){for(;""!=O&&"\n"!=O;)o();t=!0}if("/"==O&&"*"==n()){for(;""!=O;){if("*"==O&&"/"==n()){o(),o();break}o()}t=!0}for(;" "==O||" "==O||"\n"==O||"\r"==O;)o()}while(t);if(""==O)return void(k=M.DELIMITER);var i=O+n();if(C[i])return k=M.DELIMITER,L=i,o(),void o();if(C[O])return k=M.DELIMITER,L=O,void o();if(r(O)||"-"==O){for(L+=O,o();r(O);)L+=O,o();return"false"==L?L=!1:"true"==L?L=!0:isNaN(Number(L))||(L=Number(L)),void(k=M.IDENTIFIER)}if('"'==O){for(o();""!=O&&('"'!=O||'"'==O&&'"'==n());)L+=O,'"'==O&&o(),o();if('"'!=O)throw x('End of string " expected');return o(),void(k=M.IDENTIFIER)}for(k=M.UNKNOWN;""!=O;)L+=O,o();throw new SyntaxError('Syntax error in part "'+w(L,30)+'"')}function u(){var t={};if(s(),p(),"strict"==L&&(t.strict=!0,p()),("graph"==L||"digraph"==L)&&(t.type=L,p()),k==M.IDENTIFIER&&(t.id=L,p()),"{"!=L)throw x("Angle bracket { expected");if(p(),m(t),"}"!=L)throw x("Angle bracket } expected");if(p(),""!==L)throw x("End of file expected");return p(),delete t.node,delete t.edge,delete t.graph,t}function m(t){for(;""!==L&&"}"!=L;)f(t),";"==L&&p()}function f(t){var e=g(t);if(e)return void b(t,e);var i=v(t);if(!i){if(k!=M.IDENTIFIER)throw x("Identifier expected");var s=L;if(p(),"="==L){if(p(),k!=M.IDENTIFIER)throw x("Identifier expected");t[s]=L,p()}else y(t,s)}}function g(t){var e=null;if("subgraph"==L&&(e={},e.type="subgraph",p(),k==M.IDENTIFIER&&(e.id=L,p())),"{"==L){if(p(),e||(e={}),e.parent=t,e.node=t.node,e.edge=t.edge,e.graph=t.graph,m(e),"}"!=L)throw x("Angle bracket } expected");p(),delete e.node,delete e.edge,delete e.graph,delete e.parent,t.subgraphs||(t.subgraphs=[]),t.subgraphs.push(e)}return e}function v(t){return"node"==L?(p(),t.node=_(),"node"):"edge"==L?(p(),t.edge=_(),"edge"):"graph"==L?(p(),t.graph=_(),"graph"):null}function y(t,e){var i={id:e},s=_();s&&(i.attr=s),d(t,i),b(t,e)}function b(t,e){for(;"->"==L||"--"==L;){var i,s=L;p();var o=g(t);if(o)i=o;else{if(k!=M.IDENTIFIER)throw x("Identifier or subgraph expected");i=L,d(t,{id:i}),p()}var n=_(),r=c(t,e,i,s,n);l(t,r),e=i}}function _(){for(var t=null;"["==L;){for(p(),t={};""!==L&&"]"!=L;){if(k!=M.IDENTIFIER)throw x("Attribute name expected");var e=L;if(p(),"="!=L)throw x("Equal sign = expected");if(p(),k!=M.IDENTIFIER)throw x("Attribute value expected");var i=L;h(t,e,i),p(),","==L&&p()}if("]"!=L)throw x("Bracket ] expected");p()}return t}function x(t){return new SyntaxError(t+', got "'+w(L,30)+'" (char '+T+")")}function w(t,e){return t.length<=e?t:t.substr(0,27)+"..."}function S(t,e,i){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},E="",T=0,O="",L="",k=M.NULL,N=/[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;r=s&&(s=864e5),e=new Date(e.valueOf()-.05*s),i=new Date(i.valueOf()+.05*s)}return{start:e,end:i}},s.prototype.setWindow=function(t,e,i){var s=i&&void 0!==i.animate?i.animate:!0;if(1==arguments.length){var o=arguments[0];this.range.setRange(o.start,o.end,s)}else this.range.setRange(t,e,s)},s.prototype.moveTo=function(t,e){var i=this.range.end-this.range.start,s=r.convert(t,"Date").valueOf(),o=s-i/2,n=s+i/2,a=e&&void 0!==e.animate?e.animate:!0;this.range.setRange(o,n,a)},s.prototype.getWindow=function(){var t=this.range.getRange();return{start:new Date(t.start),end:new Date(t.end)}},s.prototype.redraw=function(){var t=!1,e=this.options,i=this.props,s=this.dom;if(s){h.updateHiddenDates(this.body,this.options.hiddenDates),"top"==e.orientation?(r.addClassName(s.root,"top"),r.removeClassName(s.root,"bottom")):(r.removeClassName(s.root,"top"),r.addClassName(s.root,"bottom")),s.root.style.maxHeight=r.option.asSize(e.maxHeight,""),s.root.style.minHeight=r.option.asSize(e.minHeight,""),s.root.style.width=r.option.asSize(e.width,""),i.border.left=(s.centerContainer.offsetWidth-s.centerContainer.clientWidth)/2,i.border.right=i.border.left,i.border.top=(s.centerContainer.offsetHeight-s.centerContainer.clientHeight)/2,i.border.bottom=i.border.top;var o=s.root.offsetHeight-s.root.clientHeight,n=s.root.offsetWidth-s.root.clientWidth;0===s.centerContainer.clientHeight&&(i.border.left=i.border.top,i.border.right=i.border.left),0===s.root.clientHeight&&(n=o),i.center.height=s.center.offsetHeight,i.left.height=s.left.offsetHeight,i.right.height=s.right.offsetHeight,i.top.height=s.top.clientHeight||-i.border.top,i.bottom.height=s.bottom.clientHeight||-i.border.bottom;var a=Math.max(i.left.height,i.center.height,i.right.height),d=i.top.height+a+i.bottom.height+o+i.border.top+i.border.bottom;s.root.style.height=r.option.asSize(e.height,d+"px"),i.root.height=s.root.offsetHeight,i.background.height=i.root.height-o;var l=i.root.height-i.top.height-i.bottom.height-o;i.centerContainer.height=l,i.leftContainer.height=l,i.rightContainer.height=i.leftContainer.height,i.root.width=s.root.offsetWidth,i.background.width=i.root.width-n,i.left.width=s.leftContainer.clientWidth||-i.border.left,i.leftContainer.width=i.left.width,i.right.width=s.rightContainer.clientWidth||-i.border.right,i.rightContainer.width=i.right.width;var c=i.root.width-i.left.width-i.right.width-n;i.center.width=c,i.centerContainer.width=c,i.top.width=c,i.bottom.width=c,s.background.style.height=i.background.height+"px",s.backgroundVertical.style.height=i.background.height+"px",s.backgroundHorizontal.style.height=i.centerContainer.height+"px",s.centerContainer.style.height=i.centerContainer.height+"px",s.leftContainer.style.height=i.leftContainer.height+"px",s.rightContainer.style.height=i.rightContainer.height+"px",s.background.style.width=i.background.width+"px",s.backgroundVertical.style.width=i.centerContainer.width+"px",s.backgroundHorizontal.style.width=i.background.width+"px",s.centerContainer.style.width=i.center.width+"px",s.top.style.width=i.top.width+"px",s.bottom.style.width=i.bottom.width+"px",s.background.style.left="0",s.background.style.top="0",s.backgroundVertical.style.left=i.left.width+i.border.left+"px",s.backgroundVertical.style.top="0",s.backgroundHorizontal.style.left="0",s.backgroundHorizontal.style.top=i.top.height+"px",s.centerContainer.style.left=i.left.width+"px",s.centerContainer.style.top=i.top.height+"px",s.leftContainer.style.left="0",s.leftContainer.style.top=i.top.height+"px",s.rightContainer.style.left=i.left.width+i.center.width+"px",s.rightContainer.style.top=i.top.height+"px",s.top.style.left=i.left.width+"px",s.top.style.top="0",s.bottom.style.left=i.left.width+"px",s.bottom.style.top=i.top.height+i.centerContainer.height+"px",this._updateScrollTop();var p=this.props.scrollTop;"bottom"==e.orientation&&(p+=Math.max(this.props.centerContainer.height-this.props.center.height-this.props.border.top-this.props.border.bottom,0)),s.center.style.left="0",s.center.style.top=p+"px",s.left.style.left="0",s.left.style.top=p+"px",s.right.style.left="0",s.right.style.top=p+"px";var u=0==this.props.scrollTop?"hidden":"",m=this.props.scrollTop==this.props.scrollTopMin?"hidden":"";if(s.shadowTop.style.visibility=u,s.shadowBottom.style.visibility=m,s.shadowTopLeft.style.visibility=u,s.shadowBottomLeft.style.visibility=m,s.shadowTopRight.style.visibility=u,s.shadowBottomRight.style.visibility=m,this.components.forEach(function(e){t=e.redraw()||t}),t){var f=3;this.redrawCount0&&(this.props.scrollTop=0),this.props.scrollTops;s++){var o=s%2===0?1.3*i:.5*i;this.lineTo(t+o*Math.sin(2*s*Math.PI/10),e-o*Math.cos(2*s*Math.PI/10))}this.closePath()},CanvasRenderingContext2D.prototype.roundRect=function(t,e,i,s,o){var n=Math.PI/180;0>i-2*o&&(o=i/2),0>s-2*o&&(o=s/2),this.beginPath(),this.moveTo(t+o,e),this.lineTo(t+i-o,e),this.arc(t+i-o,e+o,o,270*n,360*n,!1),this.lineTo(t+i,e+s-o),this.arc(t+i-o,e+s-o,o,0,90*n,!1),this.lineTo(t+o,e+s),this.arc(t+o,e+s-o,o,90*n,180*n,!1),this.lineTo(t,e+o),this.arc(t+o,e+o,o,180*n,270*n,!1)},CanvasRenderingContext2D.prototype.ellipse=function(t,e,i,s){var o=.5522848,n=i/2*o,r=s/2*o,a=t+i,h=e+s,d=t+i/2,l=e+s/2;this.beginPath(),this.moveTo(t,l),this.bezierCurveTo(t,l-r,d-n,e,d,e),this.bezierCurveTo(d+n,e,a,l-r,a,l),this.bezierCurveTo(a,l+r,d+n,h,d,h),this.bezierCurveTo(d-n,h,t,l+r,t,l)},CanvasRenderingContext2D.prototype.database=function(t,e,i,s){var o=1/3,n=i,r=s*o,a=.5522848,h=n/2*a,d=r/2*a,l=t+n,c=e+r,p=t+n/2,u=e+r/2,m=e+(s-r/2),f=e+s;this.beginPath(),this.moveTo(l,u),this.bezierCurveTo(l,u+d,p+h,c,p,c),this.bezierCurveTo(p-h,c,t,u+d,t,u),this.bezierCurveTo(t,u-d,p-h,e,p,e),this.bezierCurveTo(p+h,e,l,u-d,l,u),this.lineTo(l,m),this.bezierCurveTo(l,m+d,p+h,f,p,f),this.bezierCurveTo(p-h,f,t,m+d,t,m),this.lineTo(t,u)},CanvasRenderingContext2D.prototype.arrow=function(t,e,i,s){var o=t-s*Math.cos(i),n=e-s*Math.sin(i),r=t-.9*s*Math.cos(i),a=e-.9*s*Math.sin(i),h=o+s/3*Math.cos(i+.5*Math.PI),d=n+s/3*Math.sin(i+.5*Math.PI),l=o+s/3*Math.cos(i-.5*Math.PI),c=n+s/3*Math.sin(i-.5*Math.PI);this.beginPath(),this.moveTo(t,e),this.lineTo(h,d),this.lineTo(r,a),this.lineTo(l,c),this.closePath()},CanvasRenderingContext2D.prototype.dashedLine=function(t,e,i,s,o){o||(o=[10,5]),0==p&&(p=.001);var n=o.length;this.moveTo(t,e);for(var r=i-t,a=s-e,h=a/r,d=Math.sqrt(r*r+a*a),l=0,c=!0;d>=.1;){var p=o[l++%n];p>d&&(p=d);var u=Math.sqrt(p*p/(1+h*h));0>r&&(u=-u),t+=u,e+=h*u,this[c?"lineTo":"moveTo"](t,e),d-=p,c=!c}})},function(t,e,i){function s(t,e){this.groupId=t,this.options=e}var o=i(2),n=i(53);s.prototype.getYRange=function(t){for(var e=t[0].y,i=t[0].y,s=0;st[s].y?t[s].y:e,i=i0){var r,a,h=Number(i.svg.style.height.replace("px",""));if(r=o.getSVGElement("path",i.svgElements,i.svg),r.setAttributeNS(null,"class",e.className),void 0!==e.style&&r.setAttributeNS(null,"style",e.style),a=1==e.options.catmullRom.enabled?s._catmullRom(t,e):s._linear(t),1==e.options.shaded.enabled){var d,l=o.getSVGElement("path",i.svgElements,i.svg);d="top"==e.options.shaded.orientation?"M"+t[0].x+",0 "+a+"L"+t[t.length-1].x+",0":"M"+t[0].x+","+h+" "+a+"L"+t[t.length-1].x+","+h,l.setAttributeNS(null,"class",e.className+" fill"),void 0!==e.options.shaded.style&&l.setAttributeNS(null,"style",e.options.shaded.style),l.setAttributeNS(null,"d",d)}r.setAttributeNS(null,"d","M"+a),1==e.options.drawPoints.enabled&&n.draw(t,e,i)}},s._catmullRomUniform=function(t){for(var e,i,s,o,n,r,a=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",h=1/6,d=t.length,l=0;d-1>l;l++)e=0==l?t[0]:t[l-1],i=t[l],s=t[l+1],o=d>l+2?t[l+2]:s,n={x:(-e.x+6*i.x+s.x)*h,y:(-e.y+6*i.y+s.y)*h},r={x:(i.x+6*s.x-o.x)*h,y:(i.y+6*s.y-o.y)*h},a+="C"+n.x+","+n.y+" "+r.x+","+r.y+" "+s.x+","+s.y+" ";return a},s._catmullRom=function(t,e){var i=e.options.catmullRom.alpha;if(0==i||void 0===i)return this._catmullRomUniform(t);for(var s,o,n,r,a,h,d,l,c,p,u,m,f,g,v,y,b,_,x,w=Math.round(t[0].x)+","+Math.round(t[0].y)+" ",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)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={},o={keydown:{},keyup:{}},n={};for(e=97;122>=e;e++)n[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)n[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)n[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)n["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)n["num"+e]={code:96+e,shift:!1};n["num*"]={code:106,shift:!1},n["num+"]={code:107,shift:!1},n["num-"]={code:109,shift:!1},n["num/"]={code:111,shift:!1},n["num."]={code:110,shift:!1},n.left={code:37,shift:!1},n.up={code:38,shift:!1},n.right={code:39,shift:!1},n.down={code:40,shift:!1},n.space={code:32,shift:!1},n.enter={code:13,shift:!1},n.shift={code:16,shift:void 0},n.esc={code:27,shift:!1},n.backspace={code:8,shift:!1},n.tab={code:9,shift:!1},n.ctrl={code:17,shift:!1},n.alt={code:18,shift:!1},n["delete"]={code:46,shift:!1},n.pageup={code:33,shift:!1},n.pagedown={code:34,shift:!1},n["="]={code:187,shift:!1},n["-"]={code:189,shift:!1},n["]"]={code:221,shift:!1},n["["]={code:219,shift:!1};var r=function(t){h(t,"keydown")},a=function(t){h(t,"keyup")},h=function(t,e){if(void 0!==o[e][t.keyCode]){for(var s=o[e][t.keyCode],n=0;n0)for(i in He)s=He[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function b(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&k(t[s])!==k(e[s]))&&r++;return r+n}function T(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=mi[t]||fi[e]||e}return t}function O(t){var e,i,s={};for(i in t)a(t,i)&&(e=T(i),e&&(s[e]=t[i]));return s}function L(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}De[t]=function(s,o){var r,a,h=De._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=De().utc().set(i,t);return h.call(De._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function k(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function N(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function I(t,e,i){return pe(De([t,11,31+e-i]),e,i).week}function A(t){return z(t)?366:365}function z(t){return t%4===0&&t%100!==0||t%400===0}function P(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Ne]<0||t._a[Ne]>11?Ne:t._a[Ie]<1||t._a[Ie]>N(t._a[ke],t._a[Ne])?Ie:t._a[Ae]<0||t._a[Ae]>24||24===t._a[Ae]&&(0!==t._a[ze]||0!==t._a[Pe]||0!==t._a[Re])?Ae:t._a[ze]<0||t._a[ze]>59?ze:t._a[Pe]<0||t._a[Pe]>59?Pe:t._a[Re]<0||t._a[Re]>999?Re:-1,t._pf._overflowDayOfYear&&(ke>e||e>Ie)&&(e=Ie),t._pf.overflow=e)}function R(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 F(t){return t?t.toLowerCase().replace("_","-"):t}function H(t){for(var e,i,s,o,n=0;n0;){if(s=Y(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&E(o,i,!0)>=e-1)break;e--}n++}return null}function Y(t){var e=null;if(!Fe[t]&&Ye)try{e=De.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),De.locale(e)}catch(i){}return Fe[t]}function B(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(De.isMoment(t)||C(t)?+t:+De(t))-+i,i._d.setTime(+i._d+s),De.updateOffset(i,!1),i):De(t).local()}function W(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,i,s=t.match(je);for(e=0,i=s.length;i>e;e++)s[e]=_i[s[e]]?_i[s[e]]:W(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 j(t,e){return t.isValid()?(e=U(e,t.localeData()),gi[e]||(gi[e]=G(e)),gi[e](t)):t.localeData().invalidDate()}function U(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Ue.lastIndex=0;s>=0&&Ue.test(t);)t=t.replace(Ue,i),Ue.lastIndex=0,s-=1;return t}function V(t,e){var i,s=e._strict;switch(t){case"Q":return ii;case"DDDD":return oi;case"YYYY":case"GGGG":case"gggg":return s?ni:qe;case"Y":case"G":case"g":return ai;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?ri:Ze;case"S":if(s)return ii;case"SS":if(s)return si;case"SSS":if(s)return oi;case"DDD":return Xe;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Qe;case"a":case"A":return e._locale._meridiemParse;case"x":return ti;case"X":return ei;case"Z":case"ZZ":return $e;case"T":return Je;case"SSSS":return Ke;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?si:Ve;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ve;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(ee(te(t.replace("\\","")),"i"))}}function X(t){t=t||"";var e=t.match($e)||[],i=e[e.length-1]||[],s=(i+"").match(pi)||["-",0,0],o=+(60*s[1])+k(s[2]);return"+"===s[0]?-o:o}function q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Ne]=3*(k(e)-1));break;case"M":case"MM":null!=e&&(o[Ne]=k(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[Ne]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ie]=k(e));break;case"Do":null!=e&&(o[Ie]=k(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=k(e));break;case"YY":o[ke]=De.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[ke]=k(e);break;case"a":case"A":i._isPm=i._locale.isPM(e);break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[Ae]=k(e);break;case"m":case"mm":o[ze]=k(e);break;case"s":case"ss":o[Pe]=k(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Re]=k(1e3*("0."+e));break;case"x":i._d=new Date(k(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=X(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]=k(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=De.parseTwoDigitYear(e)}}function Z(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[ke],pe(De(),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[ke],pe(De(),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=ue(i,s,o,a,n),t._a[ke]=h.year,t._dayOfYear=h.dayOfYear}function K(t){var e,i,s,o,n=[];if(!t._d){for(s=$(t),t._w&&null==t._a[Ie]&&null==t._a[Ne]&&Z(t),t._dayOfYear&&(o=r(t._a[ke],s[ke]),t._dayOfYear>A(o)&&(t._pf._overflowDayOfYear=!0),i=he(o,0,t._dayOfYear),t._a[Ne]=i.getUTCMonth(),t._a[Ie]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Ae]&&0===t._a[ze]&&0===t._a[Pe]&&0===t._a[Re]&&(t._nextDay=!0,t._a[Ae]=0),t._d=(t._useUTC?he:ae).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm),t._nextDay&&(t._a[Ae]=24)}}function Q(t){var e;t._d||(e=O(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],K(t))}function $(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function J(t){if(t._f===De.ISO_8601)return void se(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=U(t._f,t._locale).match(je)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),_i[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),q(o,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(o);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[Ae]<=12&&(t._pf.bigHour=n),t._isPm&&t._a[Ae]<12&&(t._a[Ae]+=12),t._isPm===!1&&12===t._a[Ae]&&(t._a[Ae]=0),K(t),P(t)}function te(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function ee(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(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));v(t,i||e)}function se(t){var e,i,s=t._i,o=hi.exec(s);if(o){for(t._pf.iso=!0,e=0,i=li.length;i>e;e++)if(li[e][1].exec(s)){t._f=li[e][0]+(o[6]||" ");break}for(e=0,i=ci.length;i>e;e++)if(ci[e][1].exec(s)){t._f+=ci[e][0];break}s.match($e)&&(t._f+="Z"),J(t)}else t._isValid=!1}function oe(t){se(t),t._isValid===!1&&(delete t._isValid,De.createFromInputFallback(t))}function ne(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function he(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function de(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 le(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ce(t,e,i){var s=De.duration(t).abs(),o=Oe(s.as("s")),n=Oe(s.as("m")),r=Oe(s.as("h")),a=Oe(s.as("d")),h=Oe(s.as("M")),d=Oe(s.as("y")),l=o0,l[4]=i,le.apply({},l)}function pe(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=De(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ue(t,e,i,s,o){var n,r,a=he(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:A(t-1)+r}}function me(t){var e,i=t._i,s=t._f;return t._locale=t._locale||De.localeData(t._l),null===i||s===n&&""===i?De.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),De.isMoment(i)?new f(i,!0):(s?M(s)?ie(t):J(t):re(t),e=new f(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function fe(t,e){var i,s;if(1===e.length&&M(e[0])&&(e=e[0]),!e.length)return De();for(i=e[0],s=1;s=0?"+":"-";return e+_(Math.abs(t),6)},gg:function(){return _(this.weekYear()%100,2)},gggg:function(){return _(this.weekYear(),4)},ggggg:function(){return _(this.weekYear(),5)},GG:function(){return _(this.isoWeekYear()%100,2)},GGGG:function(){return _(this.isoWeekYear(),4)},GGGGG:function(){return _(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 k(this.milliseconds()/100)},SS:function(){return _(k(this.milliseconds()/10),2)},SSS:function(){return _(this.milliseconds(),3)},SSSS:function(){return _(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(k(t/60),2)+":"+_(k(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(k(t/60),2)+_(k(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()}},xi={},wi=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];yi.length;)Ce=yi.pop(),_i[Ce+"o"]=u(_i[Ce],Ce);for(;bi.length;)Ce=bi.pop(),_i[Ce+Ce]=p(_i[Ce],2);_i.DDDD=p(_i.DDD,3),v(m.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=De.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=De([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 pe(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),De=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(),me(o)},De.suppressDeprecationWarnings=!1,De.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":""))}),De.min=function(){var t=[].slice.call(arguments,0);return fe("isBefore",t)},De.max=function(){var t=[].slice.call(arguments,0);return fe("isAfter",t)},De.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(),me(o).utc()},De.unix=function(t){return De(1e3*t)},De.duration=function(t,e){var i,s,o,n,r=t,h=null;return De.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=We.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:k(h[Ie])*i,h:k(h[Ae])*i,m:k(h[ze])*i,s:k(h[Pe])*i,ms:k(h[Re])*i}):(h=Ge.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])}):"object"==typeof r&&("from"in r||"to"in r)&&(n=w(De(r.from),De(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new g(r),De.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},De.version=Ee,De.defaultFormat=di,De.ISO_8601=function(){},De.momentProperties=He,De.updateOffset=function(){},De.relativeTimeThreshold=function(t,e){return vi[t]===n?!1:e===n?vi[t]:(vi[t]=e,!0)},De.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return De.locale(t,e)}),De.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?De.defineLocale(t,e):De.localeData(t),i&&(De.duration._locale=De._locale=i)),De._locale._abbr},De.defineLocale=function(t,e){return null!==e?(e.abbr=t,Fe[t]||(Fe[t]=new m),Fe[t].set(e),De.locale(t),Fe[t]):(delete Fe[t],null)},De.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return De.localeData(t)}),De.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return De._locale;if(!M(t)){if(e=Y(t))return e;t=[t]}return H(t)},De.isMoment=function(t){return t instanceof f||null!=t&&a(t,"_isAMomentObject")},De.isDuration=function(t){return t instanceof g};for(Ce=wi.length-1;Ce>=0;--Ce)L(wi[Ce]);De.normalizeUnits=function(t){return T(t)},De.invalid=function(t){var e=De.utc(0/0);return null!=t?v(e._pf,t):e._pf.userInvalidated=!0,e -},De.parseZone=function(){return De.apply(null,arguments).parseZone()},De.parseTwoDigitYear=function(t){return k(t)+(k(t)>68?1900:2e3)},v(De.fn=f.prototype,{clone:function(){return De(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=De(this).utc();return 00:!1},parsingFlags:function(){return v({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.zone(0,t)},local:function(t){return this._isUTC&&(this.zone(0,t),this._isUTC=!1,t&&this.add(this._dateTzOffset(),"m")),this},format:function(t){var e=j(this,t||De.defaultFormat);return this.localeData().postformat(e)},add:S(1,"add"),subtract:S(-1,"subtract"),diff:function(t,e,i){var s,o,n,r=B(t,this),a=6e4*(this.zone()-r.zone());return e=T(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+r.daysInMonth()),o=12*(this.year()-r.year())+(this.month()-r.month()),n=this-De(this).startOf("month")-(r-De(r).startOf("month")),n-=6e4*(this.zone()-De(this).startOf("month").zone()-(r.zone()-De(r).startOf("month").zone())),o+=n/s,"year"===e&&(o/=12)):(s=this-r,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?o:b(o)},from:function(t,e){return De.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(De(),t)},calendar:function(t){var e=t||De(),i=B(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,De(e)))},isLeapYear:function(){return z(this.year())},isDST:function(){return this.zone()+t):(i=De.isMoment(t)?+t:+De(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=T("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=De.isMoment(t)?t:De(t),+t>+this):(i=De.isMoment(t)?+t:+De(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=De.apply(null,arguments),t>this?this:t}),zone:function(t,e){var i,s=this._offset||0;return null==t?this._isUTC?s:this._dateTzOffset():("string"==typeof t&&(t=X(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateTzOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.subtract(i,"m"),s!==t&&(!e||this._changeInProgress?D(this,De.duration(s-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,De.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?De(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return N(this.year(),this.month())},dayOfYear:function(t){var e=Oe((De(this).startOf("day")-De(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=pe(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=pe(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=pe(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 I(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return I(this.year(),t.dow,t.doy)},get:function(t){return t=T(t),this[t]()},set:function(t,e){return t=T(t),"function"==typeof this[t]&&this[t](e),this},locale:function(t){var e;return t===n?this._locale._abbr:(e=De.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},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),De.fn.millisecond=De.fn.milliseconds=be("Milliseconds",!1),De.fn.second=De.fn.seconds=be("Seconds",!1),De.fn.minute=De.fn.minutes=be("Minutes",!1),De.fn.hour=De.fn.hours=be("Hours",!0),De.fn.date=be("Date",!0),De.fn.dates=l("dates accessor is deprecated. Use date instead.",be("Date",!0)),De.fn.year=be("FullYear",!0),De.fn.years=l("years accessor is deprecated. Use year instead.",be("FullYear",!0)),De.fn.days=De.fn.day,De.fn.months=De.fn.month,De.fn.weeks=De.fn.week,De.fn.isoWeeks=De.fn.isoWeek,De.fn.quarters=De.fn.quarter,De.fn.toJSON=De.fn.toISOString,v(De.duration.fn=g.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=b(s/1e3),r.seconds=t%60,e=b(t/60),r.minutes=e%60,i=b(e/60),r.hours=i%24,o+=b(i/24),a=b(_e(o)),o-=b(xe(a)),n+=b(o/30),o%=30,a+=b(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 b(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12)},humanize:function(t){var e=ce(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=De.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=De.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=T(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=T(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*_e(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xe(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:De.fn.lang,locale:De.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}}),De.duration.fn.toString=De.duration.fn.toISOString;for(Ce in ui)a(ui,Ce)&&we(Ce.toLowerCase());De.duration.fn.asMilliseconds=function(){return this.as("ms")},De.duration.fn.asSeconds=function(){return this.as("s")},De.duration.fn.asMinutes=function(){return this.as("m")},De.duration.fn.asHours=function(){return this.as("h")},De.duration.fn.asDays=function(){return this.as("d")},De.duration.fn.asWeeks=function(){return this.as("weeks")},De.duration.fn.asMonths=function(){return this.as("M")},De.duration.fn.asYears=function(){return this.as("y")},De.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Ye?o.exports=De:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(Te.moment=Me),De}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Se(!0))}).call(this)}).call(e,function(){return this}(),i(71)(t))},function(t,e,i){var s;!function(o,n){function r(){a.READY||(w.determineEventTypes(),x.each(a.gestures,function(t){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){e.startWithClustering=function(){this.clusterToFit(this.constants.clustering.initialMaxNodes,!0),this.updateLabels(),this.stabilize&&this._stabilize(),this.start()},e.clusterToFit=function(t,e){for(var i=this.nodeIndices.length,s=50,o=0;i>t&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(t.clusterSizei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdgesLength?this._addToCluster(r,a,!1):1==r.dynamicEdgesLength&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e)for(c=0;l>c;c++)if(p=this.edges[d[c]],void 0!==p){var u=this.nodes[p.fromId==t.id?p.toId:p.fromId];u.dynamicEdges.length<=this.hubThreshold+s&&u.id!=t.id&&this._addToCluster(t,u,e)}}},e._addToCluster=function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdgesLength),t+=n.dynamicEdgesLength,e+=Math.pow(n.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37);e._clearManipulatorBar=function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM={},this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1},e._restoreOverloadedFunctions=function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},e._toggleEditMode=function(){this.editMode=!this.editMode;var t=this.manipulationDiv,e=this.closeDiv,i=this.editModeDiv;1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},e._createManipulatorBar=function(){this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];if(void 0!==this.edgeBeingEdited&&(this.edgeBeingEdited._disableControlNodes(),this.edgeBeingEdited=void 0,this.selectedControlNode=null,this.controlNodesActive=!1,this._redraw()),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,this.manipulationDOM={},1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM.addNodeSpan=document.createElement("span"),this.manipulationDOM.addNodeSpan.className="network-manipulationUI add",this.manipulationDOM.addNodeLabelSpan=document.createElement("span"),this.manipulationDOM.addNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addNodeLabelSpan.innerHTML=t.addNode,this.manipulationDOM.addNodeSpan.appendChild(this.manipulationDOM.addNodeLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.addEdgeSpan=document.createElement("span"),this.manipulationDOM.addEdgeSpan.className="network-manipulationUI connect",this.manipulationDOM.addEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.addEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addEdgeLabelSpan.innerHTML=t.addEdge,this.manipulationDOM.addEdgeSpan.appendChild(this.manipulationDOM.addEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.addNodeSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.addEdgeSpan),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?(this.manipulationDOM.seperatorLineDiv2=document.createElement("div"),this.manipulationDOM.seperatorLineDiv2.className="network-seperatorLine",this.manipulationDOM.editNodeSpan=document.createElement("span"),this.manipulationDOM.editNodeSpan.className="network-manipulationUI edit",this.manipulationDOM.editNodeLabelSpan=document.createElement("span"),this.manipulationDOM.editNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editNodeLabelSpan.innerHTML=t.editNode,this.manipulationDOM.editNodeSpan.appendChild(this.manipulationDOM.editNodeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv2),this.manipulationDiv.appendChild(this.manipulationDOM.editNodeSpan)):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.seperatorLineDiv3=document.createElement("div"),this.manipulationDOM.seperatorLineDiv3.className="network-seperatorLine",this.manipulationDOM.editEdgeSpan=document.createElement("span"),this.manipulationDOM.editEdgeSpan.className="network-manipulationUI edit",this.manipulationDOM.editEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.editEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editEdgeLabelSpan.innerHTML=t.editEdge,this.manipulationDOM.editEdgeSpan.appendChild(this.manipulationDOM.editEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv3),this.manipulationDiv.appendChild(this.manipulationDOM.editEdgeSpan)),0==this._selectionIsEmpty()&&(this.manipulationDOM.seperatorLineDiv4=document.createElement("div"),this.manipulationDOM.seperatorLineDiv4.className="network-seperatorLine",this.manipulationDOM.deleteSpan=document.createElement("span"),this.manipulationDOM.deleteSpan.className="network-manipulationUI delete",this.manipulationDOM.deleteLabelSpan=document.createElement("span"),this.manipulationDOM.deleteLabelSpan.className="network-manipulationLabel",this.manipulationDOM.deleteLabelSpan.innerHTML=t.del,this.manipulationDOM.deleteSpan.appendChild(this.manipulationDOM.deleteLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv4),this.manipulationDiv.appendChild(this.manipulationDOM.deleteSpan)),this.manipulationDOM.addNodeSpan.onclick=this._createAddNodeToolbar.bind(this),this.manipulationDOM.addEdgeSpan.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?this.manipulationDOM.editNodeSpan.onclick=this._editNode.bind(this):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.editEdgeSpan.onclick=this._createEditEdgeToolbar.bind(this)),0==this._selectionIsEmpty()&&(this.manipulationDOM.deleteSpan.onclick=this._deleteSelected.bind(this)),this.closeDiv.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{for(;this.editModeDiv.hasChildNodes();)this.editModeDiv.removeChild(this.editModeDiv.firstChild);this.manipulationDOM.editModeSpan=document.createElement("span"),this.manipulationDOM.editModeSpan.className="network-manipulationUI edit editmode",this.manipulationDOM.editModeLabelSpan=document.createElement("span"),this.manipulationDOM.editModeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editModeLabelSpan.innerHTML=t.edit,this.manipulationDOM.editModeSpan.appendChild(this.manipulationDOM.editModeLabelSpan),this.editModeDiv.appendChild(this.manipulationDOM.editModeSpan),this.manipulationDOM.editModeSpan.onclick=this._toggleEditMode.bind(this)}},e._createAddNodeToolbar=function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.addDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},e._createAddEdgeToolbar=function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0;var t=this.constants.locales[this.constants.locale];this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.edgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleDragEnd=this._handleDragEnd,this._handleTouch=this._handleConnect,this._manipulationReleaseOverload=function(){},this._handleDragStart=function(){},this._handleDragEnd=this._finishConnect,this._redraw()},e._createEditEdgeToolbar=function(){this._clearManipulatorBar(),this.controlNodesActive=!0,this.boundFunction&&this.off("select",this.boundFunction),this.edgeBeingEdited=this._getSelectedEdge(),this.edgeBeingEdited._enableControlNodes();var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.editEdgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleTap=this._handleTap,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleTouch=this._selectControlNode,this._handleTap=function(){},this._handleOnDrag=this._controlNodeDrag,this._handleDragStart=function(){},this._manipulationReleaseOverload=this._releaseControlNode,this._redraw()},e._selectControlNode=function(t){this.edgeBeingEdited.controlNodes.from.unselect(),this.edgeBeingEdited.controlNodes.to.unselect(),this.selectedControlNode=this.edgeBeingEdited._getSelectedControlNode(this._XconvertDOMtoCanvas(t.x),this._YconvertDOMtoCanvas(t.y)),null!==this.selectedControlNode&&(this.selectedControlNode.select(),this.freezeSimulation=!0),this._redraw()},e._controlNodeDrag=function(t){var e=this._getPointer(t.gesture.center);null!==this.selectedControlNode&&void 0!==this.selectedControlNode&&(this.selectedControlNode.x=this._XconvertDOMtoCanvas(e.x),this.selectedControlNode.y=this._YconvertDOMtoCanvas(e.y)),this._redraw()},e._releaseControlNode=function(t){var e=this._getNodeAt(t);null!==e?(1==this.edgeBeingEdited.controlNodes.from.selected&&(this._editEdge(e.id,this.edgeBeingEdited.to.id),this.edgeBeingEdited.controlNodes.from.unselect()),1==this.edgeBeingEdited.controlNodes.to.selected&&(this._editEdge(this.edgeBeingEdited.from.id,e.id),this.edgeBeingEdited.controlNodes.to.unselect())):this.edgeBeingEdited._restoreControlNodes(),this.freezeSimulation=!1,this._redraw()},e._handleConnect=function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);if(null!=e)if(e.clusterSize>1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=this.edges.connectionEdge;i.to.x=this._XconvertDOMtoCanvas(e.x),i.to.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start()}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button"); -var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.existing.length){for(var t=0;t0){this.constants.hierarchicalLayout.levelSeparation="RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation<0?this.constants.hierarchicalLayout.levelSeparation:-1*this.constants.hierarchicalLayout.levelSeparation:Math.abs(this.constants.hierarchicalLayout.levelSeparation),"RL"==this.constants.hierarchicalLayout.direction||"LR"==this.constants.hierarchicalLayout.direction?1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="vertical"):1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="horizontal");var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s=0;s1&&o.hierarchyEnumerated===!1&&this._setLevelDirected(o.level,o.edges,o.id)}},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=a.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing");var i=document.getElementById("graph_physicsMethod1"),d=document.getElementById("graph_physicsMethod2"),l=document.getElementById("graph_physicsMethod3");d.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(l.checked=!0);var c=document.getElementById("graph_toggleSmooth"),p=document.getElementById("graph_repositionNodes"),u=document.getElementById("graph_generateOptions");c.onclick=s.bind(this),p.onclick=o.bind(this),u.onclick=n.bind(this),c.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),i.onchange=r.bind(this),d.onchange=r.bind(this),l.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=67},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=i,s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.theta){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},e._placeInRegion=function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},e._splitBranch=function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}}])}); +}},s._getStackedBarYRange=function(t,e){for(var i,s=e[0].y,o=e[0].y,n=0;ne[n].y?e[n].y:s,o=ot[r].accumulated?t[r].accumulated:s,o=ot[s].y?t[s].y:e,i=is;++s)i[s].apply(this,e)}return this},e.prototype.listeners=function(t){return this._callbacks=this._callbacks||{},this._callbacks[t]||[]},e.prototype.hasListeners=function(t){return!!this.listeners(t).length}},function(t,e){var i,s,o;!function(n,r){s=[],i=r,o="function"==typeof i?i.apply(e,s):i,!(void 0!==o&&(t.exports=o))}(this,function(){function t(t){var e,i=t&&t.preventDefault||!1,s={},o={keydown:{},keyup:{}},n={};for(e=97;122>=e;e++)n[String.fromCharCode(e)]={code:65+(e-97),shift:!1};for(e=65;90>=e;e++)n[String.fromCharCode(e)]={code:e,shift:!0};for(e=0;9>=e;e++)n[""+e]={code:48+e,shift:!1};for(e=1;12>=e;e++)n["F"+e]={code:111+e,shift:!1};for(e=0;9>=e;e++)n["num"+e]={code:96+e,shift:!1};n["num*"]={code:106,shift:!1},n["num+"]={code:107,shift:!1},n["num-"]={code:109,shift:!1},n["num/"]={code:111,shift:!1},n["num."]={code:110,shift:!1},n.left={code:37,shift:!1},n.up={code:38,shift:!1},n.right={code:39,shift:!1},n.down={code:40,shift:!1},n.space={code:32,shift:!1},n.enter={code:13,shift:!1},n.shift={code:16,shift:void 0},n.esc={code:27,shift:!1},n.backspace={code:8,shift:!1},n.tab={code:9,shift:!1},n.ctrl={code:17,shift:!1},n.alt={code:18,shift:!1},n["delete"]={code:46,shift:!1},n.pageup={code:33,shift:!1},n.pagedown={code:34,shift:!1},n["="]={code:187,shift:!1},n["-"]={code:189,shift:!1},n["]"]={code:221,shift:!1},n["["]={code:219,shift:!1};var r=function(t){h(t,"keydown")},a=function(t){h(t,"keyup")},h=function(t,e){if(void 0!==o[e][t.keyCode]){for(var s=o[e][t.keyCode],n=0;n0)for(i in He)s=He[i],o=e[s],"undefined"!=typeof o&&(t[s]=o);return t}function b(t){return 0>t?Math.ceil(t):Math.floor(t)}function _(t,e,i){for(var s=""+Math.abs(t),o=t>=0;s.lengths;s++)(i&&t[s]!==e[s]||!i&&k(t[s])!==k(e[s]))&&r++;return r+n}function T(t){if(t){var e=t.toLowerCase().replace(/(.)s$/,"$1");t=mi[t]||fi[e]||e}return t}function O(t){var e,i,s={};for(i in t)a(t,i)&&(e=T(i),e&&(s[e]=t[i]));return s}function L(t){var e,i;if(0===t.indexOf("week"))e=7,i="day";else{if(0!==t.indexOf("month"))return;e=12,i="month"}De[t]=function(s,o){var r,a,h=De._locale[t],d=[];if("number"==typeof s&&(o=s,s=n),a=function(t){var e=De().utc().set(i,t);return h.call(De._locale,e,s||"")},null!=o)return a(o);for(r=0;e>r;r++)d.push(a(r));return d}}function k(t){var e=+t,i=0;return 0!==e&&isFinite(e)&&(i=e>=0?Math.floor(e):Math.ceil(e)),i}function N(t,e){return new Date(Date.UTC(t,e+1,0)).getUTCDate()}function I(t,e,i){return pe(De([t,11,31+e-i]),e,i).week}function A(t){return z(t)?366:365}function z(t){return t%4===0&&t%100!==0||t%400===0}function P(t){var e;t._a&&-2===t._pf.overflow&&(e=t._a[Ne]<0||t._a[Ne]>11?Ne:t._a[Ie]<1||t._a[Ie]>N(t._a[ke],t._a[Ne])?Ie:t._a[Ae]<0||t._a[Ae]>24||24===t._a[Ae]&&(0!==t._a[ze]||0!==t._a[Pe]||0!==t._a[Re])?Ae:t._a[ze]<0||t._a[ze]>59?ze:t._a[Pe]<0||t._a[Pe]>59?Pe:t._a[Re]<0||t._a[Re]>999?Re:-1,t._pf._overflowDayOfYear&&(ke>e||e>Ie)&&(e=Ie),t._pf.overflow=e)}function R(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 F(t){return t?t.toLowerCase().replace("_","-"):t}function H(t){for(var e,i,s,o,n=0;n0;){if(s=Y(o.slice(0,e).join("-")))return s;if(i&&i.length>=e&&E(o,i,!0)>=e-1)break;e--}n++}return null}function Y(t){var e=null;if(!Fe[t]&&Ye)try{e=De.locale(),!function(){var t=new Error('Cannot find module "./locale"');throw t.code="MODULE_NOT_FOUND",t}(),De.locale(e)}catch(i){}return Fe[t]}function W(t,e){var i,s;return e._isUTC?(i=e.clone(),s=(De.isMoment(t)||C(t)?+t:+De(t))-+i,i._d.setTime(+i._d+s),De.updateOffset(i,!1),i):De(t).local()}function B(t){return t.match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"")}function G(t){var e,i,s=t.match(je);for(e=0,i=s.length;i>e;e++)s[e]=_i[s[e]]?_i[s[e]]:B(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 j(t,e){return t.isValid()?(e=U(e,t.localeData()),gi[e]||(gi[e]=G(e)),gi[e](t)):t.localeData().invalidDate()}function U(t,e){function i(t){return e.longDateFormat(t)||t}var s=5;for(Ue.lastIndex=0;s>=0&&Ue.test(t);)t=t.replace(Ue,i),Ue.lastIndex=0,s-=1;return t}function V(t,e){var i,s=e._strict;switch(t){case"Q":return ii;case"DDDD":return oi;case"YYYY":case"GGGG":case"gggg":return s?ni:qe;case"Y":case"G":case"g":return ai;case"YYYYYY":case"YYYYY":case"GGGGG":case"ggggg":return s?ri:Ze;case"S":if(s)return ii;case"SS":if(s)return si;case"SSS":if(s)return oi;case"DDD":return Xe;case"MMM":case"MMMM":case"dd":case"ddd":case"dddd":return Qe;case"a":case"A":return e._locale._meridiemParse;case"x":return ti;case"X":return ei;case"Z":case"ZZ":return $e;case"T":return Je;case"SSSS":return Ke;case"MM":case"DD":case"YY":case"GG":case"gg":case"HH":case"hh":case"mm":case"ss":case"ww":case"WW":return s?si:Ve;case"M":case"D":case"d":case"H":case"h":case"m":case"s":case"w":case"W":case"e":case"E":return Ve;case"Do":return s?e._locale._ordinalParse:e._locale._ordinalParseLenient;default:return i=new RegExp(ee(te(t.replace("\\","")),"i"))}}function X(t){t=t||"";var e=t.match($e)||[],i=e[e.length-1]||[],s=(i+"").match(pi)||["-",0,0],o=+(60*s[1])+k(s[2]);return"+"===s[0]?-o:o}function q(t,e,i){var s,o=i._a;switch(t){case"Q":null!=e&&(o[Ne]=3*(k(e)-1));break;case"M":case"MM":null!=e&&(o[Ne]=k(e)-1);break;case"MMM":case"MMMM":s=i._locale.monthsParse(e,t,i._strict),null!=s?o[Ne]=s:i._pf.invalidMonth=e;break;case"D":case"DD":null!=e&&(o[Ie]=k(e));break;case"Do":null!=e&&(o[Ie]=k(parseInt(e.match(/\d{1,2}/)[0],10)));break;case"DDD":case"DDDD":null!=e&&(i._dayOfYear=k(e));break;case"YY":o[ke]=De.parseTwoDigitYear(e);break;case"YYYY":case"YYYYY":case"YYYYYY":o[ke]=k(e);break;case"a":case"A":i._isPm=i._locale.isPM(e);break;case"h":case"hh":i._pf.bigHour=!0;case"H":case"HH":o[Ae]=k(e);break;case"m":case"mm":o[ze]=k(e);break;case"s":case"ss":o[Pe]=k(e);break;case"S":case"SS":case"SSS":case"SSSS":o[Re]=k(1e3*("0."+e));break;case"x":i._d=new Date(k(e));break;case"X":i._d=new Date(1e3*parseFloat(e));break;case"Z":case"ZZ":i._useUTC=!0,i._tzm=X(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]=k(e));break;case"gg":case"GG":i._w=i._w||{},i._w[t]=De.parseTwoDigitYear(e)}}function Z(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[ke],pe(De(),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[ke],pe(De(),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=ue(i,s,o,a,n),t._a[ke]=h.year,t._dayOfYear=h.dayOfYear}function K(t){var e,i,s,o,n=[];if(!t._d){for(s=$(t),t._w&&null==t._a[Ie]&&null==t._a[Ne]&&Z(t),t._dayOfYear&&(o=r(t._a[ke],s[ke]),t._dayOfYear>A(o)&&(t._pf._overflowDayOfYear=!0),i=he(o,0,t._dayOfYear),t._a[Ne]=i.getUTCMonth(),t._a[Ie]=i.getUTCDate()),e=0;3>e&&null==t._a[e];++e)t._a[e]=n[e]=s[e];for(;7>e;e++)t._a[e]=n[e]=null==t._a[e]?2===e?1:0:t._a[e];24===t._a[Ae]&&0===t._a[ze]&&0===t._a[Pe]&&0===t._a[Re]&&(t._nextDay=!0,t._a[Ae]=0),t._d=(t._useUTC?he:ae).apply(null,n),null!=t._tzm&&t._d.setUTCMinutes(t._d.getUTCMinutes()+t._tzm),t._nextDay&&(t._a[Ae]=24)}}function Q(t){var e;t._d||(e=O(t._i),t._a=[e.year,e.month,e.day||e.date,e.hour,e.minute,e.second,e.millisecond],K(t))}function $(t){var e=new Date;return t._useUTC?[e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()]:[e.getFullYear(),e.getMonth(),e.getDate()]}function J(t){if(t._f===De.ISO_8601)return void se(t);t._a=[],t._pf.empty=!0;var e,i,s,o,r,a=""+t._i,h=a.length,d=0;for(s=U(t._f,t._locale).match(je)||[],e=0;e0&&t._pf.unusedInput.push(r),a=a.slice(a.indexOf(i)+i.length),d+=i.length),_i[o]?(i?t._pf.empty=!1:t._pf.unusedTokens.push(o),q(o,i,t)):t._strict&&!i&&t._pf.unusedTokens.push(o);t._pf.charsLeftOver=h-d,a.length>0&&t._pf.unusedInput.push(a),t._pf.bigHour===!0&&t._a[Ae]<=12&&(t._pf.bigHour=n),t._isPm&&t._a[Ae]<12&&(t._a[Ae]+=12),t._isPm===!1&&12===t._a[Ae]&&(t._a[Ae]=0),K(t),P(t)}function te(t){return t.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,e,i,s,o){return e||i||s||o})}function ee(t){return t.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ie(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));v(t,i||e)}function se(t){var e,i,s=t._i,o=hi.exec(s);if(o){for(t._pf.iso=!0,e=0,i=li.length;i>e;e++)if(li[e][1].exec(s)){t._f=li[e][0]+(o[6]||" ");break}for(e=0,i=ci.length;i>e;e++)if(ci[e][1].exec(s)){t._f+=ci[e][0];break}s.match($e)&&(t._f+="Z"),J(t)}else t._isValid=!1}function oe(t){se(t),t._isValid===!1&&(delete t._isValid,De.createFromInputFallback(t))}function ne(t,e){var i,s=[];for(i=0;it&&a.setFullYear(t),a}function he(t){var e=new Date(Date.UTC.apply(null,arguments));return 1970>t&&e.setUTCFullYear(t),e}function de(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 le(t,e,i,s,o){return o.relativeTime(e||1,!!i,t,s)}function ce(t,e,i){var s=De.duration(t).abs(),o=Oe(s.as("s")),n=Oe(s.as("m")),r=Oe(s.as("h")),a=Oe(s.as("d")),h=Oe(s.as("M")),d=Oe(s.as("y")),l=o0,l[4]=i,le.apply({},l)}function pe(t,e,i){var s,o=i-e,n=i-t.day();return n>o&&(n-=7),o-7>n&&(n+=7),s=De(t).add(n,"d"),{week:Math.ceil(s.dayOfYear()/7),year:s.year()}}function ue(t,e,i,s,o){var n,r,a=he(t,0,1).getUTCDay();return a=0===a?7:a,i=null!=i?i:o,n=o-a+(a>s?7:0)-(o>a?7:0),r=7*(e-1)+(i-o)+n+1,{year:r>0?t:t-1,dayOfYear:r>0?r:A(t-1)+r}}function me(t){var e,i=t._i,s=t._f;return t._locale=t._locale||De.localeData(t._l),null===i||s===n&&""===i?De.invalid({nullInput:!0}):("string"==typeof i&&(t._i=i=t._locale.preparse(i)),De.isMoment(i)?new f(i,!0):(s?M(s)?ie(t):J(t):re(t),e=new f(t),e._nextDay&&(e.add(1,"d"),e._nextDay=n),e))}function fe(t,e){var i,s;if(1===e.length&&M(e[0])&&(e=e[0]),!e.length)return De();for(i=e[0],s=1;s=0?"+":"-";return e+_(Math.abs(t),6)},gg:function(){return _(this.weekYear()%100,2)},gggg:function(){return _(this.weekYear(),4)},ggggg:function(){return _(this.weekYear(),5)},GG:function(){return _(this.isoWeekYear()%100,2)},GGGG:function(){return _(this.isoWeekYear(),4)},GGGGG:function(){return _(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 k(this.milliseconds()/100)},SS:function(){return _(k(this.milliseconds()/10),2)},SSS:function(){return _(this.milliseconds(),3)},SSSS:function(){return _(this.milliseconds(),3)},Z:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(k(t/60),2)+":"+_(k(t)%60,2)},ZZ:function(){var t=-this.zone(),e="+";return 0>t&&(t=-t,e="-"),e+_(k(t/60),2)+_(k(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()}},xi={},wi=["months","monthsShort","weekdays","weekdaysShort","weekdaysMin"];yi.length;)Ce=yi.pop(),_i[Ce+"o"]=u(_i[Ce],Ce);for(;bi.length;)Ce=bi.pop(),_i[Ce+Ce]=p(_i[Ce],2);_i.DDDD=p(_i.DDD,3),v(m.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=De.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=De([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 pe(t,this._week.dow,this._week.doy).week},_week:{dow:0,doy:6},_invalidDate:"Invalid date",invalidDate:function(){return this._invalidDate}}),De=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(),me(o)},De.suppressDeprecationWarnings=!1,De.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":""))}),De.min=function(){var t=[].slice.call(arguments,0);return fe("isBefore",t)},De.max=function(){var t=[].slice.call(arguments,0);return fe("isAfter",t)},De.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(),me(o).utc()},De.unix=function(t){return De(1e3*t)},De.duration=function(t,e){var i,s,o,n,r=t,h=null;return De.isDuration(t)?r={ms:t._milliseconds,d:t._days,M:t._months}:"number"==typeof t?(r={},e?r[e]=t:r.milliseconds=t):(h=Be.exec(t))?(i="-"===h[1]?-1:1,r={y:0,d:k(h[Ie])*i,h:k(h[Ae])*i,m:k(h[ze])*i,s:k(h[Pe])*i,ms:k(h[Re])*i}):(h=Ge.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])}):"object"==typeof r&&("from"in r||"to"in r)&&(n=w(De(r.from),De(r.to)),r={},r.ms=n.milliseconds,r.M=n.months),s=new g(r),De.isDuration(t)&&a(t,"_locale")&&(s._locale=t._locale),s},De.version=Ee,De.defaultFormat=di,De.ISO_8601=function(){},De.momentProperties=He,De.updateOffset=function(){},De.relativeTimeThreshold=function(t,e){return vi[t]===n?!1:e===n?vi[t]:(vi[t]=e,!0)},De.lang=l("moment.lang is deprecated. Use moment.locale instead.",function(t,e){return De.locale(t,e)}),De.locale=function(t,e){var i;return t&&(i="undefined"!=typeof e?De.defineLocale(t,e):De.localeData(t),i&&(De.duration._locale=De._locale=i)),De._locale._abbr},De.defineLocale=function(t,e){return null!==e?(e.abbr=t,Fe[t]||(Fe[t]=new m),Fe[t].set(e),De.locale(t),Fe[t]):(delete Fe[t],null)},De.langData=l("moment.langData is deprecated. Use moment.localeData instead.",function(t){return De.localeData(t)}),De.localeData=function(t){var e;if(t&&t._locale&&t._locale._abbr&&(t=t._locale._abbr),!t)return De._locale;if(!M(t)){if(e=Y(t))return e;t=[t]}return H(t)},De.isMoment=function(t){return t instanceof f||null!=t&&a(t,"_isAMomentObject")},De.isDuration=function(t){return t instanceof g};for(Ce=wi.length-1;Ce>=0;--Ce)L(wi[Ce]);De.normalizeUnits=function(t){return T(t)},De.invalid=function(t){var e=De.utc(0/0);return null!=t?v(e._pf,t):e._pf.userInvalidated=!0,e +},De.parseZone=function(){return De.apply(null,arguments).parseZone()},De.parseTwoDigitYear=function(t){return k(t)+(k(t)>68?1900:2e3)},v(De.fn=f.prototype,{clone:function(){return De(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=De(this).utc();return 00:!1},parsingFlags:function(){return v({},this._pf)},invalidAt:function(){return this._pf.overflow},utc:function(t){return this.zone(0,t)},local:function(t){return this._isUTC&&(this.zone(0,t),this._isUTC=!1,t&&this.add(this._dateTzOffset(),"m")),this},format:function(t){var e=j(this,t||De.defaultFormat);return this.localeData().postformat(e)},add:S(1,"add"),subtract:S(-1,"subtract"),diff:function(t,e,i){var s,o,n,r=W(t,this),a=6e4*(this.zone()-r.zone());return e=T(e),"year"===e||"month"===e?(s=432e5*(this.daysInMonth()+r.daysInMonth()),o=12*(this.year()-r.year())+(this.month()-r.month()),n=this-De(this).startOf("month")-(r-De(r).startOf("month")),n-=6e4*(this.zone()-De(this).startOf("month").zone()-(r.zone()-De(r).startOf("month").zone())),o+=n/s,"year"===e&&(o/=12)):(s=this-r,o="second"===e?s/1e3:"minute"===e?s/6e4:"hour"===e?s/36e5:"day"===e?(s-a)/864e5:"week"===e?(s-a)/6048e5:s),i?o:b(o)},from:function(t,e){return De.duration({to:this,from:t}).locale(this.locale()).humanize(!e)},fromNow:function(t){return this.from(De(),t)},calendar:function(t){var e=t||De(),i=W(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,De(e)))},isLeapYear:function(){return z(this.year())},isDST:function(){return this.zone()+t):(i=De.isMoment(t)?+t:+De(t),i<+this.clone().startOf(e))},isBefore:function(t,e){var i;return e=T("undefined"!=typeof e?e:"millisecond"),"millisecond"===e?(t=De.isMoment(t)?t:De(t),+t>+this):(i=De.isMoment(t)?+t:+De(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=De.apply(null,arguments),t>this?this:t}),zone:function(t,e){var i,s=this._offset||0;return null==t?this._isUTC?s:this._dateTzOffset():("string"==typeof t&&(t=X(t)),Math.abs(t)<16&&(t=60*t),!this._isUTC&&e&&(i=this._dateTzOffset()),this._offset=t,this._isUTC=!0,null!=i&&this.subtract(i,"m"),s!==t&&(!e||this._changeInProgress?D(this,De.duration(s-t,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,De.updateOffset(this,!0),this._changeInProgress=null)),this)},zoneAbbr:function(){return this._isUTC?"UTC":""},zoneName:function(){return this._isUTC?"Coordinated Universal Time":""},parseZone:function(){return this._tzm?this.zone(this._tzm):"string"==typeof this._i&&this.zone(this._i),this},hasAlignedHourOffset:function(t){return t=t?De(t).zone():0,(this.zone()-t)%60===0},daysInMonth:function(){return N(this.year(),this.month())},dayOfYear:function(t){var e=Oe((De(this).startOf("day")-De(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=pe(this,this.localeData()._week.dow,this.localeData()._week.doy).year;return null==t?e:this.add(t-e,"y")},isoWeekYear:function(t){var e=pe(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=pe(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 I(this.year(),1,4)},weeksInYear:function(){var t=this.localeData()._week;return I(this.year(),t.dow,t.doy)},get:function(t){return t=T(t),this[t]()},set:function(t,e){return t=T(t),"function"==typeof this[t]&&this[t](e),this},locale:function(t){var e;return t===n?this._locale._abbr:(e=De.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},_dateTzOffset:function(){return 15*Math.round(this._d.getTimezoneOffset()/15)}}),De.fn.millisecond=De.fn.milliseconds=be("Milliseconds",!1),De.fn.second=De.fn.seconds=be("Seconds",!1),De.fn.minute=De.fn.minutes=be("Minutes",!1),De.fn.hour=De.fn.hours=be("Hours",!0),De.fn.date=be("Date",!0),De.fn.dates=l("dates accessor is deprecated. Use date instead.",be("Date",!0)),De.fn.year=be("FullYear",!0),De.fn.years=l("years accessor is deprecated. Use year instead.",be("FullYear",!0)),De.fn.days=De.fn.day,De.fn.months=De.fn.month,De.fn.weeks=De.fn.week,De.fn.isoWeeks=De.fn.isoWeek,De.fn.quarters=De.fn.quarter,De.fn.toJSON=De.fn.toISOString,v(De.duration.fn=g.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=b(s/1e3),r.seconds=t%60,e=b(t/60),r.minutes=e%60,i=b(e/60),r.hours=i%24,o+=b(i/24),a=b(_e(o)),o-=b(xe(a)),n+=b(o/30),o%=30,a+=b(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 b(this.days()/7)},valueOf:function(){return this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12)},humanize:function(t){var e=ce(this,!t,this.localeData());return t&&(e=this.localeData().pastFuture(+this,e)),this.localeData().postformat(e)},add:function(t,e){var i=De.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=De.duration(t,e);return this._milliseconds-=i._milliseconds,this._days-=i._days,this._months-=i._months,this._bubble(),this},get:function(t){return t=T(t),this[t.toLowerCase()+"s"]()},as:function(t){var e,i;if(t=T(t),"month"===t||"year"===t)return e=this._days+this._milliseconds/864e5,i=this._months+12*_e(e),"month"===t?i:i/12;switch(e=this._days+Math.round(xe(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:De.fn.lang,locale:De.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}}),De.duration.fn.toString=De.duration.fn.toISOString;for(Ce in ui)a(ui,Ce)&&we(Ce.toLowerCase());De.duration.fn.asMilliseconds=function(){return this.as("ms")},De.duration.fn.asSeconds=function(){return this.as("s")},De.duration.fn.asMinutes=function(){return this.as("m")},De.duration.fn.asHours=function(){return this.as("h")},De.duration.fn.asDays=function(){return this.as("d")},De.duration.fn.asWeeks=function(){return this.as("weeks")},De.duration.fn.asMonths=function(){return this.as("M")},De.duration.fn.asYears=function(){return this.as("y")},De.locale("en",{ordinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(t){var e=t%10,i=1===k(t%100/10)?"th":1===e?"st":2===e?"nd":3===e?"rd":"th";return t+i}}),Ye?o.exports=De:(s=function(t,e,i){return i.config&&i.config()&&i.config().noGlobal===!0&&(Te.moment=Me),De}.call(e,i,e,o),!(s!==n&&(o.exports=s)),Se(!0))}).call(this)}).call(e,function(){return this}(),i(71)(t))},function(t,e,i){var s;!function(o,n,r,a){function h(t,e,i){return setTimeout(m(t,i),e)}function d(t,e,i){return Array.isArray(t)?(l(t,i[e],i),!0):!1}function l(t,e,i){var s;if(t)if(t.forEach)t.forEach(e,i);else if(t.length!==a)for(s=0;s-1}function x(t){return t.trim().split(/\s+/g)}function w(t,e,i){if(t.indexOf&&!i)return t.indexOf(e);for(var s=0;si[e]}):s.sort()),s}function M(t,e){for(var i,s,o=e[0].toUpperCase()+e.slice(1),n=0;n1&&!i.firstMultiple?i.firstMultiple=A(e):1===o&&(i.firstMultiple=!1);var n=i.firstInput,r=i.firstMultiple,a=r?r.center:n.center,h=e.center=z(s);e.timeStamp=ve(),e.deltaTime=e.timeStamp-n.timeStamp,e.angle=H(a,h),e.distance=F(a,h),N(i,e),e.offsetDirection=R(e.deltaX,e.deltaY),e.scale=r?W(r.pointers,s):1,e.rotation=r?Y(r.pointers,s):0,I(i,e);var d=t.element;b(e.srcEvent.target,d)&&(d=e.srcEvent.target),e.target=d}function N(t,e){var i=e.center,s=t.offsetDelta||{},o=t.prevDelta||{},n=t.prevInput||{};(e.eventType===Te||n.eventType===Le)&&(o=t.prevDelta={x:n.deltaX||0,y:n.deltaY||0},s=t.offsetDelta={x:i.x,y:i.y}),e.deltaX=o.x+(i.x-s.x),e.deltaY=o.y+(i.y-s.y)}function I(t,e){var i,s,o,n,r=t.lastInterval||e,h=e.timeStamp-r.timeStamp;if(e.eventType!=ke&&(h>Ee||r.velocity===a)){var d=r.deltaX-e.deltaX,l=r.deltaY-e.deltaY,c=P(h,d,l);s=c.x,o=c.y,i=ge(c.x)>ge(c.y)?c.x:c.y,n=R(d,l),t.lastInterval=e}else i=r.velocity,s=r.velocityX,o=r.velocityY,n=r.direction;e.velocity=i,e.velocityX=s,e.velocityY=o,e.direction=n}function A(t){for(var e=[],i=0;io;)i+=t[o].clientX,s+=t[o].clientY,o++;return{x:fe(i/e),y:fe(s/e)}}function P(t,e,i){return{x:e/t||0,y:i/t||0}}function R(t,e){return t===e?Ne:ge(t)>=ge(e)?t>0?Ie:Ae:e>0?ze:Pe}function F(t,e,i){i||(i=Ye);var s=e[i[0]]-t[i[0]],o=e[i[1]]-t[i[1]];return Math.sqrt(s*s+o*o)}function H(t,e,i){i||(i=Ye);var s=e[i[0]]-t[i[0]],o=e[i[1]]-t[i[1]];return 180*Math.atan2(o,s)/Math.PI}function Y(t,e){return H(e[1],e[0],We)-H(t[1],t[0],We)}function W(t,e){return F(e[0],e[1],We)/F(t[0],t[1],We)}function B(){this.evEl=Ge,this.evWin=je,this.allow=!0,this.pressed=!1,T.apply(this,arguments)}function G(){this.evEl=Xe,this.evWin=qe,T.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}function j(){this.evTarget=Ke,this.evWin=Qe,this.started=!1,T.apply(this,arguments)}function U(t,e){var i=S(t.touches),s=S(t.changedTouches);return e&(Le|ke)&&(i=D(i.concat(s),"identifier",!0)),[i,s]}function V(){this.evTarget=Je,this.targetIds={},T.apply(this,arguments)}function X(t,e){var i=S(t.touches),s=this.targetIds;if(e&(Te|Oe)&&1===i.length)return s[i[0].identifier]=!0,[i,i];var o,n,r=S(t.changedTouches),a=[],h=this.target;if(n=i.filter(function(t){return b(t.target,h)}),e===Te)for(o=0;oa&&(e.push(t),a=e.length-1):o&(Le|ke)&&(i=!0),0>a||(e[a]=t,this.callback(this.manager,o,{pointers:e,changedPointers:[t],pointerType:n,srcEvent:t}),i&&e.splice(a,1))}});var Ze={touchstart:Te,touchmove:Oe,touchend:Le,touchcancel:ke},Ke="touchstart",Qe="touchstart touchmove touchend touchcancel";u(j,T,{handler:function(t){var e=Ze[t.type];if(e===Te&&(this.started=!0),this.started){var i=U.call(this,t,e);e&(Le|ke)&&i[0].length-i[1].length===0&&(this.started=!1),this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Se,srcEvent:t})}}});var $e={touchstart:Te,touchmove:Oe,touchend:Le,touchcancel:ke},Je="touchstart touchmove touchend touchcancel";u(V,T,{handler:function(t){var e=$e[t.type],i=X.call(this,t,e);i&&this.callback(this.manager,e,{pointers:i[0],changedPointers:i[1],pointerType:Se,srcEvent:t})}}),u(q,T,{handler:function(t,e,i){var s=i.pointerType==Se,o=i.pointerType==Me;if(s)this.mouse.allow=!1;else if(o&&!this.mouse.allow)return;e&(Le|ke)&&(this.mouse.allow=!0),this.callback(t,e,i)},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});var ti=M(ue.style,"touchAction"),ei=ti!==a,ii="compute",si="auto",oi="manipulation",ni="none",ri="pan-x",ai="pan-y";Z.prototype={set:function(t){t==ii&&(t=this.compute()),ei&&(this.manager.element.style[ti]=t),this.actions=t.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var t=[];return l(this.manager.recognizers,function(e){f(e.options.enable,[e])&&(t=t.concat(e.getTouchAction()))}),K(t.join(" "))},preventDefaults:function(t){if(!ei){var e=t.srcEvent,i=t.offsetDirection;if(this.manager.session.prevented)return void e.preventDefault();var s=this.actions,o=_(s,ni),n=_(s,ai),r=_(s,ri);return o||n&&i&Re||r&&i&Fe?this.preventSrc(e):void 0}},preventSrc:function(t){this.manager.session.prevented=!0,t.preventDefault()}};var hi=1,di=2,li=4,ci=8,pi=ci,ui=16,mi=32;Q.prototype={defaults:{},set:function(t){return c(this.options,t),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(t){if(d(t,"recognizeWith",this))return this;var e=this.simultaneous;return t=te(t,this),e[t.id]||(e[t.id]=t,t.recognizeWith(this)),this},dropRecognizeWith:function(t){return d(t,"dropRecognizeWith",this)?this:(t=te(t,this),delete this.simultaneous[t.id],this)},requireFailure:function(t){if(d(t,"requireFailure",this))return this;var e=this.requireFail;return t=te(t,this),-1===w(e,t)&&(e.push(t),t.requireFailure(this)),this},dropRequireFailure:function(t){if(d(t,"dropRequireFailure",this))return this;t=te(t,this);var e=w(this.requireFail,t);return e>-1&&this.requireFail.splice(e,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(t){return!!this.simultaneous[t.id]},emit:function(t){function e(e){i.manager.emit(i.options.event+(e?$(s):""),t)}var i=this,s=this.state;ci>s&&e(!0),e(),s>=ci&&e(!0)},tryEmit:function(t){return this.canEmit()?this.emit(t):void(this.state=mi)},canEmit:function(){for(var t=0;tn?Ie:Ae,i=n!=this.pX,s=Math.abs(t.deltaX)):(o=0===r?Ne:0>r?ze:Pe,i=r!=this.pY,s=Math.abs(t.deltaY))),t.direction=o,i&&s>e.threshold&&o&e.direction},attrTest:function(t){return ee.prototype.attrTest.call(this,t)&&(this.state&di||!(this.state&di)&&this.directionTest(t))},emit:function(t){this.pX=t.deltaX,this.pY=t.deltaY;var e=J(t.direction);e&&this.manager.emit(this.options.event+e,t),this._super.emit.call(this,t)}}),u(se,ee,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[ni]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.scale-1)>this.options.threshold||this.state&di)},emit:function(t){if(this._super.emit.call(this,t),1!==t.scale){var e=t.scale<1?"in":"out";this.manager.emit(this.options.event+e,t)}}}),u(oe,Q,{defaults:{event:"press",pointers:1,time:500,threshold:5},getTouchAction:function(){return[si]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,s=t.distancee.time;if(this._input=t,!s||!i||t.eventType&(Le|ke)&&!o)this.reset();else if(t.eventType&Te)this.reset(),this._timer=h(function(){this.state=pi,this.tryEmit()},e.time,this);else if(t.eventType&Le)return pi;return mi},reset:function(){clearTimeout(this._timer)},emit:function(t){this.state===pi&&(t&&t.eventType&Le?this.manager.emit(this.options.event+"up",t):(this._input.timeStamp=ve(),this.manager.emit(this.options.event,this._input)))}}),u(ne,ee,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[ni]},attrTest:function(t){return this._super.attrTest.call(this,t)&&(Math.abs(t.rotation)>this.options.threshold||this.state&di)}}),u(re,ee,{defaults:{event:"swipe",threshold:10,velocity:.65,direction:Re|Fe,pointers:1},getTouchAction:function(){return ie.prototype.getTouchAction.call(this)},attrTest:function(t){var e,i=this.options.direction;return i&(Re|Fe)?e=t.velocity:i&Re?e=t.velocityX:i&Fe&&(e=t.velocityY),this._super.attrTest.call(this,t)&&i&t.direction&&t.distance>this.options.threshold&&ge(e)>this.options.velocity&&t.eventType&Le},emit:function(t){var e=J(t.direction);e&&this.manager.emit(this.options.event+e,t),this.manager.emit(this.options.event,t)}}),u(ae,Q,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:2,posThreshold:10},getTouchAction:function(){return[oi]},process:function(t){var e=this.options,i=t.pointers.length===e.pointers,s=t.distancet&&s>o;)o%3==0?(this.forceAggregateHubs(!0),this.normalizeClusterLevels()):this.increaseClusterLevel(),i=this.nodeIndices.length,o+=1;o>0&&1==e&&this.repositionNodes(),this._updateCalculationNodes()},e.openCluster=function(t){var e=this.moving;if(t.clusterSize>this.constants.clustering.sectorThreshold&&this._nodeInActiveArea(t)&&("default"!=this._sector()||1!=this.nodeIndices.length)){this._addSector(t);for(var i=0;this.nodeIndices.lengthi;)this.decreaseClusterLevel(),i+=1}else this._expandClusterNode(t,!1,!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this._updateCalculationNodes(),this.updateLabels();this.moving!=e&&this.start()},e.updateClustersDefault=function(){1==this.constants.clustering.enabled&&this.updateClusters(0,!1,!1)},e.increaseClusterLevel=function(){this.updateClusters(-1,!1,!0)},e.decreaseClusterLevel=function(){this.updateClusters(1,!1,!0)},e.updateClusters=function(t,e,i,s){var o=this.moving,n=this.nodeIndices.length;this.previousScale>this.scale&&0==t&&this._collapseSector(),this.previousScale>this.scale||-1==t?this._formClusters(i):(this.previousScalethis.scale||-1==t)&&(this._aggregateHubs(i),this._updateNodeIndexList()),(this.previousScale>this.scale||-1==t)&&(this.handleChains(),this._updateNodeIndexList()),this.previousScale=this.scale,this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.lengththis.constants.clustering.chainThreshold&&this._reduceAmountOfChains(1-this.constants.clustering.chainThreshold/t)},e._aggregateHubs=function(t){this._getHubSize(),this._formClustersByHub(t,!1)},e.forceAggregateHubs=function(t){var e=this.moving,i=this.nodeIndices.length;this._aggregateHubs(!0),this._updateNodeIndexList(),this._updateDynamicEdges(),this.updateLabels(),this.nodeIndices.length!=i&&(this.clusterSession+=1),(0==t||void 0===t)&&this.moving!=e&&this.start()},e._openClustersBySize=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];1==e.inView()&&(e.width*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientWidth||e.height*this.scale>this.constants.clustering.screenSizeThreshold*this.frame.canvas.clientHeight)&&this.openCluster(e)}},e._openClusters=function(t,e){for(var i=0;i1&&(t.clusterSizei)){var r=n.from,a=n.to;n.to.options.mass>n.from.options.mass&&(r=n.to,a=n.from),1==a.dynamicEdgesLength?this._addToCluster(r,a,!1):1==r.dynamicEdgesLength&&this._addToCluster(a,r,!1)}}},e._forceClustersByZoom=function(){for(var t in this.nodes)if(this.nodes.hasOwnProperty(t)){var e=this.nodes[t];if(1==e.dynamicEdgesLength&&0!=e.dynamicEdges.length){var i=e.dynamicEdges[0],s=i.toId==e.id?this.nodes[i.fromId]:this.nodes[i.toId];e.id!=s.id&&(s.options.mass>e.options.mass?this._addToCluster(s,e,!0):this._addToCluster(e,s,!0))}}},e._clusterToSmallestNeighbour=function(t){for(var e=-1,i=null,s=0;so.clusterSessions.length&&(e=o.clusterSessions.length,i=o)}null!=o&&void 0!==this.nodes[o.id]&&this._addToCluster(o,t,!0)},e._formClustersByHub=function(t,e){for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&this._formClusterFromHub(this.nodes[i],t,e)},e._formClusterFromHub=function(t,e,i,s){if(void 0===s&&(s=0),t.dynamicEdgesLength>=this.hubThreshold&&0==i||t.dynamicEdgesLength==this.hubThreshold&&1==i){for(var o,n,r,a=this.constants.clustering.clusterEdgeThreshold/this.scale,h=!1,d=[],l=t.dynamicEdges.length,c=0;l>c;c++)d.push(t.dynamicEdges[c].id);if(0==e)for(h=!1,c=0;l>c;c++){var p=this.edges[d[c]];if(void 0!==p&&p.connected&&p.toId!=p.fromId&&(o=p.to.x-p.from.x,n=p.to.y-p.from.y,r=Math.sqrt(o*o+n*n),a>r)){h=!0;break}}if(!e&&h||e)for(c=0;l>c;c++)if(p=this.edges[d[c]],void 0!==p){var u=this.nodes[p.fromId==t.id?p.toId:p.fromId];u.dynamicEdges.length<=this.hubThreshold+s&&u.id!=t.id&&this._addToCluster(t,u,e)}}},e._addToCluster=function(t,e,i){t.containedNodes[e.id]=e;for(var s=0;s1)for(var s=0;s1&&(e.label="[".concat(String(e.clusterSize),"]"))}for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(e=this.nodes[t],1==e.clusterSize&&(e.label=void 0!==e.originalLabel?e.originalLabel:String(e.id)))},e.normalizeClusterLevels=function(){var t,e=0,i=1e9,s=0;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&(s=this.nodes[t].clusterSessions.length,s>e&&(e=s),i>s&&(i=s));if(e-i>this.constants.clustering.clusterLevelDifference){var o=this.nodeIndices.length,n=e-this.constants.clustering.clusterLevelDifference;for(t in this.nodes)this.nodes.hasOwnProperty(t)&&this.nodes[t].clusterSessions.lengths&&(s=n.dynamicEdgesLength),t+=n.dynamicEdgesLength,e+=Math.pow(n.dynamicEdgesLength,2),i+=1}t/=i,e/=i;var r=e-Math.pow(t,2),a=Math.sqrt(r);this.hubThreshold=Math.floor(t+2*a),this.hubThreshold>s&&(this.hubThreshold=s)},e._reduceAmountOfChains=function(t){this.hubThreshold=2;var e=Math.floor(this.nodeIndices.length*t);for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&e>0&&(this._formClusterFromHub(this.nodes[i],!0,!0,1),e-=1)},e._getChainFraction=function(){var t=0,e=0;for(var i in this.nodes)this.nodes.hasOwnProperty(i)&&(2==this.nodes[i].dynamicEdgesLength&&this.nodes[i].dynamicEdges.length>=2&&(t+=1),e+=1);return t/e}},function(t,e,i){var s=i(1),o=i(40);e._putDataInSector=function(){this.sectors.active[this._sector()].nodes=this.nodes,this.sectors.active[this._sector()].edges=this.edges,this.sectors.active[this._sector()].nodeIndices=this.nodeIndices},e._switchToSector=function(t,e){void 0===e||"active"==e?this._switchToActiveSector(t):this._switchToFrozenSector(t)},e._switchToActiveSector=function(t){this.nodeIndices=this.sectors.active[t].nodeIndices,this.nodes=this.sectors.active[t].nodes,this.edges=this.sectors.active[t].edges},e._switchToSupportSector=function(){this.nodeIndices=this.sectors.support.nodeIndices,this.nodes=this.sectors.support.nodes,this.edges=this.sectors.support.edges},e._switchToFrozenSector=function(t){this.nodeIndices=this.sectors.frozen[t].nodeIndices,this.nodes=this.sectors.frozen[t].nodes,this.edges=this.sectors.frozen[t].edges},e._loadLatestSector=function(){this._switchToSector(this._sector())},e._sector=function(){return this.activeSector[this.activeSector.length-1]},e._previousSector=function(){if(this.activeSector.length>1)return this.activeSector[this.activeSector.length-2];throw new TypeError("there are not enough sectors in the this.activeSector array.")},e._setActiveSector=function(t){this.activeSector.push(t)},e._forgetLastSector=function(){this.activeSector.pop()},e._createNewSector=function(t){this.sectors.active[t]={nodes:{},edges:{},nodeIndices:[],formationScale:this.scale,drawingNode:void 0},this.sectors.active[t].drawingNode=new o({id:t,color:{background:"#eaefef",border:"495c5e"}},{},{},this.constants),this.sectors.active[t].drawingNode.clusterSize=2},e._deleteActiveSector=function(t){delete this.sectors.active[t]},e._deleteFrozenSector=function(t){delete this.sectors.frozen[t]},e._freezeSector=function(t){this.sectors.frozen[t]=this.sectors.active[t],this._deleteActiveSector(t)},e._activateSector=function(t){this.sectors.active[t]=this.sectors.frozen[t],this._deleteFrozenSector(t)},e._mergeThisWithFrozen=function(t){for(var e in this.nodes)this.nodes.hasOwnProperty(e)&&(this.sectors.frozen[t].nodes[e]=this.nodes[e]);for(var i in this.edges)this.edges.hasOwnProperty(i)&&(this.sectors.frozen[t].edges[i]=this.edges[i]);for(var s=0;s1?this[t](o[0],o[1]):this[t](e))}return this._loadLatestSector(),i},e._doInSupportSector=function(t,e){var i=!1;if(void 0===e)this._switchToSupportSector(),i=this[t]();else{this._switchToSupportSector();var s=Array.prototype.splice.call(arguments,1);i=s.length>1?this[t](s[0],s[1]):this[t](e)}return this._loadLatestSector(),i},e._doInAllFrozenSectors=function(t,e){if(void 0===e)for(var i in this.sectors.frozen)this.sectors.frozen.hasOwnProperty(i)&&(this._switchToFrozenSector(i),this[t]());else for(var i in this.sectors.frozen)if(this.sectors.frozen.hasOwnProperty(i)){this._switchToFrozenSector(i);var s=Array.prototype.splice.call(arguments,1);s.length>1?this[t](s[0],s[1]):this[t](e)}this._loadLatestSector()},e._doInAllSectors=function(t,e){var i=Array.prototype.splice.call(arguments,1);void 0===e?(this._doInAllActiveSectors(t),this._doInAllFrozenSectors(t)):i.length>1?(this._doInAllActiveSectors(t,i[0],i[1]),this._doInAllFrozenSectors(t,i[0],i[1])):(this._doInAllActiveSectors(t,e),this._doInAllFrozenSectors(t,e))},e._clearNodeIndexList=function(){var t=this._sector();this.sectors.active[t].nodeIndices=[],this.nodeIndices=this.sectors.active[t].nodeIndices},e._drawSectorNodes=function(t,e){var i,s=1e9,o=-1e9,n=1e9,r=-1e9;for(var a in this.sectors[e])if(this.sectors[e].hasOwnProperty(a)&&void 0!==this.sectors[e][a].drawingNode){this._switchToSector(a,e),s=1e9,o=-1e9,n=1e9,r=-1e9;for(var h in this.nodes)this.nodes.hasOwnProperty(h)&&(i=this.nodes[h],i.resize(t),n>i.x-.5*i.width&&(n=i.x-.5*i.width),ri.y-.5*i.height&&(s=i.y-.5*i.height),o0?this.nodes[i[i.length-1]]:null},e._getEdgesOverlappingWith=function(t,e){var i=this.edges;for(var s in i)i.hasOwnProperty(s)&&i[s].isOverlappingWith(t)&&e.push(s)},e._getAllEdgesOverlappingWith=function(t){var e=[];return this._doInAllActiveSectors("_getEdgesOverlappingWith",t,e),e},e._getEdgeAt=function(t){var e=this._pointerToPositionObject(t),i=this._getAllEdgesOverlappingWith(e);return i.length>0?this.edges[i[i.length-1]]:null},e._addToSelection=function(t){t instanceof s?this.selectionObj.nodes[t.id]=t:this.selectionObj.edges[t.id]=t},e._addToHover=function(t){t instanceof s?this.hoverObj.nodes[t.id]=t:this.hoverObj.edges[t.id]=t},e._removeFromSelection=function(t){t instanceof s?delete this.selectionObj.nodes[t.id]:delete this.selectionObj.edges[t.id]},e._unselectAll=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].unselect();for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&this.selectionObj.edges[i].unselect();this.selectionObj={nodes:{},edges:{}},0==t&&this.emit("select",this.getSelection())},e._unselectClusters=function(t){void 0===t&&(t=!1);for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&this.selectionObj.nodes[e].clusterSize>1&&(this.selectionObj.nodes[e].unselect(),this._removeFromSelection(this.selectionObj.nodes[e]));0==t&&this.emit("select",this.getSelection())},e._getSelectedNodeCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedNode=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return this.selectionObj.nodes[t];return null},e._getSelectedEdge=function(){for(var t in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(t))return this.selectionObj.edges[t];return null},e._getSelectedEdgeCount=function(){var t=0;for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(t+=1);return t},e._getSelectedObjectCount=function(){var t=0;for(var e in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(e)&&(t+=1);for(var i in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(i)&&(t+=1);return t},e._selectionIsEmpty=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t))return!1;for(var e in this.selectionObj.edges)if(this.selectionObj.edges.hasOwnProperty(e))return!1;return!0},e._clusterInSelection=function(){for(var t in this.selectionObj.nodes)if(this.selectionObj.nodes.hasOwnProperty(t)&&this.selectionObj.nodes[t].clusterSize>1)return!0;return!1},e._selectConnectedEdges=function(t){for(var e=0;ei;i++){o=t[i];var n=this.nodes[o];if(!n)throw new RangeError('Node with id "'+o+'" not found');this._selectObject(n,!0,!0,e,!0)}this.redraw()},e.selectEdges=function(t){var e,i,s;if(!t||void 0==t.length)throw"Selection must be an array with ids";for(this._unselectAll(!0),e=0,i=t.length;i>e;e++){s=t[e];var o=this.edges[s];if(!o)throw new RangeError('Edge with id "'+s+'" not found');this._selectObject(o,!0,!0,!1,!0)}this.redraw()},e._updateSelection=function(){for(var t in this.selectionObj.nodes)this.selectionObj.nodes.hasOwnProperty(t)&&(this.nodes.hasOwnProperty(t)||delete this.selectionObj.nodes[t]);for(var e in this.selectionObj.edges)this.selectionObj.edges.hasOwnProperty(e)&&(this.edges.hasOwnProperty(e)||delete this.selectionObj.edges[e])}},function(t,e,i){var s=i(1),o=i(40),n=i(37);e._clearManipulatorBar=function(){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM={},this._manipulationReleaseOverload=function(){},delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode,this.controlNodesActive=!1},e._restoreOverloadedFunctions=function(){for(var t in this.cachedFunctions)this.cachedFunctions.hasOwnProperty(t)&&(this[t]=this.cachedFunctions[t])},e._toggleEditMode=function(){this.editMode=!this.editMode;var t=this.manipulationDiv,e=this.closeDiv,i=this.editModeDiv;1==this.editMode?(t.style.display="block",e.style.display="block",i.style.display="none",e.onclick=this._toggleEditMode.bind(this)):(t.style.display="none",e.style.display="none",i.style.display="block",e.onclick=null),this._createManipulatorBar()},e._createManipulatorBar=function(){this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];if(void 0!==this.edgeBeingEdited&&(this.edgeBeingEdited._disableControlNodes(),this.edgeBeingEdited=void 0,this.selectedControlNode=null,this.controlNodesActive=!1,this._redraw()),this._restoreOverloadedFunctions(),this.freezeSimulation=!1,this.blockConnectingEdgeSelection=!1,this.forceAppendSelection=!1,this.manipulationDOM={},1==this.editMode){for(;this.manipulationDiv.hasChildNodes();)this.manipulationDiv.removeChild(this.manipulationDiv.firstChild);this.manipulationDOM.addNodeSpan=document.createElement("span"),this.manipulationDOM.addNodeSpan.className="network-manipulationUI add",this.manipulationDOM.addNodeLabelSpan=document.createElement("span"),this.manipulationDOM.addNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addNodeLabelSpan.innerHTML=t.addNode,this.manipulationDOM.addNodeSpan.appendChild(this.manipulationDOM.addNodeLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.addEdgeSpan=document.createElement("span"),this.manipulationDOM.addEdgeSpan.className="network-manipulationUI connect",this.manipulationDOM.addEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.addEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.addEdgeLabelSpan.innerHTML=t.addEdge,this.manipulationDOM.addEdgeSpan.appendChild(this.manipulationDOM.addEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.addNodeSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.addEdgeSpan),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?(this.manipulationDOM.seperatorLineDiv2=document.createElement("div"),this.manipulationDOM.seperatorLineDiv2.className="network-seperatorLine",this.manipulationDOM.editNodeSpan=document.createElement("span"),this.manipulationDOM.editNodeSpan.className="network-manipulationUI edit",this.manipulationDOM.editNodeLabelSpan=document.createElement("span"),this.manipulationDOM.editNodeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editNodeLabelSpan.innerHTML=t.editNode,this.manipulationDOM.editNodeSpan.appendChild(this.manipulationDOM.editNodeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv2),this.manipulationDiv.appendChild(this.manipulationDOM.editNodeSpan)):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.seperatorLineDiv3=document.createElement("div"),this.manipulationDOM.seperatorLineDiv3.className="network-seperatorLine",this.manipulationDOM.editEdgeSpan=document.createElement("span"),this.manipulationDOM.editEdgeSpan.className="network-manipulationUI edit",this.manipulationDOM.editEdgeLabelSpan=document.createElement("span"),this.manipulationDOM.editEdgeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editEdgeLabelSpan.innerHTML=t.editEdge,this.manipulationDOM.editEdgeSpan.appendChild(this.manipulationDOM.editEdgeLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv3),this.manipulationDiv.appendChild(this.manipulationDOM.editEdgeSpan)),0==this._selectionIsEmpty()&&(this.manipulationDOM.seperatorLineDiv4=document.createElement("div"),this.manipulationDOM.seperatorLineDiv4.className="network-seperatorLine",this.manipulationDOM.deleteSpan=document.createElement("span"),this.manipulationDOM.deleteSpan.className="network-manipulationUI delete",this.manipulationDOM.deleteLabelSpan=document.createElement("span"),this.manipulationDOM.deleteLabelSpan.className="network-manipulationLabel",this.manipulationDOM.deleteLabelSpan.innerHTML=t.del,this.manipulationDOM.deleteSpan.appendChild(this.manipulationDOM.deleteLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv4),this.manipulationDiv.appendChild(this.manipulationDOM.deleteSpan)),this.manipulationDOM.addNodeSpan.onclick=this._createAddNodeToolbar.bind(this),this.manipulationDOM.addEdgeSpan.onclick=this._createAddEdgeToolbar.bind(this),1==this._getSelectedNodeCount()&&this.triggerFunctions.edit?this.manipulationDOM.editNodeSpan.onclick=this._editNode.bind(this):1==this._getSelectedEdgeCount()&&0==this._getSelectedNodeCount()&&(this.manipulationDOM.editEdgeSpan.onclick=this._createEditEdgeToolbar.bind(this)),0==this._selectionIsEmpty()&&(this.manipulationDOM.deleteSpan.onclick=this._deleteSelected.bind(this)),this.closeDiv.onclick=this._toggleEditMode.bind(this),this.boundFunction=this._createManipulatorBar.bind(this),this.on("select",this.boundFunction)}else{for(;this.editModeDiv.hasChildNodes();)this.editModeDiv.removeChild(this.editModeDiv.firstChild);this.manipulationDOM.editModeSpan=document.createElement("span"),this.manipulationDOM.editModeSpan.className="network-manipulationUI edit editmode",this.manipulationDOM.editModeLabelSpan=document.createElement("span"),this.manipulationDOM.editModeLabelSpan.className="network-manipulationLabel",this.manipulationDOM.editModeLabelSpan.innerHTML=t.edit,this.manipulationDOM.editModeSpan.appendChild(this.manipulationDOM.editModeLabelSpan),this.editModeDiv.appendChild(this.manipulationDOM.editModeSpan),this.manipulationDOM.editModeSpan.onclick=this._toggleEditMode.bind(this)}},e._createAddNodeToolbar=function(){this._clearManipulatorBar(),this.boundFunction&&this.off("select",this.boundFunction);var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.addDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._addNode.bind(this),this.on("select",this.boundFunction)},e._createAddEdgeToolbar=function(){this._clearManipulatorBar(),this._unselectAll(!0),this.freezeSimulation=!0;var t=this.constants.locales[this.constants.locale];this.boundFunction&&this.off("select",this.boundFunction),this._unselectAll(),this.forceAppendSelection=!1,this.blockConnectingEdgeSelection=!0,this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.edgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.boundFunction=this._handleConnect.bind(this),this.on("select",this.boundFunction),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleDragEnd=this._handleDragEnd,this._handleTouch=this._handleConnect,this._manipulationReleaseOverload=function(){},this._handleDragStart=function(){},this._handleDragEnd=this._finishConnect,this._redraw()},e._createEditEdgeToolbar=function(){this._clearManipulatorBar(),this.controlNodesActive=!0,this.boundFunction&&this.off("select",this.boundFunction),this.edgeBeingEdited=this._getSelectedEdge(),this.edgeBeingEdited._enableControlNodes();var t=this.constants.locales[this.constants.locale];this.manipulationDOM={},this.manipulationDOM.backSpan=document.createElement("span"),this.manipulationDOM.backSpan.className="network-manipulationUI back",this.manipulationDOM.backLabelSpan=document.createElement("span"),this.manipulationDOM.backLabelSpan.className="network-manipulationLabel",this.manipulationDOM.backLabelSpan.innerHTML=t.back,this.manipulationDOM.backSpan.appendChild(this.manipulationDOM.backLabelSpan),this.manipulationDOM.seperatorLineDiv1=document.createElement("div"),this.manipulationDOM.seperatorLineDiv1.className="network-seperatorLine",this.manipulationDOM.descriptionSpan=document.createElement("span"),this.manipulationDOM.descriptionSpan.className="network-manipulationUI none",this.manipulationDOM.descriptionLabelSpan=document.createElement("span"),this.manipulationDOM.descriptionLabelSpan.className="network-manipulationLabel",this.manipulationDOM.descriptionLabelSpan.innerHTML=t.editEdgeDescription,this.manipulationDOM.descriptionSpan.appendChild(this.manipulationDOM.descriptionLabelSpan),this.manipulationDiv.appendChild(this.manipulationDOM.backSpan),this.manipulationDiv.appendChild(this.manipulationDOM.seperatorLineDiv1),this.manipulationDiv.appendChild(this.manipulationDOM.descriptionSpan),this.manipulationDOM.backSpan.onclick=this._createManipulatorBar.bind(this),this.cachedFunctions._handleTouch=this._handleTouch,this.cachedFunctions._manipulationReleaseOverload=this._manipulationReleaseOverload,this.cachedFunctions._handleTap=this._handleTap,this.cachedFunctions._handleDragStart=this._handleDragStart,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleTouch=this._selectControlNode,this._handleTap=function(){},this._handleOnDrag=this._controlNodeDrag,this._handleDragStart=function(){},this._manipulationReleaseOverload=this._releaseControlNode,this._redraw() +},e._selectControlNode=function(t){this.edgeBeingEdited.controlNodes.from.unselect(),this.edgeBeingEdited.controlNodes.to.unselect(),this.selectedControlNode=this.edgeBeingEdited._getSelectedControlNode(this._XconvertDOMtoCanvas(t.x),this._YconvertDOMtoCanvas(t.y)),null!==this.selectedControlNode&&(this.selectedControlNode.select(),this.freezeSimulation=!0),this._redraw()},e._controlNodeDrag=function(t){var e=this._getPointer(t.gesture.center);null!==this.selectedControlNode&&void 0!==this.selectedControlNode&&(this.selectedControlNode.x=this._XconvertDOMtoCanvas(e.x),this.selectedControlNode.y=this._YconvertDOMtoCanvas(e.y)),this._redraw()},e._releaseControlNode=function(t){var e=this._getNodeAt(t);null!==e?(1==this.edgeBeingEdited.controlNodes.from.selected&&(this._editEdge(e.id,this.edgeBeingEdited.to.id),this.edgeBeingEdited.controlNodes.from.unselect()),1==this.edgeBeingEdited.controlNodes.to.selected&&(this._editEdge(this.edgeBeingEdited.from.id,e.id),this.edgeBeingEdited.controlNodes.to.unselect())):this.edgeBeingEdited._restoreControlNodes(),this.freezeSimulation=!1,this._redraw()},e._handleConnect=function(t){if(0==this._getSelectedNodeCount()){var e=this._getNodeAt(t);if(null!=e)if(e.clusterSize>1)alert(this.constants.locales[this.constants.locale].createEdgeError);else{this._selectObject(e,!1);var i=this.sectors.support.nodes;i.targetNode=new o({id:"targetNode"},{},{},this.constants);var s=i.targetNode;s.x=e.x,s.y=e.y,this.edges.connectionEdge=new n({id:"connectionEdge",from:e.id,to:s.id},this,this.constants);var r=this.edges.connectionEdge;r.from=e,r.connected=!0,r.options.smoothCurves={enabled:!0,dynamic:!1,type:"continuous",roundness:.5},r.selected=!0,r.to=s,this.cachedFunctions._handleOnDrag=this._handleOnDrag,this._handleOnDrag=function(t){var e=this._getPointer(t.gesture.center),i=this.edges.connectionEdge;i.to.x=this._XconvertDOMtoCanvas(e.x),i.to.y=this._YconvertDOMtoCanvas(e.y)},this.moving=!0,this.start()}}},e._finishConnect=function(t){if(1==this._getSelectedNodeCount()){var e=this._getPointer(t.gesture.center);this._handleOnDrag=this.cachedFunctions._handleOnDrag,delete this.cachedFunctions._handleOnDrag;var i=this.edges.connectionEdge.fromId;delete this.edges.connectionEdge,delete this.sectors.support.nodes.targetNode,delete this.sectors.support.nodes.targetViaNode;var s=this._getNodeAt(e);null!=s&&(s.clusterSize>1?alert(this.constants.locales[this.constants.locale].createEdgeError):(this._createEdge(i,s.id),this._createManipulatorBar())),this._unselectAll()}},e._addNode=function(){if(this._selectionIsEmpty()&&1==this.editMode){var t=this._pointerToPositionObject(this.pointerPosition),e={id:s.randomUUID(),x:t.left,y:t.top,label:"new",allowedToMoveX:!0,allowedToMoveY:!0};if(this.triggerFunctions.add){if(2!=this.triggerFunctions.add.length)throw new Error("The function for add does not support two arguments (data,callback)");var i=this;this.triggerFunctions.add(e,function(t){i.nodesData.add(t),i._createManipulatorBar(),i.moving=!0,i.start()})}else this.nodesData.add(e),this._createManipulatorBar(),this.moving=!0,this.start()}},e._createEdge=function(t,e){if(1==this.editMode){var i={from:t,to:e};if(this.triggerFunctions.connect){if(2!=this.triggerFunctions.connect.length)throw new Error("The function for connect does not support two arguments (data,callback)");var s=this;this.triggerFunctions.connect(i,function(t){s.edgesData.add(t),s.moving=!0,s.start()})}else this.edgesData.add(i),this.moving=!0,this.start()}},e._editEdge=function(t,e){if(1==this.editMode){var i={id:this.edgeBeingEdited.id,from:t,to:e};if(this.triggerFunctions.editEdge){if(2!=this.triggerFunctions.editEdge.length)throw new Error("The function for edit does not support two arguments (data, callback)");var s=this;this.triggerFunctions.editEdge(i,function(t){s.edgesData.update(t),s.moving=!0,s.start()})}else this.edgesData.update(i),this.moving=!0,this.start()}},e._editNode=function(){if(!this.triggerFunctions.edit||1!=this.editMode)throw new Error("No edit function has been bound to this button");var t=this._getSelectedNode(),e={id:t.id,label:t.label,group:t.options.group,shape:t.options.shape,color:{background:t.options.color.background,border:t.options.color.border,highlight:{background:t.options.color.highlight.background,border:t.options.color.highlight.border}}};if(2!=this.triggerFunctions.edit.length)throw new Error("The function for edit does not support two arguments (data, callback)");var i=this;this.triggerFunctions.edit(e,function(t){i.nodesData.update(t),i._createManipulatorBar(),i.moving=!0,i.start()})},e._deleteSelected=function(){if(!this._selectionIsEmpty()&&1==this.editMode)if(this._clusterInSelection())alert(this.constants.locales[this.constants.locale].deleteClusterError);else{var t=this.getSelectedNodes(),e=this.getSelectedEdges();if(this.triggerFunctions.del){var i=this,s={nodes:t,edges:e};if(2!=this.triggerFunctions.del.length)throw new Error("The function for delete does not support two arguments (data, callback)");this.triggerFunctions.del(s,function(t){i.edgesData.remove(t.edges),i.nodesData.remove(t.nodes),i._unselectAll(),i.moving=!0,i.start()})}else this.edgesData.remove(e),this.nodesData.remove(t),this._unselectAll(),this.moving=!0,this.start()}}},function(t,e,i){var s=(i(1),i(45));e._cleanNavigation=function(){if(0!=this.navigationHammers.existing.length){for(var t=0;t0){this.constants.hierarchicalLayout.levelSeparation="RL"==this.constants.hierarchicalLayout.direction||"DU"==this.constants.hierarchicalLayout.direction?this.constants.hierarchicalLayout.levelSeparation<0?this.constants.hierarchicalLayout.levelSeparation:-1*this.constants.hierarchicalLayout.levelSeparation:Math.abs(this.constants.hierarchicalLayout.levelSeparation),"RL"==this.constants.hierarchicalLayout.direction||"LR"==this.constants.hierarchicalLayout.direction?1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="vertical"):1==this.constants.smoothCurves.enabled&&(this.constants.smoothCurves.type="horizontal");var t,e,i=0,s=!1,o=!1;for(e in this.nodes)this.nodes.hasOwnProperty(e)&&(t=this.nodes[e],-1!=t.level?s=!0:o=!0,is&&(n.xFixed=!1,n.x=i[n.level].minPos,r=!0):n.yFixed&&n.level>s&&(n.yFixed=!1,n.y=i[n.level].minPos,r=!0),1==r&&(i[n.level].minPos+=i[n.level].nodeSpacing,n.edges.length>1&&this._placeBranchNodes(n.edges,n.id,i,n.level))}},e._setLevel=function(t,e,i){for(var s=0;st)&&(o.level=t,o.edges.length>1&&this._setLevel(t+1,o.edges,o.id))}},e._setLevelDirected=function(t,e,i){this.nodes[i].hierarchyEnumerated=!0;for(var s=0;s1&&o.hierarchyEnumerated===!1&&this._setLevelDirected(o.level,o.edges,o.id)}},e._restoreNodes=function(){for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.nodes[t].xFixed=!1,this.nodes[t].yFixed=!1)}},function(t,e,i){function s(){this.constants.smoothCurves.enabled=!this.constants.smoothCurves.enabled;var t=document.getElementById("graph_toggleSmooth");t.style.background=1==this.constants.smoothCurves.enabled?"#A4FF56":"#FF8532",this._configureSmoothCurves(!1)}function o(){for(var t in this.calculationNodes)this.calculationNodes.hasOwnProperty(t)&&(this.calculationNodes[t].vx=0,this.calculationNodes[t].vy=0,this.calculationNodes[t].fx=0,this.calculationNodes[t].fy=0);1==this.constants.hierarchicalLayout.enabled?(this._setupHierarchicalLayout(),a.call(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),a.call(this,"graph_H_cg",1,"physics_centralGravity"),a.call(this,"graph_H_sc",1,"physics_springConstant"),a.call(this,"graph_H_sl",1,"physics_springLength"),a.call(this,"graph_H_damp",1,"physics_damping")):this.repositionNodes(),this.moving=!0,this.start()}function n(){var t="No options are required, default values used.",e=[],i=document.getElementById("graph_physicsMethod1"),s=document.getElementById("graph_physicsMethod2");if(1==i.checked){if(this.constants.physics.barnesHut.gravitationalConstant!=this.backupConstants.physics.barnesHut.gravitationalConstant&&e.push("gravitationalConstant: "+this.constants.physics.barnesHut.gravitationalConstant),this.constants.physics.centralGravity!=this.backupConstants.physics.barnesHut.centralGravity&&e.push("centralGravity: "+this.constants.physics.centralGravity),this.constants.physics.springLength!=this.backupConstants.physics.barnesHut.springLength&&e.push("springLength: "+this.constants.physics.springLength),this.constants.physics.springConstant!=this.backupConstants.physics.barnesHut.springConstant&&e.push("springConstant: "+this.constants.physics.springConstant),this.constants.physics.damping!=this.backupConstants.physics.barnesHut.damping&&e.push("damping: "+this.constants.physics.damping),0!=e.length){t="var options = {",t+="physics: {barnesHut: {";for(var o=0;othis.constants.clustering.clusterThreshold&&1==this.constants.clustering.enabled&&this.clusterToFit(this.constants.clustering.reduceToNodes,!1),this._calculateForces())},e._calculateForces=function(){this._calculateGravitationalForces(),this._calculateNodeForces(),this.constants.physics.springConstant>0&&(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic?this._calculateSpringForcesWithSupport():1==this.constants.physics.hierarchicalRepulsion.enabled?this._calculateHierarchicalSpringForces():this._calculateSpringForces())},e._updateCalculationNodes=function(){if(1==this.constants.smoothCurves.enabled&&1==this.constants.smoothCurves.dynamic){this.calculationNodes={},this.calculationNodeIndices=[];for(var t in this.nodes)this.nodes.hasOwnProperty(t)&&(this.calculationNodes[t]=this.nodes[t]);var e=this.sectors.support.nodes;for(var i in e)e.hasOwnProperty(i)&&(this.edges.hasOwnProperty(e[i].parentEdgeId)?this.calculationNodes[i]=e[i]:e[i]._setForce(0,0));for(var s in this.calculationNodes)this.calculationNodes.hasOwnProperty(s)&&this.calculationNodeIndices.push(s)}else this.calculationNodes=this.nodes,this.calculationNodeIndices=this.nodeIndices},e._calculateGravitationalForces=function(){var t,e,i,s,o,n=this.calculationNodes,r=this.constants.physics.centralGravity,a=0;for(o=0;oSimulation Mode:Barnes HutRepulsionHierarchical
Options:
',this.containerElement.parentElement.insertBefore(this.physicsConfiguration,this.containerElement),this.optionsDiv=document.createElement("div"),this.optionsDiv.style.fontSize="14px",this.optionsDiv.style.fontFamily="verdana",this.containerElement.parentElement.insertBefore(this.optionsDiv,this.containerElement);var e;e=document.getElementById("graph_BH_gc"),e.onchange=a.bind(this,"graph_BH_gc",-1,"physics_barnesHut_gravitationalConstant"),e=document.getElementById("graph_BH_cg"),e.onchange=a.bind(this,"graph_BH_cg",1,"physics_centralGravity"),e=document.getElementById("graph_BH_sc"),e.onchange=a.bind(this,"graph_BH_sc",1,"physics_springConstant"),e=document.getElementById("graph_BH_sl"),e.onchange=a.bind(this,"graph_BH_sl",1,"physics_springLength"),e=document.getElementById("graph_BH_damp"),e.onchange=a.bind(this,"graph_BH_damp",1,"physics_damping"),e=document.getElementById("graph_R_nd"),e.onchange=a.bind(this,"graph_R_nd",1,"physics_repulsion_nodeDistance"),e=document.getElementById("graph_R_cg"),e.onchange=a.bind(this,"graph_R_cg",1,"physics_centralGravity"),e=document.getElementById("graph_R_sc"),e.onchange=a.bind(this,"graph_R_sc",1,"physics_springConstant"),e=document.getElementById("graph_R_sl"),e.onchange=a.bind(this,"graph_R_sl",1,"physics_springLength"),e=document.getElementById("graph_R_damp"),e.onchange=a.bind(this,"graph_R_damp",1,"physics_damping"),e=document.getElementById("graph_H_nd"),e.onchange=a.bind(this,"graph_H_nd",1,"physics_hierarchicalRepulsion_nodeDistance"),e=document.getElementById("graph_H_cg"),e.onchange=a.bind(this,"graph_H_cg",1,"physics_centralGravity"),e=document.getElementById("graph_H_sc"),e.onchange=a.bind(this,"graph_H_sc",1,"physics_springConstant"),e=document.getElementById("graph_H_sl"),e.onchange=a.bind(this,"graph_H_sl",1,"physics_springLength"),e=document.getElementById("graph_H_damp"),e.onchange=a.bind(this,"graph_H_damp",1,"physics_damping"),e=document.getElementById("graph_H_direction"),e.onchange=a.bind(this,"graph_H_direction",t,"hierarchicalLayout_direction"),e=document.getElementById("graph_H_levsep"),e.onchange=a.bind(this,"graph_H_levsep",1,"hierarchicalLayout_levelSeparation"),e=document.getElementById("graph_H_nspac"),e.onchange=a.bind(this,"graph_H_nspac",1,"hierarchicalLayout_nodeSpacing"); +var i=document.getElementById("graph_physicsMethod1"),d=document.getElementById("graph_physicsMethod2"),l=document.getElementById("graph_physicsMethod3");d.checked=!0,this.constants.physics.barnesHut.enabled&&(i.checked=!0),this.constants.hierarchicalLayout.enabled&&(l.checked=!0);var c=document.getElementById("graph_toggleSmooth"),p=document.getElementById("graph_repositionNodes"),u=document.getElementById("graph_generateOptions");c.onclick=s.bind(this),p.onclick=o.bind(this),u.onclick=n.bind(this),c.style.background=1==this.constants.smoothCurves&&0==this.constants.dynamicSmoothCurves?"#A4FF56":"#FF8532",r.apply(this),i.onchange=r.bind(this),d.onchange=r.bind(this),l.onchange=r.bind(this)}},e._overWriteGraphConstants=function(t,e){var i=t.split("_");1==i.length?this.constants[i[0]]=e:2==i.length?this.constants[i[0]][i[1]]=e:3==i.length&&(this.constants[i[0]][i[1]][i[2]]=e)}},function(t){function e(t){throw new Error("Cannot find module '"+t+"'.")}e.keys=function(){return[]},e.resolve=e,t.exports=e,e.id=67},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l,c=this.calculationNodes,p=this.calculationNodeIndices,u=-2/3,m=4/3,f=this.constants.physics.repulsion.nodeDistance,g=f;for(d=0;di&&(r=.5*g>i?1:v*i+m,r*=0==n?1:1+n*this.constants.clustering.forceAmplification,r/=i,s=t*r,o=e*r,a.fx-=s,a.fy-=o,h.fx+=s,h.fy+=o)}}},function(t,e){e._calculateNodeForces=function(){var t,e,i,s,o,n,r,a,h,d,l=this.calculationNodes,c=this.calculationNodeIndices,p=this.constants.physics.hierarchicalRepulsion.nodeDistance;for(h=0;hi?-Math.pow(u*i,2)+Math.pow(u*p,2):0,0==i?i=.01:n/=i,s=t*n,o=e*n,r.fx-=s,r.fy-=o,a.fx+=s,a.fy+=o}},e._calculateHierarchicalSpringForces=function(){for(var t,e,i,s,o,n,r,a,h,d=this.edges,l=this.calculationNodes,c=this.calculationNodeIndices,p=0;pn;n++)t=e[i[n]],t.options.mass>0&&(this._getForceContribution(o.root.children.NW,t),this._getForceContribution(o.root.children.NE,t),this._getForceContribution(o.root.children.SW,t),this._getForceContribution(o.root.children.SE,t))}},e._getForceContribution=function(t,e){if(t.childrenCount>0){var i,s,o;if(i=t.centerOfMass.x-e.x,s=t.centerOfMass.y-e.y,o=Math.sqrt(i*i+s*s),o*t.calcSize>this.constants.physics.barnesHut.theta){0==o&&(o=.1*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}else if(4==t.childrenCount)this._getForceContribution(t.children.NW,e),this._getForceContribution(t.children.NE,e),this._getForceContribution(t.children.SW,e),this._getForceContribution(t.children.SE,e);else if(t.children.data.id!=e.id){0==o&&(o=.5*Math.random(),i=o);var n=this.constants.physics.barnesHut.gravitationalConstant*t.mass*e.options.mass/(o*o*o),r=i*n,a=s*n;e.fx+=r,e.fy+=a}}},e._formBarnesHutTree=function(t,e){for(var i,s=e.length,o=Number.MAX_VALUE,n=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=-Number.MAX_VALUE,h=0;s>h;h++){var d=t[e[h]].x,l=t[e[h]].y;t[e[h]].options.mass>0&&(o>d&&(o=d),d>r&&(r=d),n>l&&(n=l),l>a&&(a=l))}var c=Math.abs(r-o)-Math.abs(a-n);c>0?(n-=.5*c,a+=.5*c):(o+=.5*c,r-=.5*c);var p=1e-5,u=Math.max(p,Math.abs(r-o)),m=.5*u,f=.5*(o+r),g=.5*(n+a),v={root:{centerOfMass:{x:0,y:0},mass:0,range:{minX:f-m,maxX:f+m,minY:g-m,maxY:g+m},size:u,calcSize:1/u,children:{data:null},maxWidth:0,level:0,childrenCount:4}};for(this._splitBranch(v.root),h=0;s>h;h++)i=t[e[h]],i.options.mass>0&&this._placeInTree(v.root,i);this.barnesHutTree=v},e._updateBranchMass=function(t,e){var i=t.mass+e.options.mass,s=1/i;t.centerOfMass.x=t.centerOfMass.x*t.mass+e.x*e.options.mass,t.centerOfMass.x*=s,t.centerOfMass.y=t.centerOfMass.y*t.mass+e.y*e.options.mass,t.centerOfMass.y*=s,t.mass=i;var o=Math.max(Math.max(e.height,e.radius),e.width);t.maxWidth=t.maxWidthe.x?t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NW"):this._placeInRegion(t,e,"SW"):t.children.NW.range.maxY>e.y?this._placeInRegion(t,e,"NE"):this._placeInRegion(t,e,"SE")},e._placeInRegion=function(t,e,i){switch(t.children[i].childrenCount){case 0:t.children[i].children.data=e,t.children[i].childrenCount=1,this._updateBranchMass(t.children[i],e);break;case 1:t.children[i].children.data.x==e.x&&t.children[i].children.data.y==e.y?(e.x+=Math.random(),e.y+=Math.random()):(this._splitBranch(t.children[i]),this._placeInTree(t.children[i],e));break;case 4:this._placeInTree(t.children[i],e)}},e._splitBranch=function(t){var e=null;1==t.childrenCount&&(e=t.children.data,t.mass=0,t.centerOfMass.x=0,t.centerOfMass.y=0),t.childrenCount=4,t.children.data=null,this._insertRegion(t,"NW"),this._insertRegion(t,"NE"),this._insertRegion(t,"SW"),this._insertRegion(t,"SE"),null!=e&&this._placeInTree(t,e)},e._insertRegion=function(t,e){var i,s,o,n,r=.5*t.size;switch(e){case"NW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY,n=t.range.minY+r;break;case"NE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY,n=t.range.minY+r;break;case"SW":i=t.range.minX,s=t.range.minX+r,o=t.range.minY+r,n=t.range.maxY;break;case"SE":i=t.range.minX+r,s=t.range.maxX,o=t.range.minY+r,n=t.range.maxY}t.children[e]={centerOfMass:{x:0,y:0},mass:0,range:{minX:i,maxX:s,minY:o,maxY:n},size:.5*t.size,calcSize:2*t.calcSize,children:{data:null},maxWidth:0,level:t.level+1,childrenCount:0}},e._drawTree=function(t,e){void 0!==this.barnesHutTree&&(t.lineWidth=1,this._drawBranch(this.barnesHutTree.root,t,e))},e._drawBranch=function(t,e,i){void 0===i&&(i="#FF0000"),4==t.childrenCount&&(this._drawBranch(t.children.NW,e),this._drawBranch(t.children.NE,e),this._drawBranch(t.children.SE,e),this._drawBranch(t.children.SW,e)),e.strokeStyle=i,e.beginPath(),e.moveTo(t.range.minX,t.range.minY),e.lineTo(t.range.maxX,t.range.minY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.minY),e.lineTo(t.range.maxX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.maxX,t.range.maxY),e.lineTo(t.range.minX,t.range.maxY),e.stroke(),e.beginPath(),e.moveTo(t.range.minX,t.range.maxY),e.lineTo(t.range.minX,t.range.minY),e.stroke()}},function(t){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e){(function(e){t.exports=e}).call(e,{})}])}); //# sourceMappingURL=vis.map diff --git a/lib/timeline/DataStep.js b/lib/timeline/DataStep.js index d1f5c7d9..752e0785 100644 --- a/lib/timeline/DataStep.js +++ b/lib/timeline/DataStep.js @@ -189,7 +189,10 @@ DataStep.prototype.previous = function() { * @return {String} current The current date */ DataStep.prototype.getCurrent = function(decimals) { - var toPrecision = '' + Number(this.current).toPrecision(5); + // prevent round-off errors when close to zero + var current = (Math.abs(this.current) < this.step / 2) ? 0 : this.current; + var toPrecision = '' + Number(current).toPrecision(5); + // If decimals is specified, then limit or extend the string as required if(decimals !== undefined && !isNaN(Number(decimals))) { // If string includes exponent, then we need to add it to the end